对于数组 x 中等于 z 的所有位置,将数组 y 中的相应位置相加

For all location in array x equal to z, sum corresponding location in array y

我正在寻找一个函数,如果它们在行(C,I,O ... n-3)中的对应值等于例如,则对列(F,L,R ... n)中的所有值求和。 "A".

如果只有几列,我会对每一列使用 sumif,但我必须对 50 个不同的值(A、B、C ...)重复 600 次

我试过 SUM(IF(C9:O57="A";F9:R57)) ,但在我的 'real document' 中它 returns "0",当我复制它时。

Example

如果你想得到一个数字 = 真正对 "A" 旁边的所有表格求和,那么你可以使用类似这样的东西

=SUM(SUMIFS(OFFSET(F:F;0;6*(ROW(1:50)-1));OFFSET(C:C;0;6*(ROW(1:50)-1));"A"))

(很可能您有不同的区域设置,因此您可能需要将 ; 更改为 ,) 并将其作为数组公式输入 (ctrl+shift+enter)

基本上就是这两个

OFFSET(C:C;0;6*(ROW(1:50)-1))
OFFSET(F:F;0;6*(ROW(1:50)-1))

意味着您需要在 C 列中查找 "A" 并对 F 列求和,然后对向右移动 6 列的相同组合重复相同的操作,然后再次重复直到重复 50 次。

所以你需要确保你的结构总是相同的(=总是移动 6 列)然后只调整 ROW(1:50) 使你的表格总数在一行而不是 50。并且然后,如果您有 50 个要查找的东西(A、B、C、...),您只需要将这些值列成一列并更改 "A" 以引用这些值并在其旁边复制公式。