You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Power Query中基于多条件添加条件列的技术需求咨询

Power Query中基于多条件添加条件列的技术需求咨询

嗨,我来帮你搞定这个Power Query的需求~先把你的核心诉求再理一遍,确保没理解错:

  • 你的表格里,原材料可能同时出现在TopMaterialComponent
  • 空行代表没有组件(比如是服务类条目)
  • 你需要让所有所属Calc No.下存在TopMaterial与Component同名的行的新列值为空——也就是只要某个Calc No.下有任意一行的TopMaterial和Component是一样的,那这个Calc No.下所有行的新列都要设为空。

接下来咱们分步骤实现,操作都在Power Query编辑器里完成:

步骤1:标记同名行

先添加一个临时自定义列,用来标记当前行的TopMaterialComponent是否相等。
点击添加列自定义列,输入公式:

= [TopMaterial] = [Component]

把这个列命名为IsSame,它会返回true(同名)或false(不同名),空行因为Component是null,所以会返回false,刚好符合你的场景。

步骤2:提取需要排除的Calc No.

接下来要找出所有包含同名行的Calc No.,把它们存成一个列表:

  1. 点击转换分组依据,设置参数:
    • 分组依据:Calc No.
    • 新列名:HasSamePair
    • 操作:任意行
    • 列:IsSame
  2. 分组完成后,筛选出HasSamePair = true的行,只保留Calc No.
  3. 把这列转成列表:选中Calc No.列,点击转换到列表,把这个列表命名为ExcludedCalcNos(可以在查询管理器里修改名称)

步骤3:生成目标新列

最后添加你需要的新列,判断当前行的Calc No.是否在排除列表里,是的话就设为空,否则可以按需求填充内容:
点击添加列自定义列,输入公式:

= if List.Contains(ExcludedCalcNos, [Calc No.]) then null else "这里填你需要的非空内容"

比如你如果想保留正常的组件关联信息,就把"这里填你需要的非空内容"替换成对应的列值(比如[Component]或者其他你需要的内容)。

如果觉得中间的临时列(IsSame、分组后的表)看着麻烦,也可以把这些逻辑嵌套成一个公式,不过分步操作更直观,方便你调试和修改~

备注:内容来源于stack exchange,提问作者user21251590

火山引擎 最新活动