3

如果关联值在用作过滤条件的值范围内,我将尝试返回一系列单元格的总和。例如,使用以下数据表:

  Keys      Values
   A        500
   B        300
   C        600
   D         20
   A        150
   C        600

以及以下要汇总的键列表:

Sum Keys:
   A
   D

我正在寻找一种公式化的方式来返回 500+20+150 = 670。

我知道你可以使用多个 SUMIF,但是键的数量会根据用户想要过滤的内容而改变,并且编写足够的 SUMIF 来覆盖最大的实际情况(比如 10ish)似乎过分了,我觉得必须有一个更简单的方法。

在我的脑海中,公式看起来像这样:

=SUMIFS(Values, Keys, OR(Sum Keys), ...(optional other conditions))

我意识到这是一个简单的 VBA 问题,但我试图避免这种情况,因为电子表格将由具有不同(或没有)VBA 知识的人审核。此外,向数据添加指示符列以显示键是否在Sum Keys范围内是不现实的,因为将有多个选项卡汇总数据,每个选项卡都有自己的过滤器Key

任何帮助表示赞赏,尽管我意识到如果没有 VBA,这可能是不可能的。如果需要更多信息,请告诉我。

谢谢!

编辑:感谢巴里胡迪尼的回答!有关基于多个可接受标准范围的求和的一般解决方案,请参阅他的帖子的评论。

4

2 回答 2

7

您可以使用这样的公式

=SUMPRODUCT(SUMIFS(Values,Key,Sum_Keys))

如果 Sum_Keys 有 4 个值,则 SUMIFS 公式返回一个 4 值“数组”(Sum_Keys 中的每个键对应一个),因此您需要另一个函数来对该数组求和。我使用 SUMPRODUCT 是因为它避免了“数组条目”的需要。

您可以以通常的方式添加更多条件,例如

=SUMPRODUCT(SUMIFS(Values,Key,Sum_Keys,Dates,Specifc_date))

于 2013-11-08T15:01:09.123 回答
1

如果要根据过滤条件对项目求和,请考虑使用

=小计()

工作表功能。它是处理此任务的工具。

于 2013-11-08T13:59:48.723 回答