【问题标题】:Calculate sum of a column in power BI depending on a condition that should be evaluated over each row根据应在每一行上评估的条件计算 power BI 中列的总和
【发布时间】:2020-09-30 07:08:46
【问题描述】:

我有一张如下所示的表格: 我需要计算列 :ADD 中所有数字的总和,如果 CHANGE 列中的数字是 0 并且 DELETE 列是 0。

实际数据如下所示。它与上面相同。应该过滤掉带有红色背景的项目,因为 MEMO 列中的每个唯一编号都有反对删除和更改的值。

【问题讨论】:

  • 您现在对这个新样本数据的预期输出是什么?如果有任何 MEMO 的 Change/Delete,您想从计数中排除所有 MEMO?
  • 我想要每个唯一 TSframe_Memo 的总计数总和,其中,更改或删除为零。因此,当仅 ADD 存在并且该备忘录编号没有更改或删除时,每个唯一 TSframe 的总数总和。
  • 例如在上图中,我想要 Total_Count 的总和,忽略红括号中的备注编号。
  • 例如 18779 有 1 个 ADD 和 1 个 CHANGE。您想排除 18779 的所有行吗?因为至少有 1 个删除/更改。对吗?
  • 是的,这正是我想要的。

标签: powerbi dax


【解决方案1】:

如下创建一个度量以从列表中排除记录-

exclude = 

VAR current_row_tsframe_account = MIN(your_table_name[TSframe_Account])
VAR current_row_tsframe_memo = MIN(your_table_name[TSframe_Memo])

VAR find_delete_change_for_memo = 
CALCULATE(
    COUNT(your_table_name[TSframe_Memo]),
    FILTER(
        ALL(your_table_name),
        your_table_name[TSframe_Memo] = current_row_tsframe_memo
            && your_table_name[TSframe_Account] = current_row_tsframe_account
            && your_table_name[TSframe_Mode] IN {"CHANGE","DELETE"}
    )
)


RETURN 
IF(
    find_delete_change_for_memo > 0,
    "Yes",
    "No"
)

上述Measure 将每行返回Yes/No。您现在可以应用视觉/页面级别过滤器,以便记录仅显示度量 Exclude = No 的位置。现在,下面的这个度量将显示您的期望值-

total = SUM(your_table_name[TSframe_Memo])

【讨论】:

  • 嗨,实际上这张桌子看起来有点不同,我已经添加了截图作为参考。这是实际表格的外观
  • 非常感谢您的帮助@mkRabbani,我已经更详细地说明了这个问题。你能帮帮我吗?
  • 嗨@Bharath,我已经更新了我的答案。请检查。
  • 非常感谢@mkRabbani,对于一些有变化的情况,我得到了混合的结果,如是,但对于一些备忘录编号,它工作正常。在这一点上,我太羞于向你寻求更多帮助。我正在研究您的代码以调整它以使其正常工作。我非常感谢您的帮助和努力。这给了我一个好的开始。我会花一些时间来调整它。
  • 提供您得到错误数据的示例行。请在此处以表格格式提供数据,以便我可以将它们复制到我的 pbi 文件中。或者,您可以向我提供您遇到的问题的 pbix 文件(google/one drive)。我可以检查它们。总是乐于助人。所以不要感到羞耻:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-31
  • 2017-07-25
  • 1970-01-01
  • 2020-04-27
相关资源
最近更新 更多