小伙伴们好啊,今天老祝和大家一起学习日期时间计算的套路,掌握这些套路,工作效率可以再高一点点。
1、合并日期和时间
如下图,如何将A列日期和B列的时间合并到一起,变成既有日期又带有时间的数据呢?哈哈哈,只要把日期和时间相加即可。
![9304d5dbd7cd0a1863830ee248043e22.gif](https://i-blog.csdnimg.cn/blog_migrate/daea2a408ee9884cb053ee3b71a568d0.gif)
2、拆分日期和时间
如果要将日期和时间合并在一起的数据拆分开,需要怎么处理呢?
别着急,使用以下公式就可以得到日期:
=INT(A2)
然后再用日期时间数据减去日期即可。
![71868b07d0cbe22b7e90f8896ec9cc68.gif](https://i-blog.csdnimg.cn/blog_migrate/9d1d68e9ec13f08690eb376c9f6d66b3.gif)
3、计算间隔几小时
如何计算两个时间之间有多少个小时呢?
很简单,用结束时间减去开始时间,然后乘以24即可。
![71531f72b2afbad1bee6d8d2443709b5.gif](https://i-blog.csdnimg.cn/blog_migrate/b3cf892c07d23b339ef5ff995d7e1533.gif)
4、计算间隔多少分钟
如何计算两个时间之间有多少个分钟呢?
小意思,用结束时间减去开始时间,然后乘以1440即可。
![921a2d6f3962f9daf20919a71b949da0.gif](https://i-blog.csdnimg.cn/blog_migrate/6cfca0e9dca7255ff618e10bad106b45.gif)
5、突出显示周末日期
1、选中A3:F7单元格区域,新建格式规则
2、使用公式为:
=WEEKDAY(A$3,2)>5
3、设置突出显示的格式
![3cd1c9b21f6943325185f68fbb6ebfd0.gif](https://i-blog.csdnimg.cn/blog_migrate/5b1e2448155a2e7426f9ae34ddc6dfd1.gif)
提示:
1、WEEKDAY函数返回某日期为星期几。第二参数使用2,表示以1~7表示星期一到星期日。
2、对第三行中的日期进行判断后,如果数值大于5,即表示该日期为周六或是周日。
6、指定日期所在月有几天
=DAY(EOMONTH(A2,0))
![1638ce73d5481f41d76bbe5b9adc8c9b.png](https://i-blog.csdnimg.cn/blog_migrate/ed5512e51ab6dcade86f9664d83f89d3.jpeg)
EOMONTH函数返回在某个日期之后指定月份后的最后一天,EOMONTH(A2,0)函数得到日期所在月最后一天的日期,DAY函数返回该日期是几号。
7、区分指定日期是上中下旬
Excel中没有直接判断上中下旬的函数,但是咱们可以使用LOOKUP函数变通一下判断出结果:
=LOOKUP(DAY(A2),{0,11,21},{"上旬","中旬","下旬"})
![42491f4bcedf471a1f4f8f273e96f428.png](https://i-blog.csdnimg.cn/blog_migrate/d5e521330c08025da15167fcc8a63794.jpeg)
先用DAY函数,判断A2单元格的日期是几号,然后用LOOKUP函数近似匹配,如果在0~10之间就是上旬,在11~20之间就是中旬,其他就是下旬。
8、根据身份证号计算出生年月
计算公式为:
=1*TEXT(MID(B2,7,8),"0-00-00")
![d05530dcb1d43689295422979a55c541.png](https://i-blog.csdnimg.cn/blog_migrate/120e89752d6f42e6380f6f4bcd52194d.jpeg)
首先使用MID函数从B2单元格的第7位开始,提取出表示出生年月的8个字符,结果为:
"19780215"
再使用TEXT函数将字符串转换为日期样式:
"1978-02-15"
然后通过*1计算,将其转换为真正的日期。最后设置为日期格式即可。
9、计算转正时间
如下图,要根据B列的员工入职日期和C列的试用期月数,计算员工转正日期。
D2单元格公式为:
=EDATE(B2,C2)
![659ef69528d78abb399e84d5be33d163.png](https://i-blog.csdnimg.cn/blog_migrate/199863ca686b1f4e2d656bcc9276f519.jpeg)
EDATE函数用于指定某个日期N月之后或是N月之前的日期。
用法为:
=EDATE(开始日期,指定月份)
10、按年月汇总
如下图,有几百行数据,要按年月汇总各个区域的销售总额。
使用数据透视表,分分钟搞定:
![0d495c4a036908470e676bfaafd5fcd3.gif](https://i-blog.csdnimg.cn/blog_migrate/545642f9c905479cdb5bc92cb30f95d2.gif)
11、计算工龄年月
如下图,要根据员工入职日期,按月计算工龄。
C2单元格公式为:
=DATEDIF(B2,"2017-5-30","m")
![abd878fa4e4cffea0a252efe6bc13ef1.png](https://i-blog.csdnimg.cn/blog_migrate/68269169f77a87de9326a6626e5e5c8c.jpeg)
DATEDIF函数用于计算两个日期之间的间隔,第二参数使用m,表示计算间隔的整月数。
如果第二参数使用y,则表示计算间隔的整年数。
12、有多少个工作日
如下图,使用函数可以计算两个日期之间,去除周末和法定节假日的工作日天数。
=NETWORKDAYS(A2,B2,A6:A8)
![52acbf891e4c9a8b740628ea98cfcd52.gif](https://i-blog.csdnimg.cn/blog_migrate/41beff24609f8ada7c16579cd704d767.gif)
NETWORKDAYS函数的用法为:
=NETWORKDAYS(开始日期,结束日期,需要从工作日历中排除的法定节假日)
13、带调休的工作日天数
实际工作中,要计算工作日时,除了要考虑去除周末和法定节假日的工作日天数,还要加上调休日。对于这种情况,咱们需要先建立一个调休和法定节假日的对照表。
如下图所示,F列是放假时间,G列是调休上班时间。
![a11530a534afc6d6363eebea3e63e12d.png](https://i-blog.csdnimg.cn/blog_migrate/0918fbf7d4b7f4e639540afb30634679.jpeg)
接下来,咱们就可以在C2单元格中写公式了:
=NETWORKDAYS(A2,B2,F$2:F$28)+COUNTIFS(G$2:G$28,">="&A2,G$2:G$28,"<="&B2)
![448a6cb05b9d89827500a273497753c8.png](https://i-blog.csdnimg.cn/blog_migrate/555874fc66970c03839a4989a39e97c6.jpeg)
先使用NETWORKDAYS函数计算出去除法定节假日后的工作日天数,然后用COUNTIFS函数计算从开始日期到结束日期这个阶段中,有几天是需要调休上班的。把这部分调休的天数加上,就是最终的工作日天数了。
14、n个工作日之后是哪天
如下图,使用函数可以计算n个工作日之后是哪天。公式为:
=WORKDAY(A2,B2,A6:A8)
![3191594074a395791de42a8e26cb0623.gif](https://i-blog.csdnimg.cn/blog_migrate/e8eb764f7425aedad759b7ed2cfea7d9.gif)
WORKDAY函数的用法为:
=WORKDAY(开始日期,工作日数,需要从工作日历中排除的法定节假日)
15、调休下的n个工作日之后的日期
如果要在调休的前提下,计算N个工作日之后的日期是哪天,该怎么办呢?
同样,先要准备一个法定节假日和调休的对照表,咱们仍然使用例子13中的对照表。
C2单元格公式为:
=MATCH(B2,NETWORKDAYS(A2,A2+ROW($1:$999),F$2:F$28)+COUNTIFS(G$2:G$28,">="&A2,G$2:G$28,"<="&A2+ROW($1:$999)),)+A2
![5e225326ad59b92008751bcb6c543648.png](https://i-blog.csdnimg.cn/blog_migrate/7aaad04715eb22559ddf87f5a3f0b371.jpeg)
公式看起来比较长,但是原理并不复杂,先使用ROW($1:$999)得到1到999的序号,然后与A2的开始日期相加,这样就分别得到从开始日期之后第一天到第999天的日期了。
然后,用NETWORKDAYS函数结合COUNTIFS函数,以A2日期为开始日期,分别计算出从4月23日到4月24日、4月23日到4月25日、4月23日到4月26日、……4月23日到12月31日……,这些期间分别有多少个工作日,返回一个内存数组结果:
{2;2;3;4;5;6;7;7;7;7;7;7;8;9;10;11;11;12;13;14;15;16;……;707;708}
再使用MATCH函数,在这个内存数组中查找B2单元格中的工作日天数所处的位置,得到的结果,就是从A2开始N多天之后才会有15个工作日。
最后使用这个位置信息加上A2的起始日期,就得到最终需要的结果了。
好了,今天的分享就是这些吧,祝各位小伙伴们一天好心情!
图文制作:老祝