Power BI 中的计算列根据其他 2 列中的条件重复不同的总和

时间:2021-02-09 21:39:06

标签: powerbi formula dax powerquery calculated-columns

我需要一个基于两列条件的计算列(两个表中的业务单位编号以及第一个表和第二个表中的 L1/帐户类别),这些列求和,然后在条件改变之前重复几行,然后得出一个新的总和重复几行,依此类推。 L1/Account Categories 列有不同的名称,因为它是原始数据。

例如,任何时候 ASSETS 和 111 出现在同一行中,我都想将它们用作条件,并在新列中使用所有其他匹配行的总和,并且每次出现两个条件时总和都会重复在同一行。任何时候 P/L 和 111 出现在同一行中,这将是数据集中所有其他 P/L 和 111 出现的总和(总共大约 1000 行)......等等。

我尝试过使用 FILTER、SUMX、嵌套 IF 语句的 DAX 公式,还尝试了 Power Query 语言以及其他尝试。也许我必须创建一张或多张新表?如果您需要查看我的一些尝试,请告诉我。

顶部图像是我想象的输出在 Power Query 编辑器中的样子,底部图像是源数据的示例。

Look something like this

enter image description here

最后一张图片来自 Tableau - 我需要在 Power BI 中制作一张表格,它基本上是这张图片的副本。最后两列来自不同的表。

Tableau screenshot

1 个答案:

答案 0 :(得分:0)

这应该很容易通过关系和度量来实现 - 不需要计算列或强大的查询合并。您需要在这两个表之间建立关系。事实上,我会在您的业务部门模型中引入第三个表。

Power BI 模型关系的局限性在于它们只能基于单个列。因此,要在这两个表之间建立关系,您必须在这两个表中添加一个包含 BU 和财务报表行的计算列,例如:JoinCol = CONCATENATE([Business_Unit_Number], [L1])。然后你就可以建立关系并做你想做的事。

更好的(我推荐的)方法是将业务部门分离到一个单独的表中,并建立如下关系:

enter image description here

然后,您在视觉中所需要做的就是从 BU 表中拖出业务单位名称、从 FS Lines 表中拖出 L1 以及对金额求和 Amount = SUM('Financial Data'[Rolled Up Detail]) 的度量。

这是一个工作示例:https://1drv.ms/u/s!AmqvMyRqhrBpgtUT5HKnZP1U3Gzc9w?e=en91dV

enter image description here