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



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

Ininherit("ARRAYFORMULA({'Sheet1'!A2:J"&ArrayFormula(MAX(IF(NOT(ISBLANK ('Sheet1'!A1:A10000))、行("工作表 1"!A1:A10000),0)))&";'表2'!A2:J"&ArrayFormula(MAX(IF(NOT(ISBLANK ('Sheet2'!A1:A10000))、行("工作表2"!A1:A10000),0)))})")

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

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

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

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

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

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

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

在谷歌传播中,如果你想检索两张纸的最后一行,你可以尝试:

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

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

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

这完美地结合了床单。

最新更新