繁体   English   中英

Power BI DAX 如何将列添加到汇总另一个计算表

[英]Power BI DAX How to add column to a calculated table that summarizes another

我有一个 TestTable,它总结了 Month 列上的表 Receipts 并添加了一个列,该列计算每个月在 Receipts 表中出现的次数(发生)。

TestTable = SUMMARIZE(Receipts, Receipts[Month], "TotalReceiptsIssuedInThisMonth", SUM(Receipts[Receipts Issued]), "OccurenceOfMonth", COUNT(Receipts[Month]))

在此处输入图像描述

我想在这个 TestTable 中添加两列,它将告诉我以下内容:

  • 对 TestTable 的 TotalReceiptsIssuedInThisMonth 求和并显示每行中的值
  • 对于每个月(行),将 TotalReceiptsIssuedInThisMonth 除以 SumOfTotalReceiptsIssued

我知道我可以单击“新列”并使用以下公式:

AvgPercentageReceiptsIssuedInThisMonth = TestTable[TotalReceiptsIssuedInThisMonth]/TestTable[TotalReceiptsIssued]

TotalReceiptsIssued = SUM(TestTable[TotalReceiptsIssuedInThisMonth])

在此处输入图像描述

但是,我需要将这两列直接集成到原始的 TestTable 公式中,以便一步完成,以用作原始 Receipts 表中的变量(否则,如果我尝试使用关系,我最终会得到循环逻辑)。

我尝试了以下方法:

TestTable = SUMMARIZE(PPTs, PPTs[Month], "TotalReceiptsIssuedInThisMonth", SUM(PPTs[PPTs Issued]), "OccurenceOfMonth", COUNT(PPTs[Month]), "TotalReceiptsIssued", SUM(TestTable[TotalReceiptsIssuedInThisMonth]), "AvgPercentageReceiptsIssuedInThisMonth", TestTable[TotalReceiptsIssuedInThisMonth]/TestTable[TotalReceiptsIssued])

但这会返回一个错误,提示“无法确定表 'TestTable”中列 'TotalReceiptsIssuedInThisMonth' 的单个值。 当度量公式引用包含许多值的列而未指定聚合(例如 min、max、count 或 sum)以获得单个结果时,可能会发生这种情况。” 我试过了:

TestTable = 
VAR first = SUMMARIZE(Receipts, Receipts[Month], "TotalReceiptsIssuedInThisMonth", SUM(Receipts[Receipts Issued]), "OccurenceOfMonth", COUNT(Receipts[Month]))
VAR second = SUM(TestTable[TotalReceiptsIssuedInThisMonth])
VAR third = first[TotalReceiptsIssuedInThisMonth]/second
RETURN
third

但这会返回一个错误,说“变量'first'不能在当前上下文中使用,因为需要一个基表。”

所以我的问题是,如何将这三个步骤组合成一个 DAX 公式?

我会做这样的事情。 我更喜欢ADDCOLLUMN(SUMMARIZE()...) ,因为它有助于避免上下文错误。 由于您需要一个 var 表,因此您需要 ADDCOLUMNS 中的 CALCULATE,因为它添加了行上下文。

VAR TestTable =
    ADDCOLUMNS(
            SUMMARIZE(
                    Receipts
                    ,Receipts[Month]
        )
        ,"TotalReceiptsIssuedInThisMonth",CALCULATE(SUM(Receipts[Receipts Issued])) 
        ,"OccurenceOfMonth", CALCULATE(COUNT(Receipts[Month]))
        ,"TotalReceiptsIssued ",SUM(Receipts[Receipts Issued])
         )

RETURN
    ADDCOLUMNS(
        TestTable 
        ,"AvgPercentageReceiptsIssuedInThisMonth"           
               ,DIVIDE([TotalReceiptsIssuedInThisMonth],[TotalReceiptsIssued])
    )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM