有时候我们需要求某一年的某一周几是几月几号,比如在输入第几周几的时候,自动算出具体日期,方便根据周别列出具体数据。下图是一个实例:在表中输入2021年第2周后,自动列出一整周的具体日期。比如,2021年的第2周一是2021/1/4。
下面我们来说一下具体的制作过程。
步骤一、数学计算:
其实,这是一个小学的数学问题,我的思路是计算这一天是这一年的第几天,即离该年的1月1日有多少天的距离。我们可以调出一个日历来看应该怎么求。
我们用第4周二,即1/19日来分析如何求它和 1月1日 之间的日期差距。
1)先看它和 1月1日差多少周:它位于第4周,和第一周之间的差异是4-1=3,那么换算到天就是(4-1)*7=21天。
2)天数修正:由于2021/1/1是周五,而1/19是周二,所以需要减开日期修正值,5-2=3天。所以上述的日期间隔需要修正到21-3=18天。
3)日期求值:上述日期和1月1日之间的时间差距为18天,所以,它就是本年的第19天。
基本的计算方法理清了后,我们就可以开始在Excel上实现了。
步骤二、Excel实现:
把年份数字放B4,周别数字放C4,周一的值放D4;
1)先把该年的1月1日的日期值算出来,用date(年,月,日)函数,如下图:
2)在该日期的基础上加上周差距,即(周别值-1)*7
3)修正日差距:先求出该年的1月1日是周几,用weekday(日期,类型)函数,值得注意的是,该函数有机种返回类型,分别对应第一天是周几的不同定义,在这里我们按照中国人的习惯,选择“2”。因此,应该是WEEKDAY(DATE(B4,1,1),2)来表示1月1日是周几。
再用目标日的周几减去1月1日的周几,就得到其日期差距,即:D3-WEEKDAY(DATE(B4,1,1),2)。
3)整合结果:整合1和2的结果,就得到该天的具体日期:=DATE(B4,1,1) (C4-1)*7 D3-WEEKDAY(DATE(B4,1,1),2)。
4)向右填充:为了求出一周中后面几天的结果,就需要向右填充,此时,需要用到相对引用和绝对引用。(见另外一篇“九九乘法表”中关于引用的描述)
需要固定引用年份和周别,但周几是可以变动的,所以,需要在B4和C4前面加$固定,其公式变更为:=DATE($B$4,1,1) ($C$4-1)*7 D3-WEEKDAY(DATE($B$4,1,1),2)。
右拉后,该问题解决。
此时,我们就可以任意修改年和周,后面的具体日期就自动呈现了。
后续,我再分享一些函数、图表、数据透视图方面的详细信息,希望大家不要嫌我啰嗦 :)
, 猜你喜欢: