背景人物:
BOSS:财务经理,经常布置一些超出工作能力的任务
小本:带主角光环的财务人员
小迪:办公室唯一女同事(萌妹子,详见第二期介绍)
JACK:网络部精英,电脑高手
MISSION4:已经知道客户签订合同的日期和期限,求合同到期日
BOSS:小本,小迪,现在公司需要统计下今年新签定合同的到期日,以便提醒客户及时续签,防止发生违约情况,这里是100个客户签订的时间,你俩完成这个统计。
客户签订合同日期和期限小迪、小本:收到
小迪:小本,这个到期日怎么求啊,我记得之前你有一个函数是计算两个日期之间的间隔,好像是datedif函数吧,现在BOSS给的case是知道了开始时间和间隔,让算终止时间,datedif函数就不能用了,有什么好办法吗?
小本:让我想想。(5分钟后)我们可以这样,让合同期限的月份加上签订合同的期限,把月份当成一个12进制的数据,满12往上年份加1,比如甲客户的期限刚好是12个月,就是1年,合同到期日是2018/07/01.再看己客户,期限6个月,己客户签订合同是7月份,6+7是13,换算一下就是1年1个月,然后在2017上加上,就是2018年1月9日到期
小迪:那就是需要建立一个辅助列,先提取合同签订日期的月份,再加上期限,得到的总数除以12,整数部分加到签订合同的年份上,余数部分就是月份了。这也挺简单的,开工吧
小本方案操作步骤小本方案:通过叠加月份,采用月份的12进制,计算合同到期日
step1:建立提取合同月份的辅助列:使用month函数提取合同签订日期的月份
step2:建立月份合计辅助列:提取的月份和期限月份相加
step3:建立增加年份的辅助列:使用int函数提取商的整数部分
step4:建立月份的辅助列:使用MOD函数提取总月份除以12以后的余数,即合同到期日的月份
step5:汇总:只用date函数汇总得到年月日
小迪:你这个方法太棒了,虽然过程有点多,但是总比挨个数快很多了。
(JACK来到财务)
JACK:聊什么呢,这么开心
小迪:夸小本的方法呢,他的方法分分钟像效率提升
JACK:我看看什么方法让你这么开心。
(JACK看了小本的方法后,笑了)
小本:这个方法不好吗?
JACK:方法是好方法,就是没有我的好
小迪:你还有比这个方法更好的?
JACK:那是,分分钟秒杀你的4个辅助列+1个date函数
小本:快来讲讲
JACK:咳咳,晚上宵夜你俩管了
小迪:算我的,你快说
JACK:我的方法是edate函数
edate函数JACK方法:使用edate函数求结束日期
JACK:瞧,这个函数是不是分分钟秒杀你的辅助列。
小本:哇,晚上的饭我请了,这个学费我出,烧烤撸串啤酒,随你挑
JACK:看来你的诚意已经打动我了,拿我再附赠你一个函数吧,这个函数不仅计算到期日,还能计算到月底的日期。
小迪:这个业务我知道,供应商经常要求2个月以后的月底之前付款就可以,是不是这个意思
JACK:对,这个函数就是eomonth
(JACK给小本和小迪演示eomonth函数)
eomonth函数JACK:看到没有,这就是秒杀
小本:赶紧用你的函数把BOSS布置的任务交了,然后撸串走,吃到你满意为止
小迪:我也去我也去
JACK:下班见
函数小贴士
1、关于edate函数和eomonth函数,其第二个参数是能是月份计算,期限必须转换成月份才有效,如果是年份的话就必须*12转化
2、iint函数:将数字向下舍入到最接近的整数。比如8.9,使用int函数的结果就是8,如果负数,则向下舍入,比如-2.3使用int函数则是-3
3、四个日期函数:year()、month()、 day ()、date(),如果单元格的日期格式是标准的日期格式,使用三个函数可以分别提取对应的年月日,相当于拆分了日期,使用date()函数,则是汇总了日期函数,date函数的三个参数分别是(年、月、日),具体见下图
四个日期函数
网友评论