如何在Excel中逐行检查Sheet1数据,返回Sheet2中重复超1次的首个值?
查找Sheet1中首个在Sheet2重复超1次的值
以下是两种简洁的公式解决方案,替代冗长的IFS函数:
方案1:Excel 365/2021 动态数组公式
直接用FILTER筛选所有符合条件的值,再用TAKE提取第一个结果:
=TAKE(FILTER(Sheet1!A:A,COUNTIF(Sheet2!A:A,Sheet1!A:A)>1),1)
如果需要处理无符合条件的情况,避免返回#N/A:
=IFERROR(TAKE(FILTER(Sheet1!A:A,COUNTIF(Sheet2!A:A,Sheet1!A:A)>1),1),"无符合条件值")
方案2:兼容旧版Excel(非动态数组)
使用数组公式(输入后按Ctrl+Shift+Enter确认):
=INDEX(Sheet1!A:A,MATCH(TRUE,COUNTIF(Sheet2!A:A,Sheet1!A:A)>1,0))
同样可以加IFERROR处理无结果的情况:
=IFERROR(INDEX(Sheet1!A:A,MATCH(TRUE,COUNTIF(Sheet2!A:A,Sheet1!A:A)>1,0)),"无符合条件值")
公式逻辑说明
COUNTIF(Sheet2!A:A,Sheet1!A:A):遍历Sheet1的每个值,计算其在Sheet2中的出现次数>1:将次数转换为布尔值(出现超1次为TRUE,否则为FALSE)- 动态数组方案用
FILTER筛选出所有TRUE对应的Sheet1值,TAKE取第一个;旧版方案用MATCH找到第一个TRUE的位置,INDEX返回对应值
内容的提问来源于stack exchange,提问作者SAIKA
相关产品推荐
相关产品推荐

