Excel:如果相关键在使用公式的值范围内,则对一系列单元格求和

时间:2013-11-08 13:44:41

标签: excel excel-formula excel-2007 worksheet-function

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

  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,这可能是不可能的。如果需要更多信息,请告诉我。

谢谢!

编辑:谢谢巴里·胡迪尼的回答!根据可接受标准的多个范围,查看他的帖子中关于求和的一般解决方案的评论。

2 个答案:

答案 0 :(得分:6)

您可以使用这样的公式

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

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

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

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

答案 1 :(得分:1)

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

<强> = SUBTOTAL()

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