我正在使用Power BI表,但无法按需要计算余额“运行总额”。
我在Stack Overflow和其他网页中进行搜索,对于非常相似的情况,我总能找到相同的解决方案,不是这样。
首先,这是我的桌子:
我在此和other sites中找到了相同的解决方案:
Running Total COLUMN =
CALCULATE (
SUM ( 'My table'[Accounting Balance] ),
ALL ( 'My table' ),
'My table'[Date] <= EARLIER ( 'My table'[Date] ))
只要我需要垂直加总行,这都是可行的,这不是我的情况。确实,我需要水平汇总价值:
有什么建议吗?
编辑1 :
这就是我需要的:
因此,如果您仔细查看此表,它将得到每个供应商的每一列的最终计算结果,例如:
答案 0 :(得分:2)
这是在Power Query中完成的,因为我没有BI,但是我认为M代码同样可以使用。如果您在添加/删除列时刷新查询,它还将自动调整,因此无需单独引用每个列。
您添加了一个自定义列,该列将除“供应商/月”之外的所有列加起来
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Vendor/Month", type text}, {"Jan-17", Int64.Type}, {"Feb-17", Int64.Type}, {"Mar-17", Int64.Type}, {"Apr-17", Int64.Type}}),
#"Sum" = Table.AddColumn(
#"Changed Type",
"Total",
each List.Sum(
Record.ToList(
Record.SelectFields(
_,
List.RemoveItems(Table.ColumnNames(#"Changed Type"), {"Vendor/Month"})))))
in
#"Sum"
这是“自定义列”对话框:
这是结果:
答案 1 :(得分:0)
答案 2 :(得分:0)
如亚历克西斯·奥尔森(Alexis Olson)先前所建议的那样,您应该将从OLAP多维数据集获得的“表”导入Power Query编辑器中,然后再将其取消旋转。您将从此开始:
使用这样的脚本:
let
Source = Excel.Workbook(File.Contents("C:\Users\927085\Documents\Marco\SO\SO18-10-1.xlsx"), null, true),
Sheet3_Sheet = Source{[Item="myTable",Kind="Sheet"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Sheet3_Sheet,{{"Column1", type text}, {"Column2", type any}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}, {"Column6", type any}}),
#"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),
#"Removed Columns" = Table.RemoveColumns(#"Promoted Headers",{"Totals"}),
#"Removed Bottom Rows" = Table.RemoveLastN(#"Removed Columns",1),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Removed Bottom Rows", {"Vendor/Month"}, "Attribute", "Value"),
#"Added Custom" = Table.AddColumn(#"Unpivoted Other Columns", "Custom", each "1-"&[Attribute]),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", type date}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type1",{{"Custom", "Month"}}),
#"Removed Columns1" = Table.RemoveColumns(#"Renamed Columns",{"Attribute"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns1",{{"Value", Int64.Type}}),
#"Renamed Columns1" = Table.RenameColumns(#"Changed Type2",{{"Value", "Accounting Balance"}, {"Vendor/Month", "Vendor"}})
in
#"Renamed Columns1"
结果表将是这样:
然后创建以下方法:
RunningTotal =
CALCULATE (
SUM ( myTable[Accounting Balance] ),
FILTER (
ALLEXCEPT ( 'myTable', myTable[Vendor] ),
'myTable'[Month] <= SELECTEDVALUE ( myTable[Month] )
)
)
在矩阵直观图中,将Vendor放在行上,将Month放在列上,将[RunningTotal]放在Values上。