1

我想将一些电子表格导入一个具有某些条件的电子表格,不幸的是,如果其中一个电子表格不返回任何数据,ARRAYFORMULA则要求ARRAY_LITERAL而不是空结果。

我需要在IFERROR函数中使用什么才能不ARRAYFORMULA附加任何内容并乐于继续?

这就是我现在所拥有的:

={
   QUERY(IMPORTRANGE("<spreadsheet>", "Range!B2:J"), "SELECT Col1, Col2, Col3, Col5, Col9 WHERE Col1 <> '' AND Col5 >= 18 ");
   IFERROR(QUERY(IMPORTRANGE("<spreadsheet2>", "Range!B2:K"), "SELECT Col1, Col3, Col2, Col4, Col6, Col10 WHERE Col10 <> '' AND Col6 >= 18"), "")
}

我包装了第二个,IFERROR但空字符串不是有效的ARRAY_LITERAL,那么我能做些什么来代替它呢?

完整错误:

在 ARRAY_LITERAL 中,数组文字缺少一行或多行的值。

我意识到我可以给它一个具有相同列数的空行,I1:N2但是您永远不知道是否可能需要使用这些列,然后查询需要更改。

4

1 回答 1

2

我建议使用一个空数组

=iferror(query(..., ...), {"", "", "", ..., ""} )

笔记:

  • 您选择 6 列,因此重复“”六次。

编辑

通过@Moseleyi。

有道理,但当然,它仍然会产生空行,如果我将我的 ARRAYFORMULA 包装在 SORT 中,空行将首先显示,但是当我使用空单元格时它们不会,可能是因为它们实际上是 NULL。但是我用空字符串替换了IFERROR(1/0)它并且它起作用了。

于 2018-02-09T15:30:32.133 回答