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

Google Sheets数组公式合并两个工作表并新增来源列报错咨询

报错原因

两个公式触发In ARRAY_LITERAL, an Array Literal was missing values for one or more rows错误的核心原因有两点:

  • 横向拼接数组时维度不匹配:你用逗号做横向拼接时,左侧只写了单个字符串"Sheet1"/"Sheet2",仅占1行1列;但右侧FILTER/QUERY返回的是N行2列的数据集,单个字符串不会自动填充到所有返回行,直接拼接就会出现行/列数无法对齐的问题。
  • 第一个FILTER公式存在逻辑笔误:筛选Sheet2数据时,非空判断条件错写为'Sheet1'!A1:A<>"",跨表引用的判断范围和待筛选数据的行数不匹配,也会加剧数组计算错误。
正确实现公式

要实现每一行自动匹配来源表名,需要先构造和待合并数据行数完全一致的「来源名称列」,再和原表数据横向拼接,最后纵向合并两个表的结果即可。

FILTER 版本

适合数据量不大、不需要复杂筛选的场景,公式如下:

=ARRAYFORMULA(
  {
    IF(FILTER('Sheet1'!A:A,'Sheet1'!A:A<>""),"Sheet1",), FILTER('Sheet1'!A:B,'Sheet1'!A:A<>"");
    IF(FILTER('Sheet2'!A:A,'Sheet2'!A:A<>""),"Sheet2",), FILTER('Sheet2'!A:B,'Sheet2'!A:A<>"")
  }
)

公式里用IF(筛选后的A列非空,"Sheet1",)生成了和筛选结果行数一致的来源列,和右侧2列原数据横向拼接后刚好为3列,不会出现维度错位。

QUERY 版本

适合需要灵活加筛选条件、自动跳过空行的场景,公式如下:

=QUERY(
  {
    {'Sheet1'!A:B, IF('Sheet1'!A:A<>"","Sheet1",)};
    {'Sheet2'!A:B, IF('Sheet2'!A:A<>"","Sheet2",)}
  },
  "SELECT Col3, Col1, Col2 WHERE Col1 is not null label Col3 '', Col1 '', Col2 ''"
)

这个写法先给两个原表都追加一列固定来源名,纵向合并后通过QUERY调整列顺序(把来源列放到最左侧)、过滤空行,同时去掉QUERY自动生成的默认表头,输出结果完全匹配预期的Sheet3结构。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:54:04