power bi中是否有一项功能可以根据条件进行计数?

时间:2019-11-27 07:33:25

标签: powerbi

例如

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中完成此功能?

谢谢所有答案。

1 个答案:

答案 0 :(得分:1)

您可以使用如下代码定义度量,在该度量中,您需要用表的实际名称替换“事实”。

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

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

Result

与您的描述一样,我认为不可能在每个组的第一行中都有一个值,而在其他行中有空白。原因是Power BI始终根据报告中可见的唯一值集对结果进行分组。在这种情况下,有3个唯一的集合:(101,大卫),(102,詹姆斯)和(103,戴夫)。 Power BI无法处理表中具有相同值(101,David)的4行。

让我们在技术上更加准确。是报表可视化查询(101,David)的度量[Count]的值。实际上,它会为卡号和名称的每种可能组合请求结果,从而发出与此类似的查询。

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

通过该查询,DAX引擎在卡号和名称的每个组合(例如卡号= 101和名称= David)的过滤器上下文中评估[Count],并返回结果1。

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