在满足多个条件的同时根据查找 ID 聚合值

时间:2021-03-22 22:15:00

标签: excel excel-formula pivot-table excel-2016

我根据下面的“表 1”获得了销售数据。每行包含季度、产品、地区 ID 和销售数字。每个区域可以有多个 ID,我有一个查找表(表 2),它表示每个 ID 属于哪个区域。

我的目标是进入第 3 表。本质上,我试图编写一个公式,该公式将引用 A 列中的产品名称、单元格 A1 中的季度(用户将输入),并将相关销售数字汇总到B列中的每个区域。

我尝试在 SUMPRODUCT 内的 SUMIFS 中嵌套一个 INDEX & MATCH 函数,如下所示,但我得到了一个 #VALUE!错误:

=SUMPRODUCT(SUMIFS(INDEX(sheet1!$D:$D$,MATCH(1,($A4=sheet1!$B:$B)*($A$1=Sheet1!$A:$A),0),0),sheet1$C:$C,sheet2!$A$2:$A$8)*(sheet2!$B$2:$B$8=$B4))

有谁知道我的公式有什么问题,或者是否有更好的方法来解决这个问题?

表 1(原始数据)

<头>
A B C D
1 季度 产​​品 身份证 2021 年销售额
2 第一季度 A 1 39
3 第一季度 A 3 41
4 第一季度 A 7 20
5 第一季度 A 14 7
6 第一季度 A 25 2
7 第一季度 A 27 2
8 第一季度 A 44 45
9 第一季度 B 1 28
10 第一季度 B 3 34
11 第一季度 B 7 29
12 第一季度 B 14 48
13 第一季度 B 25 5
14 第一季度 B 27 15
15 第一季度 B 44 32
16 第二季度 A 1 19
17 第二季度 A 3 28
等等……

表 2(区域 ID 查找表)

<头>
A B
1 身份证 地区
2 1
3 3
4 7 中部
5 14 中部
6 25 中部
7 27 西
8 44 西

表 3(报告)

<头>
A B C
1 第一季度
2
3 产​​品 地区 销售
4 A 29
5 A 中部 42
6 A 西 31

1 个答案:

答案 0 :(得分:1)

一点点返工:

 =SUMPRODUCT(SUMIFS(Sheet1!D:D,Sheet1!C:C,IF(Sheet2!$B$2:$B$8=$B4,Sheet2!$A$2:$A$8),Sheet1!A:A,$A$1,Sheet1!B:B,A4))

根据版本一在退出编辑模式时可能需要使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。

enter image description here

使用动态数组公式 FILTER 我们可以用 FILTER() 替换 IF() 部分:

=SUMPRODUCT(SUMIFS(Sheet1!D:D,Sheet1!C:C,FILTER(Sheet2!$A$2:$A$8,Sheet2!$B$2:$B$8=$B4),Sheet1!A:A,$A$1,Sheet1!B:B,A4))

它会节省一些迭代。

相关问题