Powerbi 如何在Power BI中一次创建多个相互依赖的列?

Powerbi 如何在Power BI中一次创建多个相互依赖的列?,powerbi,dax,powerquery,Powerbi,Dax,Powerquery,我是Power BI的新手,有一个excel表格。我需要在Power BI中创建相同的 我在Excel中有一个表,其中包含以下字段: 首先根据ID和日期对表格进行排序,然后添加A列、B列和C列,其中A列的值等于C列以前的值,C列的值等于A列和B列的和。所需表格为: 在哪里, Column A = IF($A2=$A1,$G1,0) Column B = D2-E2 Column C = SUM(E2:F2) 如何在Power BI中实现这一点?我相信这可能与您正在寻找的类似。它需要一个索引

我是Power BI的新手,有一个excel表格。我需要在Power BI中创建相同的

我在Excel中有一个表,其中包含以下字段:

首先根据ID和日期对表格进行排序,然后添加A列、B列和C列,其中A列的值等于C列以前的值,C列的值等于A列和B列的和。所需表格为:

在哪里,

Column A = IF($A2=$A1,$G1,0)
Column B = D2-E2
Column C = SUM(E2:F2)

如何在Power BI中实现这一点?

我相信这可能与您正在寻找的类似。它需要一个索引,以便您可以使用该索引引用前一行的值

我不是像你的公式建议的那样从C列计算A列($G1),而是从[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"
我所做的是:

  • 启动功率BI
  • 从电子表格中获取数据并将表(表1)添加到Power Query(获取数据>全部>Excel>连接>导航到Excel文件>双击文件(可以选择文件并单击打开)>选择相关表(表1)>转换数据)
  • 我确保列的数据类型是我想要的。(选择一列>转换>数据类型:>选择适当的类型>对每个需要的列重复)
  • 我对ID和日期列进行了排序(选择[ID]>单击下拉箭头>单击升序排序>重复[Date])
  • 我添加了一个索引列(添加列>索引列)
  • 我添加了列A(添加列>自定义列>按如下方式填写并单击确定)
  • 我添加了B列(添加列>自定义列>按如下方式填写并单击确定)
  • 我添加了C列(添加列>自定义列>按如下方式填写并单击确定)
  • 我删除了索引列(右键单击[索引]>删除)
  • 结果是: