Filter 基于计数和存储值的组合计算百分比-幂BI
我有一个基本表,如下所示:Filter 基于计数和存储值的组合计算百分比-幂BI,filter,powerbi,dax,measure,Filter,Powerbi,Dax,Measure,我有一个基本表,如下所示: DayNo. Customer AgentsInvolved CallID 0 AAA 1 1858 0 AAA 3 1859 2 AAA 1 1860 0 BBB 2 1862 0 CCC 1
DayNo. Customer AgentsInvolved CallID
0 AAA 1 1858
0 AAA 3 1859
2 AAA 1 1860
0 BBB 2 1862
0 CCC 1 1863
0 DDD 3 1864
9 DDD 1 1865
9 DDD 4 1866
我需要能够找到只联系过一次,并且只与一名代理通话的%客户。因此,从上述示例中,在4个不同的客户中,只有客户CCC属于这一类别(1个电话,1个代理参与)
因此,期望的结果是:1/4或25%
如何创建功率BI度量来进行此计算?尝试此度量:
Desired Result =
VAR summarizetable =
SUMMARIZECOLUMNS (
'table'[Customer],
"Calls", COUNT ( 'table'[CallID] ),
"Agents", SUM ( 'table'[AgentsInvolved] ),
"Day", SUM ( 'table'[DayNo.] )
)
RETURN
COUNTROWS (
FILTER ( summarizetable, [Calls] = 1 && [Agents] = 1 && [Day] = 0 )
)
/ COUNTROWS ( summarizetable )
在VAR summaryTable
中动态创建的汇总表如下所示:
DayNo. Customer AgentsInvolved CallID
0 AAA 1 1858
0 AAA 3 1859
2 AAA 1 1860
0 BBB 2 1862
0 CCC 1 1863
0 DDD 3 1864
9 DDD 1 1865
9 DDD 4 1866
这里有另一种方法:
Measure =
SUMX(
VALUES(Table2[Customer]),
CALCULATE(
IF(
DISTINCTCOUNT(Table2[CallID]) = 1 &&
SUM(Table2[AgentsInvolved]) = 1,
1,
0
),
Table2[DayNo.] = 0
)
) /
DISTINCTCOUNT(Table2[Customer])
如果还要排除分母中的0天行,请将最后一行替换为
CALCULATE(DISTINCTCOUNT(Table2[Customer]), Table2[DayNo.] = 0)
太好了,这是99%。如何筛选SummaryTable以仅包含DayNo.=0?@MarcoVos很好的解决方案!事实上,你是对的,Marco,很抱歉造成了混乱。当扩展到超过300000行和超过100000个独立客户时,这实际上对我来说是不正确的。似乎有2000个独特的客户