You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel多表筛选:选供应商编号后基于Spend_2022返回All_Spend唯一行

解决方案公式及说明

核心公式

在Auto_Pop工作表的目标单元格输入以下公式(Excel 365/2021及以上版本直接回车即可,无需Ctrl+Shift+Enter):

=UNIQUE(FILTER(All_Spend, ISNUMBER(MATCH(All_Spend[Item #], FILTER(Spend_2022[Item #], Spend_2022[Supplier #]=Auto_Pop!$A$2), 0)), "No matching rows"))

公式拆解

  • 内层FILTER:FILTER(Spend_2022[Item #], Spend_2022[Supplier #]=Auto_Pop!$A$2)
    从Spend_2022表格中,筛选出与Auto_Pop!$A$2(选中的供应商编号)匹配的所有Item #,得到2022年该供应商采购的物料编号列表。
  • MATCH+ISNUMBER:ISNUMBER(MATCH(All_Spend[Item #], ..., 0))
    遍历All_Spend中的每个Item #,检查其是否存在于上述2022年物料编号列表中,返回TRUE/FALSE的判断结果,作为外层筛选的条件。
  • 外层FILTER:FILTER(All_Spend, ..., "No matching rows")
    根据上述判断结果,从All_Spend中筛选出所有符合条件的行,无匹配时返回提示文本。
  • UNIQUE:对筛选后的所有行去重,返回唯一的采购记录。

注意事项

  • 确保Spend_2022和All_Spend都是通过Ctrl+T创建的正式Excel表格,结构化引用(如Spend_2022[Item #])才能正常生效。
  • 若使用Excel 2019及更早版本,因不支持FILTER和UNIQUE函数,需改用Index+Small+Match的组合数组公式,可参考以下替代方案:
    =IFERROR(INDEX(All_Spend, SMALL(IF(ISNUMBER(MATCH(All_Spend[Item #], IF(Spend_2022[Supplier #]=Auto_Pop!$A$2, Spend_2022[Item #]), 0)), ROW(All_Spend)-ROW(All_Spend[#Headers])), ROW(A1)), COLUMN(A1)), "")
    
    此公式需按Ctrl+Shift+Enter数组输入,然后下拉右拉填充,同时需配合辅助列用COUNTIF判断重复来实现去重。

内容的提问来源于stack exchange,提问作者Feketenyek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:21:02