vba获得每日多个回复的平均每日得分

时间:2015-01-25 20:19:54

标签: excel vba excel-vba

我的数据如下:

date        v1  v2  v3  v4
1/16/2015   5   5   5   5
1/22/2015   5   2   5   5
1/22/2015   5   2   5   5
1/23/2015   5   5   5   5
1/23/2015   5   5   5   5
1/23/2015   5   5   5   5
1/24/2015   5   5   5   5
1/24/2015   5   5   5   5
1/25/2015   5   4   5   5

我需要为每一天输出每个值(v1,v2,v3,v4)的平均分数。我在另一个工作表中输出了一个唯一的日期列表,如下所示:

date        avg val 1   avg val 2   avg val 3   avg val 4
1/16/2015                   
1/22/2015                   
1/23/2015               
1/24/2015
1/25/2015                   

如何为每个唯一日期迭代v1的所有值,对它们取平均值,然后将该数字输入到匹配日期的平均列中?

1 个答案:

答案 0 :(得分:0)

当标题标签匹配时,将公式用于此通常效果更好,因此您无需对交叉引用标准进行硬编码。

AVERAGEIF in 2 directions

=AVERAGEIFS(INDEX($B$2:$E$10, , MATCH(H$1, $B$1:$E$1, 0)), $A$2:$A$10, $G2)

使用经过修改的标题标签(根据图像)可以向右和向下填充。如果要保留样本标题标签(与数据表不同),则必须将 V1 V2 等硬编码到MATCH中功能

公式使用INDEXMATCH来提供列,AVERAGEIFS负责日期条件。可以使用AVERAGEIF,但语法略有不同。