-1

我正在尝试将其他工作表中的数据合并到一个工作表中。我想我可以使用一个公式来找到每张表中的最后一行,并与一个 Indirect ArrayFormula 结合,但这不起作用。

间接("ARRAYFORMULA({'Sheet1'!A2:J"&ArrayFormula(MAX(IF(NOT(ISBLANK ('Sheet1'!A1:A10000))), ROW('Sheet1'!A1:A10000),0)))& ";'Sheet2'!A2:J"&ArrayFormula(MAX(IF(NOT(ISBLANK ('Sheet2'!A1:A10000)), ROW('Sheet2'!A1:A10000),0)))})")

间接和 ArrayFormula 组合似乎不是答案,因为它会出错 - 看来您不能同时运行间接和数组公式。

编辑:使用上面的公式而不使用间接并找到最后一个空白行将在我保持较长的行范围时合并工作表,但它会保留所有空白行并将每张工作表的数据分散太多。

ARRAYFORMULA({'Sheet1'!A2:J100";'Sheet2'!A2:J100)})

这就是为什么我试图使用最大数组公式来查找每张表中的最后一行以合并空白行。

ArrayFormula(MAX(IF(NOT(ISBLANK ('Sheet1'!A1:A10000)), ROW('Sheet1'!A1:A10000),0)))
4

3 回答 3

1

由于我误解了您的问题,因此这是您提供的公式的替代方法..

=QUERY({Sheet2!A:J; Sheet3!A:J}, "select * where Col1 <>'' ")
于 2014-12-25T21:09:57.957 回答
0

我发现你不能在 arrayformula 之外使用间接,但你可以在 {} 中使用它

 ={INDIRECT("'Sheet1'!A2:J"&MAX(FILTER(ROW(Sheet1!A:J),NOT(ISBLANK(Sheet1!A:A))))) ; INDIRECT("'Sheet2'!A2:J"&MAX(FILTER(ROW(Sheet2!A:J),NOT(ISBLANK(Sheet2!A:A)))))}

这完美地结合了床单。

于 2014-12-25T18:01:05.793 回答
0

在谷歌电子表格中,如果您想检索两张纸的最后一行,您可以尝试:

={INDEX(Sheet1!A:J, MAX(FILTER(ROW(Sheet1!A:J),NOT(ISBLANK(Sheet1!A:A))))); INDEX(Sheet2!A:J, MAX(FILTER(ROW(Sheet2!A:J),NOT(ISBLANK(Sheet2!A:A)))))}

这会将第二张纸的最后一行放在第一张纸的最后一行下方。如果您希望这些行出现在同一行中,请尝试:

={INDEX(Sheet1!A:J, MAX(FILTER(ROW(Sheet1!A:J),NOT(ISBLANK(Sheet1!A:A))))), INDEX(Sheet2!A:J, MAX(FILTER(ROW(Sheet2!A:J),NOT(ISBLANK(Sheet2!A:A)))))}
于 2014-12-24T09:44:28.137 回答