加入 PowerBI自己学 知识星球:下载源文件,边学边练;遇到问题,还可以提问交流。
判断是否包含指定字符比较容易,有对应的函数可以使用,但是要计算数字、字母、汉字或指定字符的个数,就需要多个函数组合实现,尤其是指定字符的个数。
解决方案
方案1 计算数字、字母、汉字、单个指定字符的个数,可以通过文本提取函数把字符提取出来,再使用文本长度函数计算字符个数。
方案2 计算多个指定字符的个数(也适用于单个指定字符),可以将指定字符替换为空,然后用原文本长度减去处理后的文本长度,再除以指定字符的字符数,就是多个指定字符的个数。
1 数字字符数
Text.Length(Text.Select([名称],{"0".."9"}))
2 字母字符数
Text.Length(Text.Select([名称],{"A".."z"}))
3 汉字字符数
Text.Length(Text.Select([名称],{"一".."龥"}))
4 单个指定字符的个数(a)
Text.Length(Text.Select([名称],"a"))
5 多个指定字符的个数(AB)
(Text.Length([名称]) - Text.Length(Text.Replace([名称],"AB","")))/2
方案1和方案2的结果,如下:
举例
下表有一列选修课程是合并后的内容,课程名称之间由“,”隔开,现需要统计每个人选修课程的数量。
方案1 课程数量_使用Text.Select。
Text.Length(Text.Select([选修课程],","))+1
方案2 课程数量_使用Text.Replace。
(Text.Length([选修课程]) - Text.Length(Text.Replace([选修课程],",","")))+1
两种方案的结果,如下:
拓展
计算多个指定字符个数的逻辑在Excel和DAX中同样适用,替换函数换成SUBSTITUTE,可以自行尝试。