如何在Power Query中判断列中的值是否为数值?
Power Query 判断值是否为纯数值的解决方案
自定义函数实现
直接使用以下自定义函数即可满足需求:
let IsNumeric = (input) => let CheckNull = if input = null then false else try Value.Is(Value.FromText(input), type number) and Text.From(Value.FromText(input)) = input otherwise false in CheckNull in IsNumeric
用法说明
- 将上述代码粘贴到Power Query的高级编辑器中,创建自定义函数
IsNumeric - 返回数据视图,添加自定义列,输入公式
IsNumeric([column])(把[column]替换成你实际的列名)
逻辑说明
- 先处理空值,返回
False(若需要空值返回True,可自行修改CheckNull部分的逻辑) - 通过
Value.FromText尝试将输入内容转换为数值,转换失败直接返回False - 额外验证转换后的数值转回字符串与原内容完全一致,避免类似
"123.0"和"123"这类格式差异导致的误判(不需要此验证可去掉and Text.From(Value.FromText(input)) = input部分)
对应测试案例结果
| Id | [column] | Is numeric |
|---|---|---|
| 1 | Hello | False |
| 2 | 44345 | True |
| 3 | C5133 | False |
内容的提问来源于stack exchange,提问作者Sean Dicks
相关产品推荐
相关产品推荐

