ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 函数与公式 > 也玩日期函数【我的测验】

也玩日期函数【我的测验】

作者:绿色风 分类: 时间:2022-08-18 浏览:174
楼主
天南地北
用公式求出每位员工的餐贴
要求使用纯函数公式完成!,要求见截图
答题时间延长截止12月09日18:00(欢迎积极参与)
答案正确给予2-5魅力值,精彩视情况另外加分!跟帖贴出公式即可,有任何疑问站内信联系,谢谢各位参与!

 
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
答题时间到,请勿修改答案!
为方便开贴后大家学习,将公式解释及预设答案放9楼!

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★


也玩日期函数.rar
2楼
w83365040371
  1. =ROUND(MAX(TEXT(IF(C4,C4,EOMONTH(C$1,0))-MAX(EDATE(B4,1),C$1)+1,"[="&DAY(EOMONTH(C$1,0))&"]!3!0!.!5;0")*200/30.5,),)
抛砖
3楼
ilyte
  1. =INT(MAX(IF(MIN(TEXT(C$1+31,"e-m-!1")-1,C4)-MAX(B4+DAY(TEXT(B4+31,"e-m-!1")-1),C$1)+1=DAY(TEXT(C$1+31,"e-m-!1")-1),200,(MIN(TEXT(C$1+31,"e-m-!1")-1,C4)-MAX(B4+DAY(TEXT(B4+31,"e-m-!1")-1),C$1)+1)*200/30.5),0)+0.5)
4楼
gouweicao78
  1. =ROUND(200*IF(((C5="")+(C5>C$1))*(EDATE(B5,1)<=C$1),1,MAX(,MIN(EOMONTH(C$1,0),C5)-MAX(EDATE(B5,1),C$1)+1)/30.5),)
5楼
涅磐86970
=TEXT(IF(C4<>"",IF(C4>=C$1,(C4-C$1+1)/30.5*200,0),IF(EDATE(B4,1)>C$1,(EDATE(C$1,1)-EDATE(B4,1))/30.5*200,200)),"0;!0"
太长了
6楼
一嘟噜钥匙
  1. =TEXT(IF(DATEDIF(EDATE(B4,1),EDATE($C$1,1),"m"),200,DATEDIF(EDATE(B4,1),EDATE($C$1,1),"d")*200/30.5)+IF(C4="",0,(C4-$C$1+1)*200/30.5-200),"0;\0;")
7楼
wyf22006
  1. =ROUND(IF(C4="",TODAY()-B4-29.5,IF(C4-B4<30,0,C4-B4-29.5))*200/30.5,0)
似乎D4答案示例对不上........
8楼
wcymiss
总觉得日期函数纠结得很,尤其这种区间的判断。
写一个,太长了:
  1. =ROUND(TEXT(MIN(EDATE(C$1,1),IF(C4,C4+1,9^9))-MAX(EDATE(B4,1),C$1),"[>="&EDATE(C$1,1)-C$1&"]3!0!.5;!0;0")*200/30.5,)
min居然可以忽略真空,(太挫了,不试还真不知道)
  1. =ROUND(TEXT(MIN(EOMONTH(C$1,0),C4)+1-MAX(EDATE(B4,1),C$1),"[="&EDATE(C$1,1)-C$1&"]3!0!.5;!0;0")*200/30.5,)
9楼
天南地北
结帖:
本测验题主要考察几个日期函数的用法具体为EDATE、EOMONTH


题目的难点就在处理天数上,统一按30.5天计算,当不满一个月要按实际天数计算,但是当一个月有31天的时候必须也得按30.5天计算而不能按31天折算
计算天数肯定是月底时间(离职时间)-月初时间(入职后一个月时间),想到这里问题就简单了,再配合MIN和MAX函数得到公式为

  1. =ROUND(TEXT(MIN(EOMONTH(C$1,0),C4)-MAX(EDATE(B4,1),C$1)+1,"[="&DAY(EOMONTH(C$1,0))&"]3!0!.5;!0;0")*200/30.5,)
【公式解释】
MIN(EOMONTH(C$1,0),C4)-MAX(EDATE(B4,1),C$1)+1表示离职日期(如果有的话)和C1给出的日期的月底日期较小者-入职后一个月日期和月初日期的较大者,然后+1,即头尾日期都计算在天数范围内,如果等于当月的天数DAY(EOMONTH(C$1,0))利用TEXT强制返回30.5天,如果不等于当月天数(实际上应该小于30.5天,因为大月才31天)那么按照实际天数进行折算,最后利用ROUND进行四舍五入。
其中公式DAY(EOMONTH(C$1,0))表示返回C1月底日期然后再用DAY求得当月天数,也可以用公式EDATE(C$1,1)-C$1代替,如8楼公式二。
再次感谢各位的参与,出题的初衷是让大家练习一下日期函数,没有想到参与度不高,可能是大家对日期函数的了解程度没有其他多吧!
初步判断3楼、8楼公式正确,其中8楼公式最短,如果从数字上做点文章可以再减3字符!

2楼基本正确(为什么说基本,因为当C1给出的时间要早于离职时间计算出错,但是这种情况如果结合实际这种情况应该不存在,从公式思路严谨上稍有欠缺)
4楼未考虑当月离职
5楼月底最后一天离职计算错误
6楼同样存在5楼同样的问题
7楼公式错误,不能使用TODAY

10楼
wcymiss
感谢出题,让我学到一个min的用法。
11楼
天南地北
跟着我姐学习哦!
12楼
liuguansky
我姐厉害。
13楼
pcwmmn
要顶的啊,楼主辛苦了,谢谢

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap