|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
顺便解释一下这个通用折算公式的计算原理吧——- =SUM(ABS(DATE(2012,MONTH(C3),DAY(C3))-DATE(2012+{0,1},1,1))*LOOKUP(DATEDIF(C3,DATE(2012,12,31),"y")-{1,0},{0,0;1,5;10,10;20,15}))/SUM(DATE(2012+{1,0},1,1)*{1,-1})
复制代码 1、ABS(DATE(2012,MONTH(C3),DAY(C3))-DATE(2012+{0,1},1,1))这部分会得到两个数值,即2012年年头到临界日的天数,临界日到2012年年底的天数。DATE(2012,MONTH(C3),DAY(C3))返回的就是临界日的日期,如“2012-5-1”。
2、LOOKUP(DATEDIF(C3,DATE(2012,12,31),"y")-{1,0},{0,0;1,5;10,10;20,15})也是得到两个数,假设到2012年12月31日可以享受多少天法定年假,“-{1,0}”的作用是测试是否包含临界点。如果到2012年5月1日正好满10年,按规定可以享受10天年假,那么应该是5月1日前按5天折算,5月1日后按10天折算。
3、上述1和2中对应的两个数相乘,就可以得到:临界日前天数*可休年假天数+临界日后天数*可休年假天数,其中,临界日前天数+临界日后天数就是一年的天数(365或者366)。SUM(DATE(2012+{1,0},1,1)*{1,-1}),这是公式的最后一部分,作用也就是返回一年的天数。用上面两组数的乘积和除上全年的天数,不就是2012年折算后应休的天数吗?
要理解公式的含义,最好的方法是使用公式求值,一步一步看计算的逻辑和结果,看多了也就熟练了。
如果要计算2013年可休年假天数,只要替换公式中出现的四个“2012”就可以了。 |
|