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

Google Sheets报错“Invalid call to non-function”的原因及解决方法

错误成因与解决方法

错误成因

公式触发“Invalid call to non-function”错误的核心原因是BYROW返回了二维数组,导致后续SPLIT无法正常解析参数:

  • 当BYROW遍历A2:A3的每一行时,你在REPT函数里使用了B2:B3整列范围,这会让每一行的计算都返回包含B2、B3两个值的数组,最终BYROW输出的是一个2行2列的二维数组。
  • 外层LAMBDA将这个二维数组传递给SPLIT,但SPLIT仅能处理一维文本值,无法识别二维数组结构,因此触发非函数调用无效的错误。

解决方法

调整BYROW内部的引用逻辑,让每一行仅对应B列的同一行数据,修改后的公式如下:

=ArrayFormula(FLATTEN(SPLIT(BYROW(A2:A3, LAMBDA(r, REPT(INDEX(B:B,ROW(r))&"♥", r))), "♥")))

或者更简洁的写法(直接利用BYROW的行上下文):

=ArrayFormula(FLATTEN(SPLIT(BYROW(A2:B3, LAMBDA(row, REPT(INDEX(row,2)&"♥", INDEX(row,1)))), "♥")))

关键修改说明

  • 将原公式中REPT(B2:B3&"♥",rp)改为REPT(INDEX(B:B,ROW(rp))&"♥",rp),确保每一行仅引用当前行的B列值,让BYROW返回一维数组。
  • 移除了外层多余的LAMBDA嵌套,直接将BYROW的结果传递给SPLIT,公式结构更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:05:55