【问题标题】:Is there a function to count with condition in power bi?power bi中是否有计算条件的功能?
【发布时间】:2019-11-27 07:33:25
【问题描述】:

例如

CARD NO         NAME
101             David
101             David
101             David
101             David
102             James
102             James

目标是计数是否有 4 行具有相同的编号,在本例中为“101”,计为 1。 如果行多于或少于 4 行,则每次都计为 0,如下所示:

CARD NO         NAME       count
101             David        1
101             David
101             David
101             David
102             James        0
102             James
103             Dave         0
103             Dave
103             Dave

并且有一百万行看起来像这样。 如何在 Power BI 中编写函数来实现这一点?

感谢您的所有回答。

【问题讨论】:

    标签: powerbi


    【解决方案1】:

    您可以使用如下代码定义度量,您需要将“Fact”替换为您的表的实际名称。

    Count = IF( COUNTROWS( Fact ) >= 4, 1, 0 )
    

    然后您可以使用此度量在报告中获得结果。

    我认为不可能在每个组的第一行中有一个值,而在其他行中为空白,就像您的描述一样。原因是 Power BI 始终根据报表中可见的唯一值集对结果进行分组。在这种情况下,有 3 个独特的集合:(101, David)、(102, James) 和 (103, Dave)。 Power BI 无法以不同方式处理表中具有相同值(101,David)的 4 行。

    让我们在技术上更准确。查询 (101, David) 的度量 [Count] 的值是报表可视化。实际上,它请求卡号和名称的所有可能组合的结果,发出类似这样的查询。

    SUMMARIZECOLUMNS(
        'Fact'[Card Number],
        'Fact'[Name],
        "Count", [Count]
    )
    

    通过此查询,DAX 引擎在卡号和姓名的每个组合的过滤器上下文中计算 [Count],例如卡号 = 101 和姓名 = David,并返回结果 1。

    此时,DAX 无法区分基础表中具有相同值组合的每一行,例如 (101, David)。换句话说,它无法找到表中第一个位置的特定行的(101, David),但找不到第二、第三或第四个位置,因为没有区分这4行的键。对于 DAX,它们都是一样的。

    【讨论】:

    • 谢谢你。我试试看
    猜你喜欢
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-05
    • 2021-09-13
    • 2020-07-01
    • 1970-01-01
    相关资源
    最近更新 更多