Google Sheets ArrayFormula跨表匹配单元格报错求助
解决Google Sheets公式数组大小不匹配问题
报错原因
- 单元格范围错误:你写的
'othersheet'!E44:59缺少列标识,实际会被解析为E44到第59行的所有列,和I2:I的单列数组大小完全不匹配,触发"Array arguments to EQ are of different size."错误。 or()函数用法不当:在ArrayFormula中直接使用or()是聚合逻辑,会返回单个布尔值,无法实现逐行判断I2:I的值是否在目标列表中的需求。
正确公式示例
方法一:使用COUNTIF判断存在性
=ArrayFormula({"Somethingsomething";if(len(X2:X),if(COUNTIF('othersheet'!E44:E59,I2:I)>0,1.5,1),)})
COUNTIF会统计I2:I中每个值在'othersheet'!E44:E59范围内的出现次数,次数大于0即说明值存在,返回1.5,否则返回1。
方法二:使用MATCH+ISNUMBER判断存在性
=ArrayFormula({"Somethingsomething";if(len(X2:X),if(ISNUMBER(MATCH(I2:I,'othersheet'!E44:E59,0)),1.5,1),)})
MATCH会返回I2:I中每个值在'othersheet'!E44:E59中的位置,不存在则返回错误;ISNUMBER将结果转为布尔值,存在则返回TRUE,对应输出1.5。
注意事项
- 确认
'othersheet'!E44:E59是你实际需要引用的目标值范围,必须明确列标识(比如示例中的E)。 - 如果目标值范围是动态可扩展的,可改用
'othersheet'!E44:E引用整列,但建议配合FILTER排除空值,避免空值干扰判断。
内容的提问来源于stack exchange,提问作者Borrris
相关产品推荐
相关产品推荐

