平均值如果基于某一列中的一个标准或另一个标准

平均值如果基于某一列中的一个标准或另一个标准

有人能解释一下为什么这不起作用吗?

=AVERAGEIF(Data!C:C,{"Monday","Tuesday"},Data!L:L)

我想要 L 列的平均值,其中 C 列中有星期一或星期二。它仅给出星期​​一的平均结果。

答案1

我可以提供一种使用 AVERAGE 和 IF 作为数组公式的替代方法。

它不起作用的最可能原因是因为你向它传递了一个数组 {“Monday”,“Tuesday”},但该函数本身并不作为数组公式运行,导致只处理数组的第一个元素,即“Monday”

例如尝试这个=ROW(A1:A4)这应该返回 1,2,3,4,但它返回 1,因为它不是数组公式。将其转换为数组公式仍返回 1,即第一个元素,因为没有任何内容可以处理数组。现在将其包装在 SUM 中,=SUM(ROW(A1:A4))然后从公式栏中按 CTRL+SHIFT+ENTER 将其转换为数组公式。现在它正确返回 10,与 =SUM(1,2,3,4)

您还应避免使用平均值的平均值,因为它可能会导致错误的结果。例如,平均值(1,2,3)与平均值(平均值(1,2),平均值(3))不同

使用此数组公式来获得所需的结果。

=AVERAGE(IF(Data!C:C={"Monday","Tuesday"},Data!L:L))

在公式栏中按 CTRL + SHIFT + ENTER 将此公式转换为数组公式。公式现在应将其自身括在花括号中。

如果没有数组公式,这将导致错误的结果。

在此处输入图片描述

答案2

您的AVERAGEIF函数返回一个数组。然后您需要对结果数组求平均值:

=AVERAGE(AVERAGEIF(Data!C:C,{"Monday","Tuesday"},Data!L:L))

但是,除非周一和周二的条目数完全相同,否则这实际上并不能提供周一或周二所有条目的平均值。换句话说,它是周一、周二平均值的平均值

如果星期一和星期二的条目数量不同,并且您希望将其计入平均值,则需要执行以下操作(未经测试)

=SUM(SUMIF(数据!C:C,{"星期一","星期二"},数据!L:L))/SUM(COUNTIF(数据!C:C,{"星期一","星期二"}))

相关内容