我面试了几十个大学生都不达标,发现他们竟连这个日期公式都不会!

每天一点小技能

职场打怪不得怂

编按:日常工作中,我们必然会遇到各种日期问题,需要对它进行查找、计算……,如果连这些都不掌握,可能面试都过不了!今天,小E给大家介绍的就是计算有效期天数的方法!从简单到难的三个不同问题,全面为大家解构公式的组成和应用!

在EXCEL中,日期的本质是数值,所以一般情况下,在计算有效期的时候,只要适当地运用日期函数,基本上都能够得出预期的结果。可是,当遇到某些奇葩的有效期计算要求的时候,就要多杀死一些脑细胞了。

小张就职于一家宠物食品公司,对宠物食品的保质期有严格的要求。小张的日常工作之一就是对保质期进行计算和管理。

最简单的日期计算

原本呢,公司生产的宠物食品的保质期,规定为70天。所以,要计算70天有效期的话,只需将生产日期加上70就可以了,这对于小张来说,是个小case。

操作:在B2中输入“=A2+10”,用鼠标向下复制填充即可。

不难的日期计算

没过多久,公司出了新的规定,规定保质期为2个月零10天。这种情况下的有效期计算也在小张的射程范围之内——先用EDATE函数求得两个月之后的日期,然后再加10,就行了。

操作:在B2中输入“=EDATE(A2,2)+10”,用鼠标向下复制填充即可。

难度升级的日期计算

近日,公司又出了更奇葩的规定——将保质期定为2个月零10天的同时,要求有效期的最后一位数字与生产日期最后一位数字保持一致!这下,情况就变得复杂了。

问题分析:

这里面会涉及到每月天数、闰年和平年2月份天数不同的问题,甚至涉及到平年跨到平年、平年跨到闰年等多种状况。以2019年12月20日为例,向后推移2个月,应为2020年2月20日,2020年2月20日之后的第一个尾数为0的日期是2020年3月10日。

在公司的这种规定下,天数差就不再是一个有明确规律的数字了,最低天数差值为69天,而最高的天数差值则高达81天:

公众号回复:入群,群里下载练习课件

小张一筹莫展,这真的是难死“宝宝”了。

思路:

通过上面对于天数差值的分析,大家可以看出,有效期与生产日期之间的天数差值范围,在69天至81天之间。先将生产日期往后推69天至81天的天数构成一个数组,然后再在这个数组中,把第一个与生产日期天数的最后一位数字一致的天数匹配出来。用数组来解决这个问题。

操作:

在B2中的输入:=INDEX(A2+ROW($69:$82),MATCH(0,MOD(DAY(A2+ROW($69:$81))-DAY(A2),10),0)),按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

这样,就完美的计算出了对应的有效期!

函数分析:

INDEX+MATCH函数是Excel中的经典组合,先用MATCH函数匹配到符合条件的数据的位置,再通过INDEX函数返回数组(或区域)中这个位置对应的值。

公式看起来很长,其实理解起来很简单!下面,笔者就为大家一一剖析构成这个公式的步骤:

第1步:构造日期数组

在B2中输入公式如下:=A2+ROW($69:$81) ,按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

通过F9键,可以查看B2中的计算结果,如下:

={44286;44287;44288;44289;44290;44291;44292;44293;44294;44295;44296;44297;44298}

其中显示的是日期对应的数值,不太容易看清楚效果。

补充检测小技巧:

大家可以增加一列辅助列,利用TEXT函数将数值改成日期显示。

在C2中输入公式:=TEXT(A2+ROW($69:$81),"yyyy-m-d"),按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

通过F9键,可以查看C2中的计算结果,如下:

={"2021-3-31";"2021-4-1";"2021-4-2";"2021-4-3";"2021-4-4";"2021-4-5";"2021-4-6";"2021-4-7";"2021-4-8";"2021-4-9";"2021-4-10";"2021-4-11";"2021-4-12"}

【注:TEXT函数在后续的计算中,用不到它。】

可以看到,在构造出的数组中,天数尾数为1的有3个,分别为2021年3月31日、2021年4月1日、2021年4月11日,这些天数的尾数都与2021年1月21日的天数尾数一致。

第2步:构建天数数组

通过DAY函数将构造出的日期数组中的每一个日期的天数提取出来,构成一个新的数组。

B2中的公式扩展为:=DAY(A2+ROW($69:$81)),按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

通过F9键,可以查看B2中的计算结果,如下:

={31;1;2;3;4;5;6;7;8;9;10;11;12}

第3步:构建天数差值数组

将天数数组中的天数与生产日期中的天数相减,以求得天数差值。

B2中的函数第二次扩展为:=DAY(A2+ROW($69:$81))-DAY(A2),按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

通过F9键,可以查看B2中的计算结果,如下:

={10;-20;-19;-18;-17;-16;-15;-14;-13;-12;-11;-10;-9}

肉眼观察即知,与2021年1月21日的日期尾数相同的天数与2021年1月21日的天数差为10(2021年3月31日),-20(2021年4月1日),-10(2021年4月11日),在天数差值数组中,第一个天数差值为10的整数倍的数据,就对应着日期数组中的第一个满足条件的日期。

第4步:构建余数数组

由于满足条件的天数差值为10,-20,20,它们的一致规律就是除以10后求余数,均为0。从而,我们可以得出这样结论:第一个为余数为0的数据,也对应着日期数组中的第一个满足条件的日期。

B2中的函数修改为:=MOD(DAY(A2+ROW($69:$81))-DAY(A2),10),按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

通过F9键,可以查看B2中的计算结果,如下:

={0;0;1;2;3;4;5;6;7;8;9;0;1}

第5步:通过MATCH函数,进行匹配

通过MATCH函数,在余数数组中,匹配第一次出现0的位置。

B2中的函数修改为:=MATCH(0,MOD(DAY(A2+ROW($69:$81))-DAY(A2),10),0),按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

通过F9键,可以查看B2中的计算结果,为1。(注:B2单元格中显示为1900/1/1,在函数栏中通过F9键查看,显示结果为1。)

至此,在构建的日期数组中,第一个满足条件的日期出现在第1个位置,大家再用INDEX函数去日期值数组中,返回第1个日期值,就OK了。

第6步:通过INDEX+MATCH函数组合,完成日期匹配

B2中的公式得到最终的完善,得到最开始的公式:=INDEX(A2+ROW($69:$82),MATCH(0,MOD(DAY(A2+ROW($69:$81))-DAY(A2),10),0))。最后,与上述步骤一致,按Ctrl+Shift+回车键后,用鼠标将公式向下复制填充。

这样,令小张头疼已久的的有效期问题就解决了。

亲爱的小伙伴,本文中问题的涉及到数组、MOD函数、MATCH函数、INDEX函数等综合应用,请务必多次练习,从而明白其中的奥义哦!

扫一扫添加老师微信

在线咨询Excel课程

Excel教程相关推荐

工作这么久,还只会用IF函数做条件判断,那就真OUT了……

100个工作簿,同事竟只花了5秒就合并完成了!(即学即用)

Excel教程:90%都不知道,拆分数据最简单的方法竟然是它!

Excel教程:到期自动提醒功能,一秒显示你所需的数据!

想要全面系统学习Excel,不妨关注部落窝教育的《一周Excel直通车》视频课或者《Excel极速贯通班》。

主讲老师: 滴答

 

Excel技术大神,资深培训师;

课程粉丝100万+;

开发有《Excel小白脱白系列课》

《Excel极速贯通班》。

原价299元

限时特价 99 元

少喝两杯咖啡,少吃两袋零食

就能习得受用一生的Excel职场技能!

(0)

相关推荐