我相信这可能是您正在寻找的东西。它需要一个索引,以便您可以使用该索引来引用前一行的值。
我没有像您建议的公式 ($G1) 那样从 C 列计算 A 列,而是从 [Revenue] 计算它。那是因为 C 列还不存在,也不会存在,因为在 A 列(公式中的 E)存在之前不会计算它。
无论如何,如果您的表名为 Table1,并且与您的第一张图片一样具有 [ID]、[Name]、[Date] 和 [Revenue],那么您应该可以使用此代码。否则,将“Table1”更改为您的表名。此外,您需要将下面的“YourPathAndFile.xls”替换为您的路径和文件名——类似于“C:\Users\yourname\somefolder\filename.xls”。包括表名以及路径和文件的引号,如下所示。
let
Source = Excel.Workbook(File.Contents("YourPathAndFile.xls"), null, true),
Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Table1_Table,{{"ID", type text}, {"Name", type text}, {"Date", type date}, {"Revenue", Currency.Type}}),
#"Sorted Rows" = Table.Sort(#"Changed Type",{{"ID", Order.Ascending}, {"Date", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "Column A", each if [Index] = 0 then 0 else if [ID] = #"Added Index"{[Index]-1}[ID] then #"Added Index"{[Index]-1}[Revenue] else 0),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom B", each [Revenue] - [Column A]),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom C", each [Column A]+[Custom B]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"Index"})
in
#"Removed Columns"
我所做的是:
- 启动 Power BI
- 从电子表格中获取数据并将表 (Table1) 添加到 Power Query(获取数据 > 全部 > Excel > 连接 > 导航到 excel 文件 > 双击文件(本可以选择文件并单击打开代替) > 选择相关表(表1)> 转换数据)
- 我确保列的数据类型是我想要的。 (选择一列 > 转换 > 数据类型:> 选择适当的类型 > 对每个必要的列重复)
- 我对 ID 和 Date 列进行了排序(选择 [ID] > 单击下拉箭头 > 单击升序排序 > 对 [Date] 重复)
- 我添加了一个索引列(添加列>索引列)
- 我添加了A列(添加列>自定义列>如下填写并点击确定)
- 我添加了B列(添加列>自定义列>如下填写并单击确定)
- 我添加了C列(添加列>自定义列>如下填写并单击确定)
- 我删除了索引列(右键单击 [索引] > 删除)
结果是: