Excel 周累、月累、年累及同期数据计算


1. Demo

2. 公式及演示

设 U2 为「基准日期」所在单元格,值为 =Today()-1。
假设基准日期为 2024-08-13,则以公式计算的各时段日期如下:

时段|日期示例|公式
|:-:|:-:|:-:|
|日|2024-08-13|U2|
|同期日|2023-08-13|EDATE(U2,-12)|
|现期周初|2024-08-12|(U2-WEEKDAY(U2,2)+1)|
|现期周末|2024-08-18|(U2-WEEKDAY(U2,2)+7)|
|现期周累|2024-08-13|(MIN(U2,U2-WEEKDAY(U2,2)+7))|
|同期周初|2023-08-12|(EDATE(U2-WEEKDAY(U2,2)+1,-12))|
|同期周末|2023-08-18|(EDATE(U2-WEEKDAY(U2,2)+7,-12))|
|同期周累|2023-08-13|(EDATE(MIN(U2,U2-WEEKDAY(U2,2)+7),-12))|
|现期月初|2024-08-01|(EOMONTH(U2,-1)+1)|
|现期月末|2024-08-31|(EOMONTH(U2,0))|
|现期月累|2024-08-13|(MIN(U2,EOMONTH(U2,0)))|
|同期月初|2023-08-01|(EOMONTH(U2,-13)+1)|
|同期月末|2023-08-31|(EOMONTH(U2,-12))|
|同期月累|2023-08-13|(MIN(EDATE(U2,-12),EOMONTH(U2,-12)))|
|现期年初|2024-01-01|(DATE(YEAR(U2),1,1))|
|现期年末|2024-12-31|(DATE(YEAR(U2),12,31))|
|现期年累|2024-08-13|(MIN(U2,DATE(YEAR(U2),12,31)))|
|同期年初|2023-01-01|(DATE(YEAR(U2)-1,1,1))|
|同期年末|2023-12-31|(DATE(YEAR(U2)-1,12,31))|
|同期年累|2023-08-13|(MIN(EDATE(U2,-12),DATE(YEAR(U2),12,31)))|

使用 EDATE、EOMONTH 函数计算的日期无平年、闰年误差,相较 -365、-366 的同期计算方式更精确。

3. 搭配 SUMIFS 函数使用

数据源:
|日期|品牌|销额|
|:-:|:-:|:-:|
|1/1/2023|品牌1|641.9|
|1/1/2023|品牌2|534.1|

以上表为例,格式为:=SUMIFS(销额列,品牌列,品牌名,日期列,">="&起始日期,日期列,"<="&结束日期)

到品牌的现期月累数据求和公式为:
=SUMIFS(品牌数据!C:C,品牌数据!B:B,B6,品牌数据!A:A,">="&(EOMONTH(U$2,-1)+1),品牌数据!A:A,"<="&(MIN(U$2,EOMONTH(U$2,0))))