Excel 基于查找ID聚合值,同时满足多个条件

Excel 基于查找ID聚合值,同时满足多个条件,excel,excel-formula,pivot-table,excel-2016,Excel,Excel Formula,Pivot Table,Excel 2016,我收到了下面“表1”中的销售数据。每一行包含季度、产品、地区ID和销售数据。每个地区可以有多个ID,我有一个查找表(表2),表示每个ID属于哪个地区 我的目标是进入第三张。基本上,我正在尝试编写一个公式,该公式将引用a列中的产品名称、A1单元格中的季度(用户将输入),并将B列中每个地区的相关销售数字汇总 我已经尝试在SUMPRODUCT中的SUMIFS中嵌套索引和匹配函数,如下所示,但我得到了一个#值!错误: =SUMPRODUCT(SUMIFS(索引(sheet1!$D:$D$,匹配(1,($

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

我的目标是进入第三张。基本上,我正在尝试编写一个公式,该公式将引用a列中的产品名称、A1单元格中的季度(用户将输入),并将B列中每个地区的相关销售数字汇总

我已经尝试在SUMPRODUCT中的SUMIFS中嵌套索引和匹配函数,如下所示,但我得到了一个#值!错误:

=SUMPRODUCT(SUMIFS(索引(sheet1!$D:$D$,匹配(1,($A4=sheet1!$B:$B)*($A$1=sheet1!$A:$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. Q1 A. 1. 39 3. Q1 A. 3. 41 4. Q1 A. 7. 20 5. Q1 A. 14 7. 6. Q1 A. 25 2. 7. Q1 A. 27 2. 8. Q1 A. 44 45 9 Q1 B 1. 28 10 Q1 B 3. 34 11 Q1 B 7. 29 12 Q1 B 14 48 13 Q1 B 25 5. 14 Q1 B 27 15 15 Q1 B 44 32 16 问题2 A. 1. 19 17 问题2 A. 3. 28 等等… 稍加修改:

 =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进行确认

使用动态数组公式过滤器,我们可以将IF()部分替换为FILTER():


这将节省一些迭代。

我希望能在这方面帮助您,但我可以给您一个投票。谢谢Scott!我以前从未实际使用过FILTER函数,所以我想我现在还是使用IF()版本,因为我理解它(从未想过这样使用它)。如果你不介意的话,你能辨别出我的初始公式有什么问题吗?
INDEX(sheet1!$D:$D$,MATCH(1,($A4=sheet1!$B:$B)*($A$1=sheet1!$A:$A),0),0)
只返回一个值,但你需要它来返回数组。第二个问题是SUMIFS不允许数组作为范围,因此即使您可以让它返回数组,SUMIFS也不会接受它。即使您能够让SUMIFS接受该数组,并且该数组的大小和形状正确,那么在SUMIFS产品中,您尝试将SUMIFS的结果数组与另一个设置大小的数组相乘,该数组的大小将与结果SUMIFS数组的大小不同。感谢Scott,如果不是2021年的销售额,而是从D列开始,每年有多个列。例如,如果我只想在指定的年份执行聚合,那么我需要索引函数来找到正确的年份列,对吗?这是正确的,您可以使用索引返回正确的列,而不是
Sheet1!D:D
如果你在让它工作时遇到问题,请用你尝试过的东西问一个新问题。你可以回头看看这个问题。谢谢斯科特。我尝试了几次将索引函数嵌套到您的解决方案中,但似乎无法使其工作。再一次,我真的不知道为什么我的功能不起作用。希望你能看看我的新问题:
=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))