ArrayFormula + 多个 IMPORTRANGE + QUERY
ArrayFormula + multiple IMPORTRANGE + QUERY
我想将一些电子表格导入到一个符合某些条件的电子表格中,不幸的是,如果其中一个电子表格没有 return 任何数据,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
,那么我可以做什么来代替它?
完整错误:
In ARRAY_LITERAL, an Array Literal was missing values for one or more rows.
我意识到我可以给它一个空行,其中的列数与 I1:N2
相同,但您永远不知道是否可能需要使用这些列,然后查询就需要更改。
我建议使用空 array:
=iferror(query(..., ...), {"", "", "", ..., ""} )
注:
- 你 select 6 列,因此重复 "" 六次。
编辑
来自@Moseleyi。
Makes sense, but of course, it still produces empty rows, and if I
wrap my ARRAYFORMULA in SORT, the empty rows will be shown first, but
when I use empty cells they won't, probably because they're actually
NULL. But I replaced empty strings with IFERROR(1/0)
and it worked.
我想将一些电子表格导入到一个符合某些条件的电子表格中,不幸的是,如果其中一个电子表格没有 return 任何数据,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
,那么我可以做什么来代替它?
完整错误:
In ARRAY_LITERAL, an Array Literal was missing values for one or more rows.
我意识到我可以给它一个空行,其中的列数与 I1:N2
相同,但您永远不知道是否可能需要使用这些列,然后查询就需要更改。
我建议使用空 array:
=iferror(query(..., ...), {"", "", "", ..., ""} )
注:
- 你 select 6 列,因此重复 "" 六次。
编辑
来自@Moseleyi。
Makes sense, but of course, it still produces empty rows, and if I wrap my ARRAYFORMULA in SORT, the empty rows will be shown first, but when I use empty cells they won't, probably because they're actually NULL. But I replaced empty strings with
IFERROR(1/0)
and it worked.