使用带间接的ArrayFormula来组合工作表

时间:2014-12-24 09:12:04

标签: excel google-sheets excel-formula

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

  

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

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

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

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

这就是为什么我尝试使用max arrayformula来查找每个工作表中的最后一行来合并空白行。

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

3 个答案:

答案 0 :(得分:1)

由于我误解了你的问题,这里可以替代你提供的公式。

=QUERY({Sheet2!A:J; Sheet3!A:J}, "select * where Col1 <>'' ")

答案 1 :(得分:0)

在google spreadsehet中,如果你想要检索两张纸的最后一行,你可以尝试:

={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)))))}

答案 2 :(得分:0)

我发现你不能在数组公式之外使用间接但你可以在{}

中使用它
 ={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)))))}

这完美地结合了纸张。