全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
1298 1
2017-06-26
        领导:小张,你过来一下!

  小张:糟糕,领导叫,一定没有好事儿。忐忑不安的来到领导办公室,看见这个Excel表格,果真没有好事儿。

  领导:你看看,E7单元格周学的项目报酬你怎么计算的?

  小张:我再看看,稍等一下,领导。

  项目背景介绍:单位外聘了一批技术人员加入新产品研发项目,对外聘人员的支付报酬标准为:加入项目不到一个月,按照5000元的费用支付。加入项目时间达到一个月,按照8000元每月的费用支付。

  见鬼,周学5月31日开始参加项目,6月30日,应该一个月了啊,怎么公式统计出来是0呢?

  Excel中求两个日期之间相隔的月数,我们通常使用DATEDIF函数来计算。

  百度一下,网络上一大把的教程也是这么说的。我也曾经一度沾沾自喜,觉得自己多么能干,还知道DATEDIF这么好用的日期函数,甚至Excel帮助文档都查询不到这个函数。当经历这次惨痛的教训,或许有点明白了微软为啥不公开这个函数,搞成隐藏函数,可能真的就是因为函数有些缺陷才没有公开吧。{更多excel考试信息,请关注中国excel考试网【http://www.excel.cn/】,我们会在第一时间更新excel操作技巧。}

  DATEDIF函数计算日期相减得到月份数的基本语法:=DATEDIF(开始日期,结束日期,”m”),其中的参数“m”,表示日期之差的月数。

  这个函数也不是不可以使用,只是必须注意下面细节,切忌!小编也查询了百度,几乎没有看到其他人总结。

  1.NUM错误。

  =DATEDIF(开始日期,结束日期,"M"),结束日期必须大于开始日期。比如=DATEDIF(B1,A1,"y")就会出现报NUM!错误。       
  2.提升月底天数优先级。

  DATEDIF函数只关注了日期的天信息,忽视了对月底信息的判断,所以我们真正在用这个函数的时候,遇到月底这种情况,就需要做优先级判断。正如案例第七行:周学的信息:2017/5/31与2017/6/30都是月底,如果直接写:=DATEDIF(B7,C7,"m"),得到的结果就是错误的。

  遇到日期都是月底这种情况,我们自己需要都留个心眼儿,把公式改进成:=if(day(日期+1)=1,日期+1,日期),套进来就是:=DATEDIF(IF(DAY(B7+1)=1,B7+1,B7),IF(DAY(C7+1)=1,C7+1,C7),"m"),这样就不会出错了。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-6-27 08:29:36
学习了,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群