在一个单元格中具有(多个数组 - 多个表)的 FILTER 函数 - Excel

FILTER Function with (More than one ARRAYS - Multiple Tables) in One Cell - Excel

我有两个不同的表(表 1 和表 2 在两个不同的 excel sheet 中。(可能有两个以上的表,比如 3 或 4)

第 3 个 sheet 用于 reporting/filtering。现在在 third/reporting sheet 中,我想在一个单元格中使用 Filter 函数,并希望根据给定的两个表的包含条件溢出两个 sheet 中的两个表

=FILTER(Table1 + Table2
OR
=SORT(FILTER(Table1,inclue,"")+FILTER(Table2,Inclue,"")) << it adds the two results if numbers

希望我解释清楚 我正在尝试一次性过滤显示结果的两个(所有)表,而我想要完成的任务是使用公式栏,而不是 VBA。请帮我做一下

您可以使用LET一次计算每个table。

例如:

=LET(x, Table1,
y, Table2,
x1, SUM(FILTER(x, range_table1=value)),
y1, SUM(FILTER(y, range_table2=value)),
x1+y1)

按照@Scott Craner 的建议进行编辑:如果要将数据附加到彼此之上,可以使用SEQUENCE。编辑 @chris neilsen here 建议的一个很好的改进显示了一种比我最初通过在一系列行和列上建立索引更简洁的方法。

=LET(x, table1, y, table2,
rows1, ROWS(x), rows2, ROWS(y),
myrows, SEQUENCE(rows1+rows2),
mycols, SEQUENCE(1,COLUMNS(x)),
IF(myrows<=rows1, x, INDEX(y, myrows-rows1, mycols)))

两个表的“并集”可以实现为

=LET(x, table1, y, table2,
rows1, ROWS(x), rows2, ROWS(y),
myrows, SEQUENCE(rows1+rows2),
mycols, SEQUENCE(1,COLUMNS(x)),
IF(myrows<=rows1, x, INDEX(y, myrows-rows1, mycols)))

3张表可以扩展为

=LET(x, Table1, y, Table2, z, Table3,
rows1, ROWS(x), rows2, ROWS(y), rows3, ROWS(z),
myrows, SEQUENCE(rows1+rows2+rows3),
mycols, SEQUENCE(1,COLUMNS(x)),
IF(myrows<=rows1, x, 
IF(myrows<=(rows1+rows2),INDEX(y, myrows-rows1, mycols), 
INDEX(z, myrows-rows1-rows2, mycols))))

三表以上,同理