首页 > 解决方案 > 我有每个项目的值列表,以及每个类别的单独项目列表。如何使用公式返回每个类别的总数?

问题描述

我正在尝试为每个“类别”名称做一个 SUMIF 公式,但我要总结的数据都是该类别中的“项目”。我知道有办法用 VBA 做到这一点,但我怎么能用公式做到这一点?

举个简单的例子,我创建了 3 个简单的表:

每件商品的销售额 (A1:B7)

每个类别的项目 (D1:E7)

我想知道每个类别的销售额 (G1:H3)

由于我还没有发布图片的“声誉”,这里有一个截图链接:

1

https://imgur.com/IpLXuYF] 1 ] 1

显然,一个简单的 SUMIF 仅在我经历在第一个表中创建新类别列的时间时才有效。由于我不会进入的原因,这是不可扩展的。

我还尝试在 SUMIF 中使用 TEXTJOIN 为每个类别创建一个匹配项数组,但只返回 0。

以下代码(输入到 H2 中)返回每个类别的项目列表(请注意,外部大括号来自使用 Control-Shift-Enter,使其成为数组公式):

{=TEXTJOIN(",",TRUE,IF(D2:D7=G2,E2:E7,""))}

但是,如果我将其嵌套在 SUMIF 中,如下所示:

{=SUMIF(A2:A7,TEXTJOIN(",",TRUE,IF(D2:D7=G2,E2:E7,"")),B2:B7)}

它返回 0,因为它将 TEXTJOIN 值视为单个字符串,而不是数组。

我还没有找到将 TEXTJOIN 视为多个标准的方法。或者我的问题的任何其他解决方案,就此而言。

我很想找到一个解决这个问题的公式,因为它也有助于许多其他应用程序。

谢谢!

标签: excel-formula

解决方案


使用以下数组公式:

=SUM(SUMIFS(B:B,A:A,IF($D$2:$D$7=G2,$E$2:$E$7)))

作为一个数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认。

![在此处输入图像描述


推荐阅读