根据其他列中的灵活数组对每行的值求和

问题描述 投票:0回答:1
0 A B C D E F G H
1 员工 团队 收入_A 收入_B 过滤器 T_01
2 E_01 T_01 500 20
3 E_01 T_01 600 30 员工 总计 收入_A 收入_B
4 E_01 T_01 100 70 E_01 1320 1200 120
5 E_02 T_01 800 10 E_02 1090 1000 90
6 E_02 T_01 200 80 E_04 1135 1100 35
7 E_03 T_02 400 45
8 E_03 T_02 300 30
9 E_03 T_02 500 25
10 E_03 T_02 100 50
11 E_04 T_01 300 20
12 E_04 T_01 800 15

Range F4:F6
中,我使用以下公式根据
Columns A:B
中输入的条件过滤
Cell G1

F4 = LET(
a,FILTER($A:$A,$B:$B=$G$1),
UNIQUE(CHOOSECOLS(a,1)))

随后在

Range H4:I6
中,我使用以下公式根据
Range F4:F6
中过滤后的数组添加总和:

H4 = SUMIFS($C:$C,$A:$A,$F4#)
I4 = SUMIFS($D:$D,$A:$A,$F4#)

这一切都很好。


现在,在

Range G4:G6
中,我想对
Range H4:I6
中每一行的值求和。
到目前为止我已经实现了这个公式:

=LET(
a;SUMIFS($C:$C,$A:$A,$F4#);
b;SUMIFS($D:$D,$A:$A,$F4#);
a+b)

这个公式本身是有效的。但是,在我的原始文件中,我有更多的列。
因此,我需要在这个公式中链接大量的

SUMIFS

您是否知道一种更简单的方法来根据

Range F4:F6
中的灵活数组对每行的值进行求和?


注意:我不想有一个全合一的配方!
我想要使用

Range G4:G6
的单独公式以及对
Range F4:F6
中灵活数组的引用来解决方案。

excel excel-formula
1个回答
0
投票

我觉得我因为这个掉进了一个兔子洞。

F3中的公式为:

=LET(FilteredData,FILTER($A:$D,$B:$B=$G$1),
     Revenue, HSTACK(INDEX(FilteredData,,3),INDEX(FilteredData,,4)),
     AddTotals, HSTACK(BYROW(Revenue,LAMBDA(Rev,SUM(Rev))),Revenue),
     DataTable, VSTACK($A$1:$D$1,HSTACK(TAKE(FilteredData,,1),AddTotals)),
     Result, GROUPBY(TAKE(DataTable,,1),DROP(DataTable,,1),SUM,3,0),
     SUBSTITUTE(Result,"Team","Total"))  

enter image description here

分解:

  • FilteredData - 将表过滤为仅 T_01 值。
    enter image description here
  • 收入 - 从过滤后的数据表中仅提取第三列和第四列。
    enter image description here
  • AddTotals - 计算每个收入行的总计,然后将这些总计粘贴在 Revenue 列之前。
    enter image description here
  • DataTable - 将 Employee 列粘贴在 AddTotals 表前面,并将原始表标题放在顶部。
    enter image description here
  • 结果 - 将按员工分组的收入值相加。
    enter image description here
  • 最后将 Team 标题替换为 Total
    enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.