如何根据列和行的条件范围对值进行求和?

时间:2017-09-07 13:54:27

标签: excel excel-formula excel-2013 sumifs

我正在尝试编写一个总和公式,它将返回两个日期之间唯一引用的总和值。

在我的范围表(我想要总结的那个)上,日期在第9行(从列K到IP),唯一引用在列B中(B10到B139(行数变化))。

在我的结果表(我正在尝试编写公式的地方)上,列出了A表上显示的所有唯一引用。

单元格I7包含开始日期,J7包含我想要总结的日期的结束日期。

我尝试过的所有公式都会返回#Value错误:

=SUMIFS(Output!K10:IP139,Output!B:B,G12,Output!9:9,">="&I7,Output!9:9,"<="&J7)

^我意识到这不起作用,因为所有条件范围都需要在列中。 *据我所知,对于SUMIF公式

=SUM(IF(Output!K9:FG9>='Stock + Demand'!I7,IF(Output!K9:FG9<=J7,IF(Output!B:B=G11,Output!K11:IP139))))

^还返回#Value错误。

我也尝试了一个Sumproduct公式,但这只是重载了我的excel(“Excel在试图计算”消息时耗尽了资源),所以不知道这是否会返回所需的结果..无论我需要哪种方式一个公式,可以在相同类型但具有2000多行数据的工作表上工作。

我认为显示工作表的一些图片会有所帮助,但我的工作PC不允许我保存图像(非常令人沮丧)。我回家的时候会尝试上传一些。

编辑 - 已解决

以下是有效的公式:

=IFERROR(SUM(OFFSET(Output!$A$1,MATCH(SUMIF(Output!$B:$B,$G11,Output!$A:$A),Output!$A:$A,0)-1,MATCH(I$7,Output!$9:$9,0)-1):OFFSET(Output!$A$1,MATCH(SUMIF(Output!$B:$B,$G11,Output!$A:$A),Output!$A:$A,0)-1,MATCH(J$7,Output!$9:$9,0)-1)),"")

输出是数据工作表,OutputA:A和B:B分别是引用列,I7和J7分别是开始日期和结束日期,输出9:9是日期查找行,G11是要在输出B中查找的唯一值:乙

2 个答案:

答案 0 :(得分:1)

这是一个数组公式,需要使用 Ctrl + Shift + Enter

{=SUM(IF(Dates>=I7,IF(Dates<=J7,IF(References=G12,Data))))}

指定范围为:
- 日期:K9:IP9
- 数据:K10:IP139
- 参考文献:B10:B139

本质上,if语句正在构建一个数据数组,作为所需的值或FALSE,然后将其传递给SUM()以进行添加。虽然如果这是一个每行公式,你也可以分别SUMIFS(Data,Dates,">="&I7,Dates,"<="&J7)每行,以避免使用数组公式。

Sample

答案 1 :(得分:1)

我在办公室找到了一位excel大师,他写了一个使用MATCH和OFFSET工作的公式,数据表左边有几列独特的值,可用于识别行号以求和来自和类似的设置日期的范围..我现在在家里,没有配方,但我有一个我想要合作的表格的例子(可能会帮助像我这样的人):< / p>

Table

我在结果标签上有每个月的开始和结束日期,以及项目编号列表和B列中的一些连接(仅限“框架顺序”)。

明天我会发布公式。刚尝试重新创造它并且悲惨地失败了:(

修改

以下是有效的公式:

=IFERROR(SUM(OFFSET(Output!$A$1,MATCH(SUMIF(Output!$B:$B,$G11,Output!$A:$A),Output!$A:$A,0)-1,MATCH(I$7,Output!$9:$9,0)-1):OFFSET(Output!$A$1,MATCH(SUMIF(Output!$B:$B,$G11,Output!$A:$A),Output!$A:$A,0)-1,MATCH(J$7,Output!$9:$9,0)-1)),"")

输出是数据工作表,OutputA:A和B:B分别是引用列,I7和J7分别是开始日期和结束日期,输出9:9是日期查找行,G11是要在输出B中查找的唯一值:乙