Excel从列中提取和平均值

如果我有一列有名字而另一列有薪水,有可能吗? 即

 约翰$ 120  
约翰$ 100  
莎莉$ 90  
莎莉$ 100  
莎莉$ 80 

为John和Sally提取第2列的值,然后对它们进行平均,并将结果放入另一列的两个单元格中? 我可以使用电子表格命令还是需要VBA自动执行此操作?

你也可以使用

  1. AVERAGEIFS (x107及以上)
  2. 数据透视表参见Debra的网站 ,以供参考

如果您的数据在A2:B6那么D1这个公式( C1 “John”)起作用
=AVERAGEIFS($B$2:$B$6,$A$2:$A$6,D1)

在这里输入图像描述

如果您需要电子表格与2007版以前的Excel版本一起使用,则还可以使用以下公式:

 =SUM(($D$1=$A$2:$A$6)*($B$2:$B$6)) / COUNTIF($A$2,$D$1) 

这是一个数组公式,所以在input时需要按CTRL + SHIFT + ENTER而不是ENTER。

公式与brettdj的答案中的样本表一起工作 ,其中

  • 名单列表在A2:A6
  • 值列表在B2:B6中
  • “约翰”在D1
  • 这个公式进入E1(或实际上任何地方)。

它通过计算B2:B6中相应的A2:A6值为John的值的总和,然后除以A2:A6中的Johns总数得出平均值。

如果您使用分号(;)而不是逗号(,),则它可以很好地工作,如下所示:

 =AVERAGEIFS($B$2:$B$6,$A$2:$A$6,D1) - it doesn't work, =AVERAGEIFS($B$2:$B$6;$A$2:$A$6;D1) - it works!