Excel INDEX函数如何保留重复值实现带重复项的合同客户提取
提取含指定合同类型的客户列表(保留重复项)
方案1:Excel 365/2021 动态数组方案
直接用FILTER函数一步生成包含重复项的目标列表,无需下拉填充:
=FILTER(Contracts!A:A, Contracts!H:H="X", "")
这个公式会自动筛选出Contracts工作表中H列标记为"X"的所有行对应的A列客户信息,自动保留重复项,无符合条件数据时返回空值。
方案2:旧版Excel 数组公式方案
如果用的是不支持动态数组的旧版Excel,用调整后的INDEX+SMALL数组公式(输入时需按Ctrl+Shift+Enter完成数组输入,然后下拉填充):
=IFERROR(INDEX(Contracts!$A:$A, SMALL(IF(Contracts!$H:$H="X", ROW(Contracts!$H:$H)), ROW(A1))), "")
公式说明:
IF(Contracts!$H:$H="X", ROW(Contracts!$H:$H)):定位所有H列等于"X"的行号SMALL(..., ROW(A1)):依次提取第1、2、3...个符合条件的行号,下拉时自动递增序号INDEX根据行号提取对应A列客户,自然保留重复项,无更多数据时返回空值
原公式问题分析:
你之前先通过中间公式生成带空值的列表,再用INDEX+SMALL提取非空值的方式,容易因为范围设置错误(比如原公式中ROW($A$1:$A$1999)少了一行)或者中间列表的重复项被误判,直接基于原数据的H列条件筛选,既能避免中间步骤的误差,也更高效。
内容的提问来源于stack exchange,提问作者Jonas Rosa
相关产品推荐
相关产品推荐

