Excel 2019:按ID替换Self-Employed为对应公司名求助
解决方案(Excel 2019适用)
针对你遇到的VLOOKUP仅能匹配前置行的问题,以下两种非手动公式方案可解决同一ID下"Self-Employed"替换为对应公司名的需求:
方案1:INDEX+MATCH数组公式
在新列(比如C2单元格)输入以下公式,按Ctrl+Shift+Enter完成数组输入(Excel 2019需手动触发数组计算),再下拉填充到所有行:
=IF(B2="Self-Employed", INDEX(B:B, MATCH(1, (A:A=A2)*(B:B<>"Self-Employed"), 0)), B2)
逻辑说明
(A:A=A2):筛选出当前行相同ID的所有行(B:B<>"Self-Employed"):从上述行中排除值为"Self-Employed"的行- 两个条件相乘后,符合要求的行返回
1,其余返回0,MATCH找到第一个1的位置,INDEX返回对应B列的公司名称
方案2:AGGREGATE函数(无需数组输入)
如果觉得数组输入麻烦,可使用AGGREGATE函数,在C2输入后直接下拉填充即可:
=IF(B2="Self-Employed", INDEX(B:B, AGGREGATE(15, 6, ROW(B:B)/((A:A=A2)*(B:B<>"Self-Employed")), 1)), B2)
逻辑说明
ROW(B:B)/((A:A=A2)*(B:B<>"Self-Employed")):符合条件的行保留行号,不符合的返回错误值- AGGREGATE的
15参数对应SMALL函数,6参数忽略错误值,最终提取符合条件的最小行号(即第一个出现的公司名行),INDEX返回对应值
优化建议
为提升数千行数据的计算速度,建议将公式中的整列引用(A:A、B:B)替换为实际数据范围,比如A2:A1000、B2:B1000,避免Excel遍历整列数据。
内容的提问来源于stack exchange,提问作者junny
相关产品推荐
相关产品推荐

