如何在Excel中计算每周各天的日期平均出现次数?
解决Excel中含缺失日期的每周各天事件平均发生次数计算问题
不需要用脚本,靠Excel原生功能就能实现,具体步骤如下:
1. 生成涵盖首尾日期的完整日期序列
先找到数据里最早和最晚的日期(假设日期列是A列),在空白列(比如D列)输入公式生成连续日期:=SEQUENCE(MAX(A:A)-MIN(A:A)+1,1,MIN(A:A))
这个公式会自动生成从首个日期到最后一个日期的所有日期,包括原本无事件记录的空白日期。
2. 给每个日期标记星期几
在相邻列(比如E列),给每个日期匹配对应的星期:
- 要显示星期缩写(如周一、周二),用公式:
=TEXT(D2,"aaa") - 要用数字对应周一到周日(1=周一,7=周日),用公式:
=WEEKDAY(D2,2)
3. 统计每天的事件发生次数
在F列统计对应日期的事件记录数,无记录的日期会返回0:=COUNTIFS(A:A,D2)
4. 按星期分组计算平均值
有两种实现方式:
方式一:用函数直接计算
比如计算周一的平均次数,公式为:=AVERAGEIFS(F:F,E:F,"周一")
把"周一"换成其他星期名称,就能得到对应星期的平均值。
方式二:用数据透视表(可包含缺失日期)
- 选中D、E、F三列的数据
- 插入数据透视表,把E列(星期)拖到「行」区域,F列(每日次数)拖到「值」区域
- 将值字段的汇总方式改成「平均值」,最终就能得到包含无记录日期影响的每周各天平均次数
示例结果
按上述步骤操作后,就能得到符合预期的结果:
| 星期 | 平均值 |
|---|---|
| 周一 | 2.50 |
| 周二 | 2.00 |
| 周三 | 2.50 |
| 周四 | 2.50 |
| 周五 | 1.00 |
| 周六 | 2.50 |
| 周日 | 2.50 |
(注:周五平均值低是因为数据范围内第二个周五无事件记录,次数按0计算后拉低了平均值)
内容的提问来源于stack exchange,提问作者Untitled
相关产品推荐
相关产品推荐

