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

Excel中INDEX+MATCH多条件匹配返回多个唯一结果的实现方案

解决Excel中匹配多条件返回唯一结果的问题

针对你需要匹配姓名(A列)和姓氏(B列),从Table1提取所有唯一的Food allergy code并横向展示的需求,分两种Excel版本给出解决方案:

一、Excel 365/2021(支持动态数组)

自动溢出版本(无需手动拖动)

在C3单元格输入以下公式,结果会自动横向填充所有唯一匹配值:

=TRANSPOSE(UNIQUE(FILTER(Table1!C:C,(Table1!A:A=A2)*(Table1!B:B=B2))))
  • FILTER:筛选出Table1中与当前行姓名、姓氏均匹配的所有过敏码
  • UNIQUE:去除筛选结果中的重复值
  • TRANSPOSE:将纵向结果转为横向排列

手动拖动版本

如果需要手动拖动公式(比如从C3拖到D4),可以用以下公式,拖动后会依次提取第1、第2...个唯一匹配值,无结果时显示空:

=IFERROR(INDEX(UNIQUE(FILTER(Table1!C:C,(Table1!A:A=A2)*(Table1!B:B=B2))),COLUMN(A1)),"")

拖动时,COLUMN(A1)会自动变为COLUMN(B1),对应提取唯一结果的第2个值。

二、旧版Excel(不支持动态数组,需按Ctrl+Shift+Enter输入数组公式)

在C3单元格输入以下数组公式,按Ctrl+Shift+Enter确认后横向拖动:

=IFERROR(INDEX(Table1!C:C,SMALL(IF((Table1!A:A=$A$2)*(Table1!B:B=$B$2)*(COUNTIF($C$2:C2,Table1!C:C)=0),ROW(Table1!C:C)),1)),"")
  • (Table1!A:A=$A$2)*(Table1!B:B=$B$2):匹配姓名和姓氏条件
  • COUNTIF($C$2:C2,Table1!C:C)=0:排除已经在当前单元格左侧/上方提取过的重复值
  • SMALL+ROW:按顺序提取符合条件的行号
  • INDEX:根据行号返回对应过敏码

优化建议

针对大型数据集,建议用结构化引用(比如Table1[名字]、Table1[姓氏]、Table1[Food allergy code])代替整列引用(Table1!A:A),减少计算量提升效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:05:40