【问题标题】:How to create multiple columns at once which depends on each other in Power BI?如何在 Power BI 中一次创建多个相互依赖的列?
【发布时间】:2020-09-27 10:34:27
【问题描述】:

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

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

先根据ID和Date对表格进行排序,然后将A列、B列和C列相加,其中A列值等于C列之前的值,C列值等于A列和C列之和B 列。所需的表是:

在哪里,

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

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

【问题讨论】:

    标签: powerbi dax powerquery


    【解决方案1】:

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

    我没有像您建议的公式 ($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"
    

    我所做的是:

    1. 启动 Power BI
    2. 从电子表格中获取数据并将表 (Table1) 添加到 Power Query(获取数据 > 全部 > Excel > 连接 > 导航到 excel 文件 > 双击文件(本可以选择文件并单击打开代替) > 选择相关表(表1)> 转换数据)
    3. 我确保列的数据类型是我想要的。 (选择一列 > 转换 > 数据类型:> 选择适当的类型 > 对每个必要的列重复)
    4. 我对 ID 和 Date 列进行了排序(选择 [ID] > 单击下拉箭头 > 单击升序排序 > 对 [Date] 重复)
    5. 我添加了一个索引列(添加列>索引列)
    6. 我添加了A列(添加列>自定义列>如下填写并点击确定)

    1. 我添加了B列(添加列>自定义列>如下填写并单击确定)

    1. 我添加了C列(添加列>自定义列>如下填写并单击确定)

    1. 我删除了索引列(右键单击 [索引] > 删除)

    结果是:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2012-12-22
      • 2015-08-09
      • 2018-01-16
      • 1970-01-01
      • 2012-08-19
      相关资源
      最近更新 更多