同一列和不同列中多个条件的平均值

同一列和不同列中多个条件的平均值

我必须找出状态 = 新建或开放、严重性 = 4 和区域 = 应用程序的平均天数。

演示表

Area     Severity    Status    Days

Apps     4           new       20    ←
Apps     3           open      10
Node     3           close     0
Device   2           new       25
Apps     4           open      12    ←
Device   1           close     0
Node     4           new       13

指示的行符合所述标准,因此期望的结果AVERAGE(20,12) 当然是 16。我尝试=Average(IF((A:A="Apps")*(B:B="4")*(C:C="new")+(C:C="open"),D:D))使用 Ctrl++ ,ShiftEnter在使用 averageifs() 时我得到了错误的答案;我收到错误#DIV/0!。请帮我解决这个问题。

答案1

事实上,您有一个“或”条件,这会搞砸您对 AVERAGEIFS 的使用,因为它只执行“和”条件。我认为最好的方法是用老式的方法计算平均值:

=(SUMIFS(Days,Status,"new",Area,"Apps",Severity,4) +
SUMIFS(Days,Status,"open",Area,"Apps",Severity,4)) /
(COUNTIFS(Status,"new",Severity,4,Area,"Apps") +
COUNTIFS(Status,"open",Severity,4,Area,"Apps"))

为了清楚起见,我将范围更改为命名范围,但您可以用特定的单元格范围替换这些名称。

答案2

你很接近了。你需要遵守运算符优先级规则并将+子表达式括在括号中:

=AVERAGE(IF((A:A="Apps")*(B:B="4")*((C:C="new")+(C:C="open")), D:D))
                                   ↑                        ↑

相关内容