合并(附加)excel 中的两个动态数组公式

Consolidate (Append) two dynamic array formulas in excel

如何将两个动态数组公式(如过滤函数)一个放在另一个下面?

=FILTER(A5:B14,A5:A14>5)
=FILTER(Sheet2!A5:B14,Sheet2!A5:A14>8)

无论选取的行数如何,我都希望结果一个比一个低。可能吗?

不幸的是,这也不是很容易实现。我想可以尝试使用 LAMBDA() 但也可以使用 FILTERXML()TEXTJOIN() 来实现,当按照您的示例应用这些 FILTER() 时:

G5中的公式:

=LET(X,FILTERXML("<t><s>"&TEXTJOIN("</s><s>",,FILTER(A5:B14,B5:B14>5,""),FILTER(D5:E14,E5:E14>5,""))&"</s></t>","//s"),INDEX(X,SEQUENCE(COUNTA(X)/2,2)))

我使用了 LET(),但我想您也可以添加两个 COUNTIFS()

使用 this answer 中提出的解决方案,您可以使用此公式加入多重范围或动态数组公式,将 YOUR_RANGES 替换为您需要的范围或公式希望加入:

=FILTERXML("<A><B>" & TEXTJOIN("</B><B>",TRUE,YOUR_RANGES) & "</B></A>", "//B")

在您的情况下,您可以拆分过滤器以在第一个结果列中仅获得列 A,在第二个结果列中仅获得列 B:

结果SHEET A1 单元格:

=FILTERXML("<A><B>" & TEXTJOIN("</B><B>",TRUE, FILTER(A5:A14,$A5:$A14>5); FILTER(Sheet2!A5:A14,Sheet2!$A5:$A14>8) ) & "</B></A>", "//B")

结果SHEET B1 单元格:

=FILTERXML("<A><B>" & TEXTJOIN("</B><B>",TRUE, FILTER(B5:B14,$A5:$A14>5); FILTER(Sheet2!B5:B14,Sheet2!$A5:$A14>8) ) & "</B></A>", "//B")

这将连接 2 个过滤器,一个在另一个下面,尽管每一列都有一个单独的动态数组。