如何使用VLOOKUP返回重复出现的查找值对应的每条信息
解决重复工单号的多匹配数据提取问题
VLOOKUP本身只能返回首个匹配结果,这是函数的固有逻辑,跟$符号无关。要提取重复工单号的后续条目,推荐以下几种实用方法:
方法1:INDEX+SMALL+IF组合(兼容所有Excel版本)
如果用的是旧版Excel(非365/2021),可以用数组公式按顺序提取同一工单号的所有匹配值:
在第二份表格的B2单元格输入公式:
=IFERROR(INDEX('[permitting numbers.xlsx]Sheet3'!$D$2:$D$14,SMALL(IF('[permitting numbers.xlsx]Sheet3'!$A$2:$A$14=$A2,ROW('[permitting numbers.xlsx]Sheet3'!$A$2:$A$14)-ROW('[permitting numbers.xlsx]Sheet3'!$A$2)+1),ROW(A1))),"")
- 旧版Excel输入完成后需按
Ctrl+Shift+Enter触发数组计算,365/2021版直接回车即可 - 下拉公式,就能依次获取当前工单号的第1、第2...个里程碑日期,无匹配时显示空值
方法2:FILTER函数(Excel 365/2021专属)
如果是Excel 365或2021版本,用动态数组函数FILTER更高效,直接提取所有匹配结果:
在第二份表格的B2单元格输入:
=FILTER('[permitting numbers.xlsx]Sheet3'!$D$2:$D$14,'[permitting numbers.xlsx]Sheet3'!$A$2:$A$14=A2,"")
公式会自动溢出显示所有对应A2工单号的里程碑日期,无需手动下拉,适合快速生成动态报表。
方法3:XLOOKUP多匹配(Excel 365/2021)
也可以用XLOOKUP结合计数逻辑,按顺序提取第N个匹配值:
=IFERROR(XLOOKUP($A2&"|"&ROW(A1), '[permitting numbers.xlsx]Sheet3'!$A$2:$A$14&"|"&COUNTIFS('[permitting numbers.xlsx]Sheet3'!$A$2:$A$14,$A2,'[permitting numbers.xlsx]Sheet3'!$A$2:$A$14,"<="&'[permitting numbers.xlsx]Sheet3'!$A$2:$A$14), '[permitting numbers.xlsx]Sheet3'!$D$2:$D$14),"")
下拉公式后,ROW(A1)会自动递增,依次获取第1、第2...个匹配的日期。
内容的提问来源于stack exchange,提问作者ott3rpop
相关产品推荐
相关产品推荐

