具有特定列日期范围的 SUMIF
SUMIF with date range for specific column
我一直在尝试为此寻找答案,但没有成功 - 我需要对指定日期范围内的列求和,只要我的行名与引用 sheet 相匹配列名。
即
Reference_Sheet
Date John Matt
07/01/19 1 2
07/02/19 1 2
07/03/19 2 1
07/04/19 1 1
07/05/19 3 3
07/06/19 1 2
07/07/19 1 1
07/08/19 5 9
07/09/19 9 2
工作表 1
A B
1 07/01
2 07/07
3 Week1
4 John 10
5 Matt 12
必须在 google sheet 秒内工作,我尝试使用 SUMPRODUCT
这告诉我我不能乘法文本,我尝试了 SUMIFS
这让我知道我不能有不同的数组参数 - 失败的努力类似于下面,
=SUMIFS('Reference_Sheet'!B2:AO1000,'Reference_Sheet'!A1:AO1,"=A4",'Reference_Sheet'!A2:A1000,">=B1",'Reference_Sheet'!A2:A1000,"<=B2")
=SUMPRODUCT(('Reference_Sheet'!$A:$AO00)*('Reference_Sheet'!$A:$A00>=B)*('Reference_Sheet'!$A:$A00<=B)*('Reference_Sheet'!$A:$AO=$A4))
这可能有效:
=sumifs(indirect("Reference_Sheet!"&address(2,match(A4,Reference_Sheet!A:AO,0))&":"&address(100,match(A4,Reference_Sheet!A:AO,0))),Reference_Sheet!A:A0,">="&B,Reference_Sheet!A:A0,"<="&B)
但是您需要指定需要它向下移动多少行。在我的公式中,它向下看直到 100 行。
要更改行数,您需要更改三个地方的数字:
- &地址(
100
- Reference_Sheet!A$2:A$
100
," ...两处
简单解释一下是怎么回事:
- 使用
match
在第 1 行中查找此人的姓名
- 使用
address
和indirect
构建要添加的单元格地址
- 然后
sumIfs()
基于日期。
选择:
=SUMPRODUCT(QUERY(TRANSPOSE(QUERY($A:$D,
"where A >= date '"&TEXT(F, "yyyy-mm-dd")&"'
and A <= date '"&TEXT(F, "yyyy-mm-dd")&"'", 1)),
"where Col1 = '"&$E4&"'", 0))
我一直在尝试为此寻找答案,但没有成功 - 我需要对指定日期范围内的列求和,只要我的行名与引用 sheet 相匹配列名。
即
Reference_Sheet
Date John Matt
07/01/19 1 2
07/02/19 1 2
07/03/19 2 1
07/04/19 1 1
07/05/19 3 3
07/06/19 1 2
07/07/19 1 1
07/08/19 5 9
07/09/19 9 2
工作表 1
A B
1 07/01
2 07/07
3 Week1
4 John 10
5 Matt 12
必须在 google sheet 秒内工作,我尝试使用 SUMPRODUCT
这告诉我我不能乘法文本,我尝试了 SUMIFS
这让我知道我不能有不同的数组参数 - 失败的努力类似于下面,
=SUMIFS('Reference_Sheet'!B2:AO1000,'Reference_Sheet'!A1:AO1,"=A4",'Reference_Sheet'!A2:A1000,">=B1",'Reference_Sheet'!A2:A1000,"<=B2")
=SUMPRODUCT(('Reference_Sheet'!$A:$AO00)*('Reference_Sheet'!$A:$A00>=B)*('Reference_Sheet'!$A:$A00<=B)*('Reference_Sheet'!$A:$AO=$A4))
这可能有效:
=sumifs(indirect("Reference_Sheet!"&address(2,match(A4,Reference_Sheet!A:AO,0))&":"&address(100,match(A4,Reference_Sheet!A:AO,0))),Reference_Sheet!A:A0,">="&B,Reference_Sheet!A:A0,"<="&B)
但是您需要指定需要它向下移动多少行。在我的公式中,它向下看直到 100 行。
要更改行数,您需要更改三个地方的数字:
- &地址(
100
- Reference_Sheet!A$2:A$
100
," ...两处
简单解释一下是怎么回事:
- 使用
match
在第 1 行中查找此人的姓名
- 使用
address
和indirect
构建要添加的单元格地址 - 然后
sumIfs()
基于日期。
选择:
=SUMPRODUCT(QUERY(TRANSPOSE(QUERY($A:$D,
"where A >= date '"&TEXT(F, "yyyy-mm-dd")&"'
and A <= date '"&TEXT(F, "yyyy-mm-dd")&"'", 1)),
"where Col1 = '"&$E4&"'", 0))