统计一串文本中某个字符出现的次数是很常见的需求,也有很多星友提问过,这篇文就来整理一下如何用PowerBI来进行这种计算。如何计算出每一行的文本中,斜杠字符"/"有多少个?下面通过M和DAX两种函数来看看如何实现这种需求。List.Count(
List.Select(
Text.ToList([文本]),
each _="/"
)
)
这个表达式的逻辑是,先通过 Text.ToList将这一串文本拆分成每个字符的列表,然后通过List.Select筛选其中为"/"字符,最后通过List.Count统计字符的个数。
这个方法的思路是将需要统计的字符移除或者替换为空,然后统计替换前后字符长度的差异就可以实现了。
Text.Length(Text.Remove([文本],"/"))
这个方法比较简单,并且不仅是M函数,用DAX也可以用同样的思路计算。使用DAX,除了上面的方法,其实还可以结合父子函数的逻辑巧妙地统计出来。
在DAX中新建列,将要统计的字符,这里就是"/",利用SUBSTITUTE函数,替换成 "|" ,替换后的结果如下:你也许不是很理解为什么要替换成这样,但是如果熟悉DAX中的父子函数,应该能看出来,替换成"|"后的效果类似于父子层级结构,我们可以利用父子函数中的PATHLENGTH,来统计层级深度。因为带有1个"|",代表有2个层级,2个"|",代表有3个层级,以此类推,层级数减去1就是"|"的个数,也就是我们要查找字符的个数,结果如下:
其实熟悉了这个原理,我们可以一次性就把它计算出来:通过上面几种方式,利用不同的函数、不同的算法,实现了同样的需求,这些技巧你学会了吗?
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 »
Power BI如何统计文本中字符出现的次数?
0条评论