Power Query中忽略0与null值求多列最小值的方法
Power Query获取忽略0和Null的列最小值解决方案
你的问题出在之前的代码生成了布尔值列表,[A]>0这类判断返回的是true/false而非原始数值,所以List.Min处理的是布尔值,自然得不到正确结果。以下是直接满足需求的简洁写法:
针对指定列的写法
如果只需要处理[A][B][C][D]这几列,用这段代码:
Table.AddColumn(#"Previous Step", "Min", each List.Min( List.Select({[A], [B], [C], [D]}, (x) => x <> null and x <> 0), null ), type number )
{[A], [B], [C], [D]}:把目标列的数值打包成列表List.Select:过滤掉列表里的null和0值List.Min(..., null):对过滤后的列表取最小值,如果所有值都是0或null,返回null(你可以把null改成0或其他默认值)- 指定
type number保证列类型为数值型
自动适配所有数值列的写法
如果要处理当前表所有数值列,不用逐个列名写,用这段:
Table.AddColumn(#"Previous Step", "Min", each List.Min( List.Select( Record.FieldValues(_), (x) => Value.Is(x, type number) and x <> null and x <> 0 ), null ), type number )
Record.FieldValues(_):获取当前行所有字段的值Value.Is(x, type number):只保留数值类型的值,避免非数值列干扰
内容的提问来源于stack exchange,提问作者IamTheB
相关产品推荐
相关产品推荐

