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

如何防止INDEX+SMALL组合公式返回重复匹配值

问题原因
  • 你当前使用的INDEX+SMALL+IF数组公式仅做了条件匹配,没有加入去重逻辑,如果源表Trailers Closed (OD)的B列本身存在重复值,返回结果必然带重复内容。
  • 直接套用UNIQUE函数失效通常是两个原因:一是使用的Excel版本不支持动态数组溢出特性,向下填充时公式引用会发生偏移;二是将UNIQUE嵌套在单单元格公式外层向下填充,每次仅对单个返回值做去重,无法实现全局去重效果。
解决方案

根据你使用的Excel版本选择对应方案即可:

适用于Excel 365/2021及以上支持动态数组的版本

不需要向下拖拽填充,直接点击C7单元格输入以下公式,按回车后会自动溢出所有符合条件的去重结果:

=UNIQUE(FILTER('Trailers Closed (OD)'!B:B,('Trailers Closed (OD)'!M:M=Sunday!$D$1)*('Trailers Closed (OD)'!Y:Y=Sunday!$D$2)*('Trailers Closed (OD)'!Z:Z=Sunday!$D$3),""))

注意:输入前不要选中C7:C100整片区域,仅选中C7单元格输入即可,公式会自动向下填充结果,不会生成重复值。

适用于Excel 2019及更早不支持动态数组的版本

修改原有数组公式,新增去重判断逻辑。点击C7单元格输入以下公式,按下Ctrl+Shift+Enter三键确认数组公式后,再向下填充到C100单元格即可:

=IFERROR(INDEX('Trailers Closed (OD)'!B:B,SMALL(IF(('Trailers Closed (OD)'!M:M=Sunday!$D$1)*('Trailers Closed (OD)'!Y:Y=Sunday!$D$2)*('Trailers Closed (OD)'!Z:Z=Sunday!$D$3)*(COUNTIF(C$6:C6,'Trailers Closed (OD)'!B:B)=0),ROW('Trailers Closed (OD)'!A:A)),1)),"")
  • 公式中新增的COUNTIF(C$6:C6,'Trailers Closed (OD)'!B:B)=0逻辑,会在每次取数时自动排除上方单元格已经出现过的值,从匹配阶段就避免重复,不需要额外嵌套UNIQUE函数。
  • 注意C$6:C6为混合引用,向下填充时会自动扩展统计范围,始终覆盖当前单元格上方的所有返回结果,不要随意修改该引用的$符号位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 07:15:32