如何在Excel中判断两列值对是否存在于另一工作表的两列中?
解决Excel中跨工作表匹配两列值对的问题
要判断某工作表中两列组成的唯一值对是否存在于另一工作表的对应两列中,不用折腾辅助列,直接用这几个函数就能搞定:
方法1:用COUNTIFS函数(全版本通用)
假设你的Array 1在Sheet1的A、B列,要在C列返回匹配结果,在C1单元格输入公式:
=COUNTIFS(Sheet2!A:A, Sheet1!A1, Sheet2!B:B, Sheet1!B1) > 0
下拉填充即可。
- 原理:
COUNTIFS会统计Sheet2中同时满足「A列等于Sheet1当前行A值」和「B列等于Sheet1当前行B值」的行数,只要行数大于0,就说明这个值对存在,返回TRUE,否则返回FALSE。
方法2:用XLOOKUP函数(Excel 365/2021及以上版本可用)
如果你的Excel支持动态数组,用这个公式更直观:
=XLOOKUP(1, (Sheet2!A:A=Sheet1!A1)*(Sheet2!B:B=Sheet1!B1), TRUE, FALSE)
- 原理:通过
(Sheet2!A:A=Sheet1!A1)*(Sheet2!B:B=Sheet1!B1)生成一个数组,符合条件的位置会返回1,XLOOKUP找到1的位置就返回TRUE,找不到就返回FALSE。
针对你的示例验证
第一个示例中,只有2-B在Array 2中存在,所以对应单元格返回TRUE,其余为FALSE;第二个示例中2-B和4-C都存在,这两个位置都会返回TRUE。
至于你提到的VLOOKUP为啥不行——因为它只能基于单个列的查找值匹配,没法直接处理两列组合的条件,上面的方法不需要合并辅助列,直接一步到位。
内容的提问来源于stack exchange,提问作者2ManyQuestions
相关产品推荐
相关产品推荐

