只是好奇是否可以从 excel 中的 sum 或 sumif 公式获得溢出范围输出。给定一个二维数组,我想对一些行求和,但保留列。我担心的是,一旦将 sum 或 sumif 添加到溢出公式(序列、过滤器等),就会失去溢出效应。我这样做的兴趣是在输入表更改大小时保持表自动更新。
一张图片可能最好地描述了这一点:我的表有一些重复标签的行;我想将它们折叠到具有唯一行标签的较短表格中。例如,B 行和 D 行重复,这些行应该在最终输出中求和。 (此处示例中的输出是手动完成的,我在输出的每一行/列中执行 sumif。)
非常感谢!
最佳答案
与 MAKEARRAY
和 LAMBDA
功能是可能的。
公式如下:
=MAKEARRAY(
ROWS(F3#),
COLUMNS(G2#),
LAMBDA(
r,
c,
SUM(
B3:D10 *
--(A3:A10=INDEX(F3#,r)) *
--(B2:D2=INDEX(G2#,1,c))
)
)
)
MAKEARRAY
公式通过前两个参数 ROWS(F3#)
跨越具有所需行数和列数的数组和 COLUMNS(G2#)
(注意 F3# = F3:F8
和 G2# = G2:I2
)。MAKEARRAY
的第三个参数采取LAMBDA
函数并提供了行数r
和列 c
到它的前两个参数。LAMBDA
的第三个参数带这里SUM
模拟 SUMIFS
的函数计算。它有三个因素:B3:D10
--(A3:A10=INDEX(F3#,r))
--(B2:D2=INDEX(G2#,1,c))
2) 和 3) 中的条件在适用与否时得出 1 或 0。所以SUM
在匹配的地方计算一个值,在不匹配的地方计算 0。此外,2)和3)中的公式使用行号r
和列号c
与 INDEX
获取条件值。 关于excel - 可以在动态(溢出)范围上执行 sumif(s)并返回(2d)数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69655057/