Excel 电源查询-sumifs-矩阵

Excel 电源查询-sumifs-矩阵,excel,powerquery,sumifs,Excel,Powerquery,Sumifs,我在电源查询中有下表 ╔══════════════════════╦══════════════════════╦══════════════════╗ ║ Project ║ Project 2 ║ Balance ║ ╠══════════════════════╬══════════════════════╬══════════════════╣ ║ (088) GARAJ-16 ║ (084) MFK DOM

我在电源查询中有下表

╔══════════════════════╦══════════════════════╦══════════════════╗
║       Project        ║      Project 2       ║  Balance         ║
╠══════════════════════╬══════════════════════╬══════════════════╣
║ (088) GARAJ-16       ║ (084) MFK DOMODEDOVA ║     83,434.11    ║
║ (088) GARAJ-16       ║ (085) FILI RESIDENCE ║  5,936,348.56    ║
║ (085) FILI RESIDENCE ║ (084) MFK DOMODEDOVA ║ -3,516,805.40    ║
║ (085) FILI RESIDENCE ║ (088) GARAJ-16       ║ -4,436,348.56    ║
║ (084) MFK DOMODEDOVA ║ (085) FILI RESIDENCE ║  4,516,805.40    ║
║ (084) MFK DOMODEDOVA ║ (088) GARAJ-16       ║    -83,434.11    ║
╚══════════════════════╩══════════════════════╩══════════════════╝
我想得到的结果是:

╔══════════════════════╦═════════════════╦══════════════════════╦══════════════════════╗
║                      ║ (088) GARAJ-16  ║ (085) FILI RESIDENCE ║ (084) MFK DOMODEDOVA ║
╠══════════════════════╬═════════════════╬══════════════════════╬══════════════════════╣
║ (088) GARAJ-16       ║  $-             ║  $1,500,000.00       ║  $-                  ║
║ (085) FILI RESIDENCE ║  $1,500,000.00  ║  $-                  ║  $1,000,000.00       ║
║ (084) MFK DOMODEDOVA ║  $-             ║  $1,000,000.00       ║  $-                  ║
╚══════════════════════╩═════════════════╩══════════════════════╩══════════════════════╝
这个结果我可以通过excel中的两个sumifs公式得到,但如果不编写任何公式,我无法在power query中直接得到结果


有什么想法吗?

这段代码给出了您想要的结果

let
    Source = Table1,
    #"Merged Queries" = Table.NestedJoin(Source,{"Project", "Project 2"},Source,{"Project 2", "Project"},"NewColumn",JoinKind.LeftOuter),
    #"Expanded NewColumn" = Table.ExpandTableColumn(#"Merged Queries", "NewColumn", {"Balance"}, {"NewColumn.Balance"}),
    #"Inserted Addition" = Table.AddColumn(#"Expanded NewColumn", "Inserted Addition", each [Balance] + [NewColumn.Balance], type number),
    #"Removed Columns" = Table.RemoveColumns(#"Inserted Addition",{"Balance", "NewColumn.Balance"}),
    #"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Sort(List.Distinct(#"Removed Columns"[Project]),1), "Project", "Inserted Addition"),
    #"Sorted Rows" = Table.Sort(#"Pivoted Column",{{"Project 2", Order.Descending}})
in
    #"Sorted Rows"
#“调用的自定义函数”=Table.AddColumn(#“添加的自定义”、“FNBUTUNSANTIELER”、每个FNBUTUNSANTIELER([Query]),
#“Expanded fnButunSantiyeler”=Table.ExpandTableColumn(#“调用的自定义函数”、“fnButunSantiyeler”、{“Hesap No”、“santiye kodu”、“卢布余额”、“美元余额”}、{“Hesap No”、“santiye kodu”、“卢布余额”、“美元余额”}),
#“Removed Columns”=Table.RemoveColumns(#“Expanded fnButunSantiyeler”,{“Query”}),
#“合并查询”=Table.NestedJoin(#“已删除列”、{“santiye kodu”}、#“项目列表”、{“Proje kodu”}、“NewColumn”、JoinKind.LeftOuter),
#“Expanded NewColumn”=Table.ExpandTableColumn(#“合并查询”、“NewColumn”、{“Proje Adi”}、{“Proje Adi.1”}),
#“重命名列”=Table.RenameColumns(#“Expanded NewColumn”、{{“Proje Adi.1”、“Karsi Proje”}),
#“重新排序的列”=表。重新排序的列(#“重新命名的列”、{“Proje Kodu”、“Proje Adi”、“Hesap No”、“santiye Kodu”、“Karsi Proje”、“卢布余额”}),
#“添加的客户2”=表.AddColumn(#“重新排序的列”、“Proje”,每个“&[Proje Kodu]&”)”和[Proje Adi]),
#“添加的客户3”=表.AddColumn(#“添加的客户2”、“Karsi项目1”,每个“&[santiye kodu]&”)”和[Karsi项目],
#“重新排序的列1”=表格。重新排序的列(#“新增客户3”、{“Karsi Proje.1”、“Proje”、“Proje Kodu”、“Proje Adi”、“Hesap No”、“santiye Kodu”、“Karsi Proje”、“卢布余额”}),
#“删除的列1”=表中删除的列(#“重新排序的列1”、{“Proje Kodu”、“Proje Adi”、“santiye Kodu”、“Karsi Proje”}),
#“重命名的Columns1”=Table.RenameColumns(#“删除的Columns1”、{{{“Karsi Proje.1”、“Karsi Proje”}),
#“重新排序的列2”=表。重新排序的列(#“重命名的列1”、{“Proje”、“Karsi Proje”、“卢布余额”}),
#“分组行”=表.组(#“重新排序的列2”,{“Proje”,“Karsi Proje”,“Hesap No”},{{“卢布余额”,每个列表.总和([卢布余额]),类型号}),
#“筛选行”=表格。选择行(#“分组行”,每个[Karsi Proje]为空),
#“添加的条件列”=Table.AddColumn(#“筛选行”、“自定义”,如果[Hesap No]=“331”,则分别为[Proje]、[xxx]、[Karsi Proje]else如果[Hesap No]=“131”,则为[Karsi Proje]、[xxx]、[Proje]else null),
#“分组行1”=表.Group(#“添加条件列”,{“自定义”},{{“总和”,每个列表.sum([卢布余额]),类型number}),
#“按分隔符拆分列”=表.SplitColumn(#“分组行1”,“自定义”,Splitter.SplitTextByDelimiter(“xxx”,QuoteStyle.Csv),{“自定义.1”,“自定义.2”}),
#“舍入”=Table.TransformColumns(#“按分隔符拆分列”,{{“sum”,每个数字。舍入(#,2),键入Number}),
#“排序行”=表.Sort(#“四舍五入”,{{“Custom.2”,Order.升序}),
#“数据透视列”=表.Pivot(#“排序行”,List.Distinct(#“排序行”[Custom.2]),“Custom.2”,“sum”,List.sum)
在里面
#“旋转柱”

我用另一种方法解决了它,我把它放在这里,也许它可以帮助其他人

如何计算输入的结果?@MarcelBeug我在excel中使用的公式是:
=SUMIFS(矩阵[平衡卢布];矩阵[项目];$B402;矩阵[项目2];C$401)+SUMIFS(矩阵[平衡卢布];矩阵[项目];C$401;矩阵[项目2];$B402)
我没有要求一个公式告诉我什么;我想知道,从不太精确的余额中得出如此精确的数字的逻辑是什么。如果你不能解释,那么我们就帮不了你。顺便说一句,是多莫杰多沃@马塞尔堡魔术就在你手中,创造这个结果…感谢你的时间和支持。但我仍然无法得到我想要的结果。。。请查找源文件@UmutK,不幸的是,我们还没有学会阅读别人想法的魔力。因此,除非你清楚地解释你希望如何进行计算,否则我们将无法提供帮助。而且,如果你介意的话,你的文件中的位置名称有一大堆拼写错误。@Eugene从我写的表中理解我想要的不是很清楚吗?不用管位置的名称)]@UmutK我已经看过了你的源文件,但在我看来,它更像是一个结果示例。
    #"Invoked Custom Function" = Table.AddColumn(#"Added Custom", "fnButunSantiyeler", each fnButunSantiyeler([Query])),
    #"Expanded fnButunSantiyeler" = Table.ExpandTableColumn(#"Invoked Custom Function", "fnButunSantiyeler", {"Hesap No", "santiye kodu", "Ruble Balance", "USD Balance"}, {"Hesap No", "santiye kodu", "Ruble Balance", "USD Balance"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded fnButunSantiyeler",{"Query"}),
    #"Merged Queries" = Table.NestedJoin(#"Removed Columns",{"santiye kodu"},#"Projects List",{"Proje Kodu"},"NewColumn",JoinKind.LeftOuter),
    #"Expanded NewColumn" = Table.ExpandTableColumn(#"Merged Queries", "NewColumn", {"Proje Adi"}, {"Proje Adi.1"}),
    #"Renamed Columns" = Table.RenameColumns(#"Expanded NewColumn",{{"Proje Adi.1", "Karsi Proje"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Proje Kodu", "Proje Adi", "Hesap No", "santiye kodu", "Karsi Proje", "Ruble Balance"}),
    #"Added Custom2" = Table.AddColumn(#"Reordered Columns", "Proje", each "(" & [Proje Kodu] & ") " &[Proje Adi]),
    #"Added Custom3" = Table.AddColumn(#"Added Custom2", "Karsi Proje.1", each "(" & [santiye kodu] & ") " & [Karsi Proje]),
    #"Reordered Columns1" = Table.ReorderColumns(#"Added Custom3",{"Karsi Proje.1", "Proje", "Proje Kodu", "Proje Adi", "Hesap No",  "santiye kodu", "Karsi Proje", "Ruble Balance"}),
    #"Removed Columns1" = Table.RemoveColumns(#"Reordered Columns1",{"Proje Kodu", "Proje Adi", "santiye kodu", "Karsi Proje"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Removed Columns1",{{"Karsi Proje.1", "Karsi Proje"}}),
    #"Reordered Columns2" = Table.ReorderColumns(#"Renamed Columns1",{"Proje", "Karsi Proje", "Ruble Balance"}),
    #"Grouped Rows" = Table.Group(#"Reordered Columns2", {"Proje", "Karsi Proje", "Hesap No"}, {{"Ruble Balance", each List.Sum([Ruble Balance]), type number}}),
    #"Filtered Rows" = Table.SelectRows(#"Grouped Rows", each [Karsi Proje] <> null),
    #"Added Conditional Column" = Table.AddColumn(#"Filtered Rows", "Custom", each if [Hesap No] = "331" then [Proje]&"xxx"&[Karsi Proje] else if [Hesap No] = "131" then [Karsi Proje]&"xxx"&[Proje] else null ),
    #"Grouped Rows1" = Table.Group(#"Added Conditional Column", {"Custom"}, {{"sum", each List.Sum([Ruble Balance]), type number}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Grouped Rows1","Custom",Splitter.SplitTextByDelimiter("xxx", QuoteStyle.Csv),{"Custom.1", "Custom.2"}),
    #"Rounded Off" = Table.TransformColumns(#"Split Column by Delimiter",{{"sum", each Number.Round(_, 2), type number}}),
    #"Sorted Rows" = Table.Sort(#"Rounded Off",{{"Custom.2", Order.Ascending}}),
    #"Pivoted Column" = Table.Pivot(#"Sorted Rows", List.Distinct(#"Sorted Rows"[Custom.2]), "Custom.2", "sum", List.Sum)
in
    #"Pivoted Column"