使用Excel计算每日平均值

时间:2016-05-31 00:45:35

标签: arrays excel

在给定时间段内计算整数的每日平均值的最佳方法是什么。

例如:

Jan 1st | 456
Jan 2nd | 238
Etc all the way to the current date.

最终结果是,我将获得YTD的当前日平均值,所以像这样:

Monday - average of 250
Tuesday - average of 183

基于YTD数据。这是一列日期和一列数字。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

如果你想要一个公式,那么:

=AVERAGE(IF((WEEKDAY($A$2:$A$367)=D2),$B$2:$B$367))

这是一个数组公式,必须使用Ctrl-Shift-Enter确认以退出编辑模式而不是Enter。如果操作正确,Excel会将{}放在公式周围。

我在D2-D8中添加了1-7来表示工作日编号。工作日公式返回一个数字,因此我们需要该列作为参考。

enter image description here

如果不需要辅助列,我们可以使用计数器ROW(1:1)来实现相同的效果,当公式被复制时,计数器将增加1:

=AVERAGE(IF((WEEKDAY($A$2:$A$367)=ROW(1:1)),$B$2:$B$367))

这仍然是一个数组,但不依赖于辅助列D.请记住,星期从星期日开始。

答案 1 :(得分:1)

为星期几添加一列:

=CHOOSE(WEEKDAY(A1),"Sun","Mon","Tue","Wed","Thu","Fri","Sat")

然后在三列数据上使用数据透视表来获取白天的每日平均值。

答案 2 :(得分:1)

假设你的日期是一个字符串,并结合蒂姆和斯科特的想法,我想出了他:

将以下内容放在相邻列中并向下复制以适合您的数据:

=WEEKDAY(DATE(2016,MONTH(LEFT(A1,3)&"-1"),MID(A1,5,1+(LEN(A1)=8))))

它将生成一个表示星期几的整数列表1-7。

在另一个单元格中,让我们说E2,例如,将您想要获得平均值的星期几放在旁边,并使用以下公式:

=IFERROR(AVERAGEIF($C$1:$C$10,MATCH(E2,{"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"},0),$B$1:$B$10),"")

概念证明

Proof of Concept