Power Query中使用M语言跨多列检索并忽略大小写的实现方法
Power Query M语言:实现大小写不敏感的Pass/Fail计数
你原代码的问题在于直接用=运算符做比较是大小写敏感的,而Comparer.OrdinalIgnoreCase需要配合支持比较器的函数(比如Text.Equals)才能生效,直接用=没法传入比较器参数。下面给你两种可行的修改方案:
方案一:使用Text.Equals搭配Comparer.OrdinalIgnoreCase
直接通过Text.Equals指定忽略大小写的比较规则,代码修改如下:
List.Count( List.Select( Record.ToList(_), each Text.Equals(_, "Pass", Comparer.OrdinalIgnoreCase) or Text.Equals(_, "Fail", Comparer.OrdinalIgnoreCase) ) )
这样不管目标值是pass、PASS、Fail还是fail,都会被正确匹配统计。
方案二:统一转换为小写(或大写)后比较
另一种更直观的写法是把每个值统一转成小写(或大写),再和小写的目标字符串比较:
List.Count( List.Select( Record.ToList(_), each let lowerVal = Text.Lower(_) in lowerVal = "pass" or lowerVal = "fail" ) )
这种方式逻辑简单,也能实现完全的大小写不敏感匹配。
内容的提问来源于stack exchange,提问作者Rob
相关产品推荐
相关产品推荐

