如何使用DAX筛选/计数仅含长度为5的纯字母字符的行?
DAX度量值实现长度为5的纯字母行计数
要实现仅统计Reporting 5列中长度为5且全为字母的行数,可以通过组合DAX字符串判断函数完成,以下是具体实现方案:
度量值代码
计数长度5纯字母行 = CALCULATE( COUNTROWS('你的表名'), FILTER( '你的表名', -- 排除空值行 NOT(ISBLANK('你的表名'[Reporting 5])), -- 检查字符长度是否为5 LEN('你的表名'[Reporting 5]) = 5, -- 检查是否仅包含字母(无数字、空格、特殊字符) ISERROR(SEARCH("[^A-Za-z]", '你的表名'[Reporting 5],, 1)) ) )
关键条件说明
- NOT(ISBLANK(...)):过滤列值为空的行,避免空值干扰长度判断。
- LEN(...) = 5:精准匹配字符长度为5的行,像你示例里的
999999999(长度9)、CODED(长度4)这类不符合长度要求的内容会被直接排除。 - ISERROR(SEARCH("[^A-Za-z]", ...)):用正则表达式
[^A-Za-z]匹配任何非字母字符,若SEARCH找不到匹配项(即全为字母)会返回错误,ISERROR捕获该错误后判定为符合条件。你示例里的44817(数字)、BLANK GUEST(含空格)都会被这个条件排除。
关于你之前的尝试说明
你用IF+CONTAINS的思路不适用,因为CONTAINS是用来检查表中是否存在指定行的函数,无法检测字符串内部的字符类型。判断字符串是否含非字母内容,应该用SEARCH或FIND这类字符串查找工具。
内容的提问来源于stack exchange,提问作者courty340
相关产品推荐
相关产品推荐

