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

谷歌表格ARRAYFORMULA报错:Array arguments to EQ are of different size求助

解决Google Sheets中数组大小不匹配的问题

我明白你遇到的问题了——你原来的公式之所以报错,是因为A2:A和B2:B8是两个长度不一样的数组:B2:B8只有7行数据,而A2:A是一整列(行数远多于7),当你直接用=逐行对比时,Google Sheets会要求两个数组的大小完全一致,否则就会抛出"Array arguments to EQ are of different size"的错误。

要实现你想要的逻辑(判断A列每个值是否匹配B列任意值,匹配返回0,否则返回1),你需要用能检查「值是否存在于某个区域」的函数,而不是逐行对比。这里有两个简单好用的方案:

方案一:用COUNTIF批量判断

这个方法通过统计A列值在B列中的出现次数来判断是否匹配:

=ARRAYFORMULA(IF(COUNTIF(B2:B8, A2:A)>0, 0, 1))
  • COUNTIF(B2:B8, A2:A):对A列的每个值,统计它在B2:B8区域里出现的次数
  • IF(..., 0, 1):如果次数大于0(说明匹配到了)就返回0,否则返回1
  • ARRAYFORMULA:让公式自动应用到A列的所有行,不用下拉填充

方案二:用MATCH+ISNA判断

这个方法通过匹配位置来判断是否存在,找不到匹配值时MATCH会返回#N/A,用ISNA识别这个错误:

=ARRAYFORMULA(IF(ISNA(MATCH(A2:A, B2:B8, 0)), 1, 0))
  • MATCH(A2:A, B2:B8, 0):精确查找A列每个值在B2:B8中的位置,找不到就返回#N/A
  • ISNA(...):如果结果是#N/A(说明没匹配到)就返回TRUE,否则FALSE
  • IF(..., 1, 0):没匹配到返回1,匹配到返回0

额外注意:时间格式匹配

如果A列是带日期的时间戳(比如2024/5/20 02:30),而B列只有纯时间(比如02:30),你需要先提取A列的时间部分再对比,比如修改方案一的公式:

=ARRAYFORMULA(IF(COUNTIF(B2:B8, TEXT(A2:A, "HH:mm"))>0, 0, 1))

TEXT(A2:A, "HH:mm")会把A列的时间戳转换成和B列一致的时间格式,确保对比的是正确的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:30:05