You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Google Sheets中判断Name2在两列重复的ARRAYFORMULA公式

解决Google Sheets中ARRAYFORMULA结合多条件重复判断的问题

需求说明

现有两列数据:Name 1(A列)、Name 2(B列),需要数组公式实现以下逻辑:
判断每行B列的值是否满足任一条件:

  1. 在A列的任意位置出现过
  2. 在B列的其他位置出现过(即B列中该值出现次数≥2)
    满足条件返回Yes,否则返回空,且公式需自动应用到新增行。

示例表格

Name 1Name 2Is Name2 duplicate (formula)
SamJay
SandraJudyYes
JaneJudyYes
PeteSamYes
PeteSarah
GerryGerryYes

已有尝试

你已经实现了单列匹配的数组公式:

{"match name 1";ARRAYFORMULA(if(COUNTIF (A:A, B2:B)>0, "yes",""))}
{"match name 2";ARRAYFORMULA(if(COUNTIF (B:B, B2:B)>1, "yes",""))}

也写出了非数组的多条件判断公式:

=OR(COUNTIF (A:A, B2:B)>0,COUNTIF (B:B, B2:B)>1)

但OR()作为聚合函数,无法直接在ARRAYFORMULA中进行数组运算,导致公式失效。

解决方案

方法1:用数值加法替代OR逻辑

利用Google Sheets中TRUE=1、FALSE=0的特性,将两个条件的布尔结果相加,只要结果大于0就说明满足任一条件:

={"Is Name2 duplicate (formula)";ARRAYFORMULA(IF((COUNTIF(A:A, B2:B) > 0) + (COUNTIF(B:B, B2:B) > 1) > 0, "Yes", ""))}

直接将公式放在结果列的第一行即可,会自动向下填充并适配新增行。

方法2:用IF嵌套实现多条件判断

通过两层IF嵌套,依次判断两个条件,避免使用OR函数:

={"Is Name2 duplicate (formula)";ARRAYFORMULA(IF(COUNTIF(A:A, B2:B) > 0, "Yes", IF(COUNTIF(B:B, B2:B) > 1, "Yes", "")))}

逻辑:先检查是否在A列存在,是则返回Yes;否则检查是否在B列重复,是则返回Yes,否则返回空。

优化:排除空行

如果需要忽略B列的空行,可额外添加空值判断:

={"Is Name2 duplicate (formula)";ARRAYFORMULA(IF(B2:B="", "", IF((COUNTIF(A:A, B2:B) > 0) + (COUNTIF(B:B, B2:B) > 1) > 0, "Yes", "")))}

内容的提问来源于stack exchange,提问作者user984003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:10:07