例如
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中完成此功能?
谢谢所有答案。
答案 0 :(得分:1)
您可以使用如下代码定义度量,在该度量中,您需要用表的实际名称替换“事实”。
Count = IF( COUNTROWS( Fact ) >= 4, 1, 0 )
然后您可以使用此度量在报告中获得结果。
与您的描述一样,我认为不可能在每个组的第一行中都有一个值,而在其他行中有空白。原因是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,它们都是相同的。