Excel多匹配值遍历:判断员工是否属销售部并标记
解决表格匹配需求的几种实用方法
方法1:COUNTIFS函数(最简便通用)
假设表格A的姓名列是A列,表格B的姓名列是B列、部门列是C列,在表格A的新增列(比如D2单元格)输入公式:=IF(COUNTIFS(B:B,A2,C:C,"Sales")>0,"OK","NO")
下拉填充即可。
原理:COUNTIFS会同时匹配「姓名一致」和「部门为Sales」两个条件,只要存在至少一条符合的记录,计数结果就大于0,直接返回"OK",否则返回"NO",天然支持处理重复姓名的情况。
方法2:数组公式(适配旧版Excel)
如果使用旧版Excel(无动态数组功能),可以用数组公式实现:=IF(SUM(--(B:B=A2)*(C:C="Sales"))>0,"OK","NO")
输入完成后按Ctrl+Shift+Enter组合键确认(新版Excel直接回车即可)。
原理:(B:B=A2)*(C:C="Sales")会生成一组逻辑值,--将其转换为0或1,求和后大于0则说明存在符合条件的记录。
方法3:XLOOKUP函数(新版Excel专属)
新版Excel支持动态数组,用XLOOKUP结合OR函数更灵活:=IF(OR(XLOOKUP(A2,B:B,C:C,"",0,1)="Sales"),"OK","NO")
原理:XLOOKUP的最后一个参数1会返回所有匹配姓名的部门值,OR函数只要其中有一个是"Sales"就返回TRUE,进而输出"OK"。
方法4:Power Query(适合大数据量)
如果数据量较大,函数运算效率低,推荐用Power Query处理:
- 将表格A和表格B分别导入Power Query编辑器
- 对表格B筛选
Department列等于"Sales"的记录,然后对Name列去重(仅保留唯一值) - 将处理后的表格B与表格A做左连接,连接键选择
Name列 - 添加自定义列,输入逻辑判断:
if [匹配的列名] <> null then "OK" else "NO" - 将处理完成的数据加载回Excel
内容的提问来源于stack exchange,提问作者Eugenia Castilla
相关产品推荐
相关产品推荐

