Excel公式求助:基于姓名匹配及多列条件判断项目资格
实现Sheet1 Q列资格判定的可行方案
我来给你梳理两个适配不同Excel版本的可行方案,直接套用就能完成需求:
一、适用于Excel 365/2021及以后版本(支持XLOOKUP)
在Sheet1的Q2单元格(假设表头在第1行,数据从第2行开始)输入以下公式,然后下拉填充即可:
=IF(SUMPRODUCT(--(INDEX(Sheet2!$F:$K,XLOOKUP(A2,Sheet2!$A:$A,ROW(Sheet2!$A:$A)),{1,4,5,6})<=4))>=3,"符合资格","不符合")
公式拆解:
XLOOKUP(A2,Sheet2!$A:$A,ROW(Sheet2!$A:$A)):精准定位Sheet2中与Sheet1 A2姓名匹配的行号INDEX(Sheet2!$F:$K, 匹配行号, {1,4,5,6}):提取该行的F(第1列)、I(第4列)、J(第5列)、K(第6列)四个单元格的值--(值<=4):把"值≤4"的布尔判断结果转成1(符合)或0(不符合),方便统计数量SUMPRODUCT:对上述1/0值求和,得到符合条件的单元格数量- 最后用
IF判断:如果数量≥3,返回"符合资格",否则返回"不符合"
你也可以用更简洁的COUNTIF版本:
=IF(COUNTIF(INDEX(Sheet2!$F:$K,XLOOKUP(A2,Sheet2!$A:$A,ROW(Sheet2!$A:$A)),{1,4,5,6}),"<=4")>=3,"符合资格","不符合")
二、适用于Excel 2019及更早版本(无XLOOKUP支持)
旧版Excel用INDEX+MATCH组合来定位匹配行,公式如下:
=IF(SUMPRODUCT(--(INDEX(Sheet2!$F:$K,MATCH(A2,Sheet2!$A:$A,0),{1,4,5,6})<=4))>=3,"符合资格","不符合")
公式拆解:
MATCH(A2,Sheet2!$A:$A,0):精准找到Sheet2中与A2姓名匹配的行号(0代表精确匹配)- 后续的统计和判断逻辑和上面的现代版完全一致
额外注意点
- 如果Sheet2的A列存在重复姓名,上述公式只会匹配第一个出现的姓名行。要是需要处理重复姓名的情况,得根据你的具体需求调整逻辑(比如统计所有匹配行的符合条件数量总和,或者取特定行)
- 如果目标单元格(F/I/J/K列)有空值,
<=4会把空值视为0统计进去。要是想排除空值,把公式调整为:
=IF(SUMPRODUCT(--(INDEX(Sheet2!$F:$K,XLOOKUP(A2,Sheet2!$A:$A,ROW(Sheet2!$A:$A)),{1,4,5,6})<>""),--(INDEX(Sheet2!$F:$K,XLOOKUP(A2,Sheet2!$A:$A,ROW(Sheet2!$A:$A)),{1,4,5,6})<=4))>=3,"符合资格","不符合")
内容的提问来源于stack exchange,提问作者Brittany Moulton




