Power BI如何统计文本中字符出现的次数?

Power BI如何统计文本中字符出现的次数?,第1张

统计一串文本中某个字符出现的次数是很常见的需求,也有很多星友提问过,这篇文就来整理一下如何用PowerBI来进行这种计算。
以下面这个数据为例,
Power BI如何统计文本中字符出现的次数?,第2张
如何计算出每一行的文本中,斜杠字符"/"有多少个?
下面通过M和DAX两种函数来看看如何实现这种需求。

方法一:利用M直接统计字符法
在PowerQuery编辑器中添加自定义列:

List.Count(

    List.Select(

        Text.ToList([文本]),

        each _="/"

    )

)

这个表达式的逻辑是,先通过  Text.ToList将这一串文本拆分成每个字符的列表,然后通过List.Select筛选其中为"/"字符,最后通过List.Count统计字符的个数。
Power BI如何统计文本中字符出现的次数?,第3张

方法二:替换后计算长度差异法
这个方法的思路是将需要统计的字符移除或者替换为空,然后统计替换前后字符长度的差异就可以实现了。
M函数可以这样写,添加自定义列:
Text.Length([文本])
-
Text.Length(Text.Remove([文本],"/"))
Power BI如何统计文本中字符出现的次数?,第4张
这个方法比较简单,并且不仅是M函数,用DAX也可以用同样的思路计算。
Power BI如何统计文本中字符出现的次数?,第5张


方法三:利用父子函数巧妙实现
使用DAX,除了上面的方法,其实还可以结合父子函数的逻辑巧妙地统计出来。
在DAX中新建列,将要统计的字符,这里就是"/",利用SUBSTITUTE函数,替换成 "|" ,替换后的结果如下:
Power BI如何统计文本中字符出现的次数?,第6张
你也许不是很理解为什么要替换成这样,但是如果熟悉DAX中的父子函数,应该能看出来,替换成"|"后的效果类似于父子层级结构,我们可以利用父子函数中的PATHLENGTH,来统计层级深度。
因为带有1个"|",代表有2个层级,2个"|",代表有3个层级,以此类推,层级数减去1就是"|"的个数,也就是我们要查找字符的个数,结果如下:

Power BI如何统计文本中字符出现的次数?,第7张

参考:利用这个经典应用场景,学习PowerBI父子函数的用法
其实熟悉了这个原理,我们可以一次性就把它计算出来:
Power BI如何统计文本中字符出现的次数?,第8张
通过上面几种方式,利用不同的函数、不同的算法,实现了同样的需求,这些技巧你学会了吗?
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Power BI如何统计文本中字符出现的次数?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情