请问在幂bi中是否有一个度量或DAX,可以用来计算当某些行中有多个值时,特定值在列中出现的次数?比如说;
我不想取消透视表,因为它会扰乱表中的其他数据。结果
bybem2ql1#
step1.为AA、AB、AC创建列和测量:
列:
AA = if(search("AA",[Value],,0)>0,1,0)
测量:
AA measure = sum('Value'[AA])
与AB,AC.相同
**step2.**新建表:
Result = datatable( "Category",STRING, {{"AA"},{"AB"},{"AC"}})
**step3.**在新表中添加列:
Value = switch(true(), [Category]="AA",[AA measure], [Category]="AB",[AB measure], [Category]="AC",[AC measure])
apeeds0o2#
假设您已经生成了一个表(名为 Values),其中包含一个单列(名为 Value)的不同值(例如“AA”,“AB”,“AC”),请创建此度量:
= VAR ThisValue = MIN ( 'Values'[Value] ) RETURN COUNTROWS ( FILTER ( Table1, SEARCH ( ThisValue, Table1[Value],, 0 ) > 0 ) )
并将其添加到可视化视图中的 Values 表中的 Value 字段旁边。
vql8enpb3#
在Power Query中执行以下操作1.第一个按分隔符拆分列;1.取消旋转列1.修剪列中的文本
oxcyiej74#
如果您只想使用Excel公式来执行此操作,您可以尝试以下操作。在单元格C1中输入以下公式:
C1
=LET(A, A2:A8,values,DROP(REDUCE("",A,LAMBDA(ac,x, VSTACK(ac,TEXTSPLIT(x,,"; ",1)))),1), ux, UNIQUE(values), cnts, BYROW(ux, LAMBDA(x, SUM(N(values=x)))), VSTACK({"Category","Result"},HSTACK(ux, cnts)))
下面是输出:
有关更多信息,请查看我对以下与REDUCE/VSTACK模式相关的问题的回答:如何将Excel中表格从垂直转换为水平,但长度不同。如果你没有一个大的数据集,在连接整个列后不会达到最大单元格大小(32,767字符数),那么你可以尝试以下操作:
REDUCE/VSTACK
32,767
=LET(A, A2:A8, values,TOCOL(TEXTSPLIT(TEXTJOIN(",",,A),"; ",",",1),2), ux, UNIQUE(values), cnts,BYROW(ux, LAMBDA(x, SUM(N(values=x)))), VSTACK({"Category","Result"}, HSTACK(ux, cnts)))
第二个解决方案比第一个快大约100x。
100x
4条答案
按热度按时间bybem2ql1#
step1.为AA、AB、AC创建列和测量:
列:
测量:
与AB,AC.
相同
**step2.**新建表:
**step3.**在新表中添加列:
apeeds0o2#
假设您已经生成了一个表(名为 Values),其中包含一个单列(名为 Value)的不同值(例如“AA”,“AB”,“AC”),请创建此度量:
并将其添加到可视化视图中的 Values 表中的 Value 字段旁边。
vql8enpb3#
在Power Query中执行以下操作
1.第一个按分隔符拆分列;
1.取消旋转列
1.修剪列中的文本
oxcyiej74#
如果您只想使用Excel公式来执行此操作,您可以尝试以下操作。在单元格
C1
中输入以下公式:下面是输出:
有关更多信息,请查看我对以下与
REDUCE/VSTACK
模式相关的问题的回答:如何将Excel中表格从垂直转换为水平,但长度不同。如果你没有一个大的数据集,在连接整个列后不会达到最大单元格大小(
32,767
字符数),那么你可以尝试以下操作:第二个解决方案比第一个快大约
100x
。