DATEDIF和EOMONTH是打工人提效函数,能一键解决一些时间计算的痛点;
WEEKNUM和WEEKDAY尽量别用上,都用上这种函数了,大概率是领导要求牛马们进行细化分析,按周汇报,甚至找出每周中每天的赚钱规律,可以收藏这个函数,但是许愿未来不会用上。
函数简介
DATEDIF
DATEDIF是超实用的日期差计算函数,核心功能是精准计算两个日期之间的年数、月数、天数之差。
支持多种维度的差值统计,如考虑年月的日期差、考虑年的月差等形式,是项目周期统计、账期管理等场景的核心工具。
公式:DATEDIF(开始日期,终止日期,比较单位)
开始日期(较早的日期):必需参数,必须是标准日期。
终止日期(较晚的日期):必需参数,一般要满足终止日期≥开始日期,否则会返回一个负数。
比较单位:必需参数,两种日期比较的方法,仅支持6个固定值,单个字母(Y/M/D)是含年份的完整差值,双字母是忽略年或年月维度的差。
EOMONTH
EOMONTH是用于计算指定日期所在月份最后一天的函数,常用于财务计算、日期规划等场景。函数以开始日期为基准,向前或向后指定月数的月末日期。
公式:EOMONTH(开始日期,月数)
开始日期:必需参数,需要计算的基准日期,可以是日期值、单元格引用或文本格式的日期,也可以是日期函数生成的。
月数:必需参数,整数,零返回起始日期当月的月末,负数表示从起始日期向前偏移的月份数,正数则是向后偏移的月份数。
计算月初日期:=EOMONTH(日期,-1)+1
计算下个月第一天:=EOMONTH(日期,0)+1
获取当月最后一天:=EOMONTH(TODAY(),0)
WEEKNUM
核心作用是返回指定日期对应的全年第几周,即解决想知道今天是全年第多少周的问题,函数会划分为1~53周,因为跨年的原因,所以不能简单的用365天除以7天来计算周数。
周数结果和使用方法依赖“星期起始日”和“第1周判定规则(一般是1月1日所在的周为第1周)”,结果无所谓对错,贴合实际使用即可。
函数支持自定义星期起始日,是周度报表制作、数据按周汇总重要工具。
公式:WEEKNUM(日期序号,[返回值类型])
日期序号:必需参数,待计算的日期,如2024-10-01、单元格引用、日期函数DATE(2024,10,1)
返回值类型:可选参数,按指定的规则判断该日期属于全年的第几周,默认值为1,即把周日作为每周第一天,这是欧美的习惯。参数填2是把周一作为每周第一天,中式习惯。

WEEKDAY
函数核心作用是返回指定日期对应的星期数(如周一、周日),即解决想知道今天是星期几的问题。
支持自定义星期起始日(如中国习惯把周一作为每周第1天、国外把周日作为每周第1天),是日期分析、排班表制作、工作日计算等场景的常用函数。
公式:WEEKDAY(日期序号,[返回值类型])
日期序号:必需参数,基本和WEEKNUM差不多。
返回值类型:可选参数,基本和WEEKNUM差不多。
实用场景
计算逾期天数
用TODAY+DATEDIF组合,可以实现灵活的获取指定日期和当前日期的日期差,用来计算逾期天数最为合适。
注意,TODAY函数没有参数,把TODAY()输完就能获取当前日期。
计算当月每日收益
要计算当月每日收益,就得计算出当月有多少天,就得知道每月最后一天是哪一天,此时就需要使用EOMONTH函数。
按周分析数据
第一步:明细数据的日期项通过WEEKNUM函数运算出对应周数,图中函数是WEEKNUM(B11,2)。
第二步:生成二维表格,用SORT+UNIQUE函数对明细数据的周数生成一个升序的不重复列表。
图中函数是SORT(UNIQUE(C11:C22))。
第三步:通过SUMIFS就周数和对象两个条件进行汇总运算。