2014-10-07 158 views
0

我想帮助我的Excel电子表格。 在一个列我有在第二列产品号有执行时间:
ABC
1 0:17
1 0:18
1 0:19 0:18
2 1:12
2 1:12
2 1:13 1:12:6
3 0:45 0:45
我想为下一列(C列)中的每个产品计算平均值。 我曾尝试过:excel多列平均单列

=IF(A1=A2;0;AVERAGE(IF(A:A=A1;B:B))) 

但它失败了。 所以我的问题是我怎样才能自动选择A中的范围与相同的数字来作出平均,并显示在该产品的末尾?

编辑:我用excel 2003.

谢谢你的帮忙。

回答

0

你的方式将工作,但公式需要“数组输入”。最好使用AVERAGEIF功能像这样的C1抄下来

=IF(A1=A2;"";AVERAGEIF(A$1:A1;A1;B$1:B1))

对于Excel 2003或更早版本,你可以用这个“数组公式”(你原本基本上就是)

=IF(A1=A2;"";AVERAGE(IF(A$1:A1=A1;B$1:B1)))

确认CTRL + SHIFT + ENTER然后复制下来

....或使用此非阵列版本

=IF(A1=A2;"";SUMIF(A$1:A1;A1;B$1:B1)/COUNTIF(A$1:A1;A1))

+0

它仍然不起作用。我有excel 2003.是否支持AVERAGEIF?这个代码不会让所有的产品在一个平均水平上? – user3713940 2014-10-07 12:28:42

+0

不,您不能在Excel 2003中使用AVERAGEIF,我在2003年添加了一些建议 - 它应该按照要求工作 – 2014-10-07 13:30:03

+0

@ user3713940 - 请参阅修订后的答案 – 2014-10-07 13:37:01

-1

可以使用AVERAGEIF或AVERAGEIFS以包括条件或者在平均计算多个条件。

首先将列A复制并粘贴到新列(Exa,列F)中,然后删除重复项。

= AVERAGEIF( “A:A”,F1, “B:B”)

+0

'AVERAGEIF'在Excel 2003中不可用。 – 2014-10-07 13:50:29

0

公式:

=IF(COUNTIF($A2:$A$65535,$A1)=0,SUMIF($A$1:$A1,$A1,$B$1:$B1)/COUNTIF($A$1:$A1,$A1),"")

该式粘贴到C1和填充或向下复制到的底数据。

该公式还考虑了未排序的数据。