为现有公式添加ArrayFormula遇#N/A错误,求解决方法
解决Google Sheets中ArrayFormula的"Array arguments to MINUS are of different size"错误
错误原因
错误的核心是数组维度不匹配:你公式里的Backend!K2:K100-A2:A在数组运算时,Backend!K2:K100是固定99行的范围,而A2:A是整个列的动态数组(行数远多于99)。Google Sheets的数组减法要求参与运算的两个数组维度完全一致,或者其中一个是单个值,否则就会触发大小不匹配的错误。
解决方案
改用MAP或BYROW函数逐行处理A列的每个值,避免整列数组和固定行数组的维度冲突:
方案1:使用MAP函数
=MAP(A2:A, LAMBDA(val, IF(ISNUMBER(val), INDEX(Backend!C2:C100&" "&Backend!D2:D100&" "&Backend!E2:E100&" - Ref "&Backend!A2:A, MATCH(MIN(ABS(Backend!K2:K100-val)), ABS(Backend!K2:K100-val), 0)), "")))
方案2:使用BYROW函数
=BYROW(A2:A, LAMBDA(row_val, IF(ISNUMBER(row_val), INDEX(Backend!C2:C100&" "&Backend!D2:D100&" "&Backend!E2:E100&" - Ref "&Backend!A2:A, MATCH(MIN(ABS(Backend!K2:K100-row_val)), ABS(Backend!K2:K100-row_val), 0)), "")))
原理说明
MAP和BYROW会遍历A2:A中的每个值,将单个值(而非整列数组)与Backend!K2:K100进行运算:
- 对每个A列的值,单独计算与
Backend!K2:K100的差值绝对值 - 找到差值绝对值最小的位置,用
INDEX返回对应的拼接文本 - 非数字的A列值返回空文本
这种逐行处理的方式,确保每次运算都是单个值和固定行数组的匹配运算,不会出现维度不匹配的问题。
内容的提问来源于stack exchange,提问作者Aadhil MBM
相关产品推荐
相关产品推荐

