Excel提取和列的平均值

时间:2012-10-31 05:20:10

标签: excel excel-formula

如果我有一个列有名字而另一个列有付费,是否可能。即。

John     $120  
John     $100  
Sally    $90  
Sally    $100  
Sally    $80

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

3 个答案:

答案 0 :(得分:3)

您可以使用

  1. AVERAGEIFS(适用于x107及以后)
  2. 数据透视表请参阅Debra's site以获取参考资料
  3. 如果您的数据位于A2:B6,那么D1中的此公式(C1中的“John”)可以正常工作 =AVERAGEIFS($B$2:$B$6,$A$2:$A$6,D1)

    enter image description here

答案 1 :(得分:0)

如果您需要使用电子表格来处理早于2007年的Excel版本,您还可以使用以下公式:

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

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

该公式适用于 brettdj 的答案中的示例表,其中

  • 名称列表在A2:A6
  • 值列表在B2:B6
  • “John”在D1
  • 此公式进入E1(实际上是任何地方)。

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

答案 2 :(得分:0)

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

=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!