Excel:AVERAGE IF

时间:2011-03-16 12:51:44

标签: excel worksheet-function

假设我有一张Excel表格:

第1栏包含工资
第2栏包含性别(男/女)

如何计算女性的平均工资?

7 个答案:

答案 0 :(得分:3)

=AVERAGE(IF(B1:B10="F",A1:A10))

作为数组函数输入(即使用Shift-CTRL-Enter而不是Enter)

答案 1 :(得分:1)

虽然答案已经回答/接受但我无法抗拒加上我的2美分:

总和和平均值通常显示在列表的底部。您可以使用SUBTOTAL()函数计算总和和平均值,并指定包含或排除“隐藏”值,即由过滤器抑制的值。所以解决方案可能是:

  • 为平均值
  • 创建公式=SUBTOTAL(101,A2:A6)
  • 为总和
  • 创建公式=SUBTOTAL(109,A2:A6)
  • 在性别列
  • 上创建自动过滤器

现在,当您过滤“F”,“M”或全部时,将始终计算正确的总和和平均值。

希望有所帮助 - 祝你好运

答案 2 :(得分:1)

如果没有数组公式,只需使用:

=SUMIF(B:B,"F",A:A)/COUNTIF(B:B,"F")

答案 3 :(得分:1)

已回答的问题,可靠的公式 - 但要注意基于数字的条件平均值

在一个非常类似的情况下我尝试过:

“= AVERAGE(IF(F696:F824< 0; E696:E824))”(换档控制输入) - 在英语中,如果F列中的结果为负,则要求Excel计算E列中所有数字的平均值(亏损) - 例如“计算发生损失的所有项目的平均值”。 (没有循环引用)

当被要求计算增益(x> 0)发生的所有项目的平均值时,Excel说得对。但是,当条件平均值基于损失时 - Excel产生了巨大的错误(7.53而不是28.2​​7)。

然后我在Open Office中打开完全相同的文档,其中Calc从相同的数组公式得到(正确的)答案28,27。

在Excel中逐步重新计算整个过程(仅损失的第一个新列,仅用于获取的新列,仅用于发生损失/增益的E值的新列,然后是“干净”(无条件)平均计算,生成正确的价值观。

因此,应该注意的是,在某些条件平均值的情况下,Excel和Open Office会产生不同的答案(以及Excel 2007,瑞典语版本,它们会出错)。

(对不起我的长期警示故事 - 但如果条件是一个数字会有点小心,这将是我的建议)

答案 4 :(得分:0)

您可以将过滤器放在工作表的顶行。然后从Column2中仅过滤F,然后计算值的平均值。

答案 5 :(得分:0)

或者您可以添加仅包含女性工资的其他栏目。

公式如下:= IF(B1 =“女性”; A1)

然后,您只需计算新创建的列的平均值。

答案 6 :(得分:0)

薪金性别
2500 M 0 2500 * 0
2400 F 1 2400×1
2300 F 1 2300×1
                 sum = 2 sum = 4700 average = 4700/2

也许它很复杂。