合并(附加)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 个过滤器,一个在另一个下面,尽管每一列都有一个单独的动态数组。
如何将两个动态数组公式(如过滤函数)一个放在另一个下面?
=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 个过滤器,一个在另一个下面,尽管每一列都有一个单独的动态数组。