在excel上使用多个条件进行平均

在excel上使用多个条件进行平均,excel,excel-formula,formula,average,formulas,Excel,Excel Formula,Formula,Average,Formulas,我通常会问Python或VBA问题,但在过去的4.5个小时里,这一直困扰着我,我需要它来完成一个宏,我只是得到了div/0错误 在excel中,我有五列: 1.项目进入队列的日期(A) 2.项目进入队列的时间(B) 3.项目离开队列的日期(C) 4.项目离开队列的时间(D) 5.项目在队列中的时间(E) 我需要昨天16:00到今天16:00之间进入和离开队列的项目的平均时间。此外,它还可以忽略小于1的数字(因为如果某个项目已在那里超过24小时,则默认值为负值) 我试过了,但没有结果:( =AVE

我通常会问Python或VBA问题,但在过去的4.5个小时里,这一直困扰着我,我需要它来完成一个宏,我只是得到了div/0错误

在excel中,我有五列: 1.项目进入队列的日期(A)
2.项目进入队列的时间(B)
3.项目离开队列的日期(C)
4.项目离开队列的时间(D)
5.项目在队列中的时间(E)

我需要昨天16:00到今天16:00之间进入和离开队列的项目的平均时间。此外,它还可以忽略小于1的数字(因为如果某个项目已在那里超过24小时,则默认值为负值)

我试过了,但没有结果:(


=AVERAGEIFS(E1:E4,A1:A4,“=today()-1”,B1:B4,“>16:00”,C1:C4,“=today()”,D1:D4,”您的公式是这样的:

=AVERAGEIFS(E1:E4,A1:A4,"=today()-1",B1:B4,">16:00",C1:C4,"=today()",D1:D4,"<16:00")
&
连接大于号,2/3将给出等于16:00的十进制值。最后您将得到一个等于“>.6666”的字符串

(如果您愿意,也可以使用
B1:B4,“>.666”

对于第1项和第3项,您根本不需要使用引号。因此,除了使用
A1:A4,“=today()-1”
之外,您可以使用以下内容:

A1:A4,today()-1
C1:C4,today()
综上所述,以下公式应该有效:

=AVERAGEIFS(E1:E4,A1:A4,today()-1,B1:B4,">"&2/3,C1:C4,today(),D1:D4,"<"&2/3)
=AVERAGEIFS(E1:E4,A1:A4,today()-1,B1:B4,“>”&2/3,C1:C4,today(),D1:D4,“如果您正在寻找“昨天16:00到今天16:00之间进入和离开队列的项目”,那么这些项目中的一些是否可能今天进入队列(或昨天离开队列)?如果是这样的话,您当然也需要检查今天输入的项目?要做到这一点,使用
AVERAGEIFS
函数是很困难的-使用这样的“数组公式”可能更容易:


=AVERAGE(如果(A1:A4+B1:B4>=TODAY()-1/3,如果(C1:C4+D1:d4)对不起,我的坏,已经编辑过了如果您添加了A1:E4的内容,那么我们可以测试…@jmac-实际上“>16:00”,因为标准将完全按照预期工作,它将与“>”和2一样工作/3@barryhoudini我也很高兴在这里见到你——你会比我更清楚的(当然)。谢谢你的提醒。效果很好!谢谢!我有一个问题,在F列我有4个类别(内部、外部、转移和风险),我尝试添加前3个作为标准,例如:F1:F4,“内部”,我只得到DIV/0,你知道为什么吗?很明显,它没有找到带有“内部”的值因此分母为零。您确定有填充所有条件的条目吗?如果没有,则
=AVERAGEIFS()
将返回
#DIV/0
错误。您可以通过将整个
=AVERAGEIFS()
语句包装到
=IFERROR()
语句中来解决此问题(这只会改变它显示的内容,而不是根本的问题)。是否有可能忽略“内部”是否在该范围内?因为它不总是在该范围内,我对所有的问题感到抱歉,这超出了我的范围,通常我使用python多于excel:-/
=AVERAGEIFS(E1:E4,A1:A4,today()-1,B1:B4,">"&2/3,C1:C4,today(),D1:D4,"<"&2/3)