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

Excel 如何根据列和行的条件范围求和值?,excel,excel-formula,excel-2013,sumifs,Excel,Excel Formula,Excel 2013,Sumifs,我正在尝试编写一个求和公式,它将返回两个日期之间唯一引用的求和值 在我的范围表(我正试图求和的表)上,日期在第9行(从K列到IP列),唯一的引用在B列(B10到B139(行数不同)) 在“我的结果”表(我试图在其中编写公式)上,有一个表a上显示的所有唯一引用的列表 单元格I7包含开始日期,而J7包含我希望在两者之间求和的日期的结束日期 我尝试过的所有公式都返回一个#值错误: =SUMIFS(Output!K10:IP139,Output!B:B,G12,Output!9:9,">="&am

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

在我的范围表(我正试图求和的表)上,日期在第9行(从K列到IP列),唯一的引用在B列(B10到B139(行数不同))

在“我的结果”表(我试图在其中编写公式)上,有一个表a上显示的所有唯一引用的列表

单元格I7包含开始日期,而J7包含我希望在两者之间求和的日期的结束日期

我尝试过的所有公式都返回一个#值错误:

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

输出为数据工作表,输出A:A和B:B为参考列,I7和J7分别为开始和结束日期,输出9:9为日期查找行,G11为输出B:B中要查找的唯一值。这是一个数组公式,需要使用Ctrl+Shift+Enter确认


{=SUM(IF(Dates>=I7,IF(Dates))这是一个数组公式,需要用Ctrl+Shift+Enter确认


{=SUM(如果日期>=I7,如果(Dates我在办公室找到一位excel专家,他编写了一个使用MATCH和OFFSET的公式,数据表左侧有两列唯一值,可用于标识要求和的行号,以及类似的日期范围设置。我现在在家,手头没有公式,但我有举一个我想使用的工作表的例子(可能会帮助像我这样的人):

我在“结果”选项卡上有每个月的开始日期和结束日期,在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)),"")
=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)),"")

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

我在办公室找到一位excel专家,他编写了一个使用匹配和偏移量的公式,有两个列数据表左侧的N个唯一值,可用于标识要求和的行号,类似于设置日期范围。我现在在家,手头没有公式,但我有一个我想使用的工作表示例(可能会帮助像我这样的人):

我在“结果”选项卡上有每个月的开始日期和结束日期,在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)),"")
=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)),"")

输出是数据工作表,输出A:A和B:B是参考列,I7和J7分别是开始日期和结束日期,输出9:9是日期查找行,G11是输出B:B中要查找的唯一值。您能发布表格的图像吗?因为您不能发布照片,所以最好使用模拟数据,并将其在OP中使用,你能发布你桌子的图像吗?因为你不能发布照片,模拟数据,这是首选的方式,并将其放在OP中使用我已经在我的家用笔记本电脑上尝试过了,我得到了“资源耗尽”消息,我将在明天的工作中试一试,在那里我可以得到一台内存超过50kb的PCheh@TomHolland你是从把公式放在一个单元格中得到的吗?我知道数组公式是RAM密集型的,但是一个单元格应该不会有太大的问题,即使数据集那么大……也许是
SUMIFS()
在这种情况下,每行上的路由更好,您可以
SUM()
该列。如果它仍然存在,您可以打开手动计算,并在需要时使用按钮或
F9
进行计算。是的,仅从一个单元格进行计算。我总是在构建时关闭计算,只需在我的工作PC上尝试,并得到相同的消息,但我找到了另一个答案:
=IFERROR(SUM(OFFSET(输出!$A$1,匹配(SUMIF(输出!$B:$B,$G11,输出!$A:$A),输出!$A:$A,0)-1,匹配(I$7,输出!$9:$9,0)-1):偏移量(输出!$A$1,匹配(SUMIF(输出!$B:$B,$G11,输出!$A:$A),输出!$A:$0)-1,匹配(J$7,输出!$9:$9,0)-1),“”)
@TomHolland哇,你的机器工作速度很慢,但我有16GB的RAM和一个i7,所以我有时会忘记机器的限制…很高兴你解决了这个问题…我在我的家用笔记本电脑上尝试了这个,我得到了“资源耗尽”的结果消息,我将在明天的工作中试一试,在那里我可以得到一台内存超过50kb的PCheh@TomHolland你是从把公式放在一个单元格中得到的吗?我知道数组公式是RAM密集型的,但是一个单元格应该不会有太大的问题,即使数据集那么大……也许是
SUMIFS()
在这种情况下,每行上的路由更好,您可以
SUM()
该列。如果它仍然存在,您可以打开手动计算,并在需要时使用按钮或
F9
进行计算。是的,仅从一个单元格进行计算。我总是在构建时关闭计算,只需在我的工作PC上尝试,并得到相同的消息,但我找到了另一个答案:
=IFERROR(SUM(OFFSET(输出!$A$1,匹配(SUMIF(输出!$B:$B,$G11,输出!$A:$A),输出!$A:$A,0)-1,匹配(I$7,输出!$9:$9,0)-1):偏移量(输出!$A$1,匹配(SUMIF(输出!$B:$B,$G11,输出!$A:$A),输出!$A:$0)-1,匹配(J$7,输出!$9:$9,0)-1),“”)
@TomHolland哇,你的机器工作速度很慢,但我身后有16GB的RAM和一个i7,所以我有时会忘记机器的限制…很高兴你解决了…哦,聪明!很好地使用了偏移量,我从来没有想到过。哦,聪明!很好地使用了偏移量,我从来没有想到过