原帖由 wangtx218 于 2009-6-13 09:10 发表 
83个字符
=SUM((DATEDIF(D2,DATE(I$1+9,1,ROW(INDIRECT("1:365"))),"Y")-9>{-1,0,9})*{6,6,3})/365
529649
这次的“头脑风暴”真是太有意义了,哈哈!!
年休假实际上起码以半天为单位(即0.5天,不知道有没有公司折算成小时为单位休的?)。楼上版主也提到了闫年的问题,如果不要求精确到小时的话,上面的公式都不会有太大问题,甚至还可以取巧一点,用如下公式:
-
- 98字符:
- =CEILING(AVERAGE(LOOKUP((DATE(J$1,1,ROW(INDIRECT("1:365")))-$D2)/366,{-99,0;0,6;1,12;10,15})),0.5)
复制代码
-
- wangtx218兄的这个公式可能是最精简的了,98字符:
- =CEILING(SUM((DATEDIF(D2,DATE(I$1+99,1,ROW(INDIRECT("1:365"))),"Y")-99>{-1,0,9})*{6,6,3})/365,0.5)
复制代码
如果对数组理解还不到位的新手朋友,可以参考上面的一个公式,可以适当修改“{-99,0;0,6;1,12;10,15}”里面的参数来满足你的计算需要。
wangtx218兄介绍一下“>{-1,0,9})*{6,6,3}”的逻辑运算原理的话,相信也有助于新入门的朋友理解其原理,以便活学活用~~ |