Excel COUNTIFS统计日期范围内的月份
我目前正在使用Excel COUNTIFS统计日期范围内的月份,excel,excel-formula,Excel,Excel Formula,我目前正在使用=COUNTIFS()函数来计算满足两个条件的值的数量 =COUNTIFS('2014'!$F:$F, B3, '2014'!$H:$H, A13) 但是,我不想将具体月份作为条件,但日期范围为2014年11月3日。我已经找到了几种不同的方法,可以使用=SUMPRODUCT()和MONTH公式组合从日期列表中计算特定月份,但找不到一种在COUNTIFS函数中也能满足原始条件的方法 我甚至尝试用通配符跳出框框思考 =COUNTIFS('2014'!$F:$F, B3, '2014'
=COUNTIFS()
函数来计算满足两个条件的值的数量
=COUNTIFS('2014'!$F:$F, B3, '2014'!$H:$H, A13)
但是,我不想将具体月份作为条件,但日期范围为2014年11月3日。我已经找到了几种不同的方法,可以使用=SUMPRODUCT()
和MONTH
公式组合从日期列表中计算特定月份,但找不到一种在COUNTIFS
函数中也能满足原始条件的方法
我甚至尝试用通配符跳出框框思考
=COUNTIFS('2014'!$F:$F, B3, '2014'!$H:$H, A13, '2014'!$A:$A, "*/11/2014")
唉,没有用
有人知道有没有一种方法可以将特定月份的计数包含到=COUNTIFS()
函数中
编辑*
我有一个临时修复,这不是一个确定的fire解决方案,但我创建了一个包含
=TEXT(A1, "DD/MM/YYYY")
并将其与我最初的通配符解决方案相结合
=COUNTIFS('2014'!$F:$F, B3, '2014'!$H:$H, A13, '2014'!$I:$I, "*/11/2014")
然而,还是在一些不那么可怕的事情之后 如果您测试的月份是数字格式(1月是1日,2月是2日,等等),您可以使用以下内容:
=SUMPRODUCT(('2014'!$F:$F= B3)*('2014'!$H:$H= A13)*(Month('2014'!$A:$A) = 5)*1)
例如,这将查找May值
这是如何工作的:
SUMPRODUCT
通过测试一系列单元的条件来工作。对于每一行,在我们的例子中,我们测试F
是否保存B13的值,H
是否保存A13的数据,A
的月份是否为5
。这些测试中的每一个都将返回一个TRUE
或FALSE
。TRUE
也是一个1
,False
也是一个0
,因此测试一行将如下所示:
Row 1: TRUE * TRUE * TRUE * 1 = 1
Row 2: FALSE * TRUE * TRUE * 1 = 0
Row 3: TRUE * TRUE * FALSE * 1 = 0
Row 4: TRUE * TRUE * TRUE * 1 = 1
--------------------------------------
TOTAL: 2
每个条件都在它自己的偏执陈述中,并与其他条件相乘,从而得到1或0,当它测试完范围内的每一行时,SUMPRODUCT将加起来。例如,对于1月份,您可能会合并以下内容:
=COUNTIFS(A:A,">"&41639,A:A,"<"&41650)
=COUNTIFS(A:A,“>”&41639,A:A,“因为您的excel日期似乎都设置为dd/mm/yyyy
的格式,所以此公式应适用于:
=COUNTIFS('2014'!$F:$F, B3, '2014'!$H:$H, A13, '2014'!$A:$A, ">="&EOMONTH(DATE(2014,10,1),0)+1,'2014'!$A:$A,"<"&EOMONTH(DATE(2014,11,1),0)+1)
=COUNTIFS('2014'!$F:$F,B3,'2014'!$H:$H,A13,'2014'!$A:“>=”&EOMONTH(日期(2014,10,1),0)+1,'2014'!$A:$A,“=”&EOMONTH(日期(2014,10,1),0)+1,'2014'!$A:“都是2014年的日期吗?是的,都是2014年的日期吗?谢谢。你的数据是d/mm/yyyyyy
?是的,都是正确的,
returns25/02/2015
当它返回#VALUE
时,您能解释一下它是如何工作的吗?非常感谢您的帮助。当然。我刚刚添加了一个sumproduct的快速解释。这是一个有趣的解释。啊,太棒了,我会抖动一下,看看是否遗漏了导致我错误的任何内容,谢谢!如果您在一个文本值,然后您会得到#value!错误,因此,如果您在第1行中有标题,例如,这将是一个问题-尝试使用特定的行范围而不是整个列-我认为这是最好的方法-尤其是对于大范围-但一般来说,我建议始终使用>=1st和<1st of next month,这将始终正确捕获所有d即使包含时间值,当月的ates(其他月份没有日期)
=COUNTIFS('2014'!$F:$F, B3, '2014'!$H:$H, A13, '2014'!$A:$A, ">="&EOMONTH(DATE(2014,10,1),0)+1,'2014'!$A:$A,"<"&EOMONTH(DATE(2014,11,1),0)+1)
^^ change 10 to one month prior ^^ change 11 to the month you want.