PowerQuery自定义列需求:判断列值是否在指定数字集合中
解决PowerQuery自定义列判断值是否在指定集合的简便方法
- 方法1:使用
List.Contains+条件判断
直接利用List.Contains函数检查目标值是否在指定集合中,再返回对应数字:
if List.Contains({3, 6, 9, 14}, [你的列名]) then 1 else 0
替换[你的列名]为实际要判断的列名称(比如[数值])即可,逻辑直观,新手也容易理解。
- 方法2:简化为
Number.From直接转换布尔值
因为List.Contains返回的是布尔值(true/false),而Number.From可以把true转成1、false转成0,所以公式可以进一步简化:
Number.From(List.Contains({3, 6, 9, 14}, [你的列名]))
这个写法更简洁,省去了if-else的冗余代码。
- 方法3:定义复用列表(适合集合需频繁修改的场景)
如果后续需要调整指定的数字集合,可以先在PowerQuery的高级编辑器里定义一个列表变量,再在自定义列中引用:
- 进入高级编辑器,在开头添加:
let targetNumbers = {3, 6, 9, 14}, // 定义目标集合 源 = ... // 原有的数据源代码
- 回到添加自定义列界面,使用公式:
Number.From(List.Contains(targetNumbers, [你的列名]))
后续修改集合时,只需要调整targetNumbers的内容即可,不用逐个修改自定义列公式,维护更高效。
内容的提问来源于stack exchange,提问作者Ralph Asher
相关产品推荐
相关产品推荐

