在网上看到您的一个回复,很专业,想请教一下:
根据员工入住及搬出日期,计算某月的入住天数
姓名 入住日期 搬出日期 入住天数
A 20.12.2013 15.12.2015 31
B 15.08.2014 15.09.2014 17
C 12.08.2014 25.08.2014 14
D 10.07.2014 21.08.2014 21
这里涉及几个情况:
日期为德国模式,符合Excel标准就行,是吗?
员工A在早之前已经搬入,后几个月才搬出,八月份的入住天数计31天
员工B在八月中搬入,九月中退房,八月份入住天数17天
员工C八月搬入和搬出,入住天数14天
员工D七月搬入,八月搬出,八月份入住天数21天
注:在一个格子里用IF语句嵌套多次完成,请麻烦告知,谢谢
ps:是否能用同样的式子套入九月?如果我在今年十二月份的时候回过头计算八月份的数据,式子是否一致?
就是这个问题吧:
http://zhidao.baidu.com/question/112478713.html
你的BC列日期为德国模式,只要符合Excel的日期格式就行。
在D2输入
=DATEDIF(IF(B2<--"2014-8-1",--"2014-8-1"-1,B2-1),IF(C2>--"2014-8-31",--"2014-8-31",C2),"d")
或
=DATEDIF(IF(B2<41852,41851,B2-1),IF(C2>41882,41882,C2),"d")
回车并向下填充。
其中:41852是2014-8-1的常规格式的显示形式,41882是2014-8-31的常规格式的显示形式。
要统计九月份的,修改公式里面的日期就行。
追问确实可行,非常感谢!
后续又出现一个问题,不知能否指点:
德国公司配备的电脑里面是全英文系统和软件,且规定 Excel 中所有日期按照德国鬼子的规范书写,即 日.月.年,时间长了,也养成这个输入习惯了。但在英文版的 Excel 中,默认的日期规范是 年.月.日,问题来了
能否在不改变这个输入习惯的前提条件下(例:23.11.2014),通过修改上面的函数或Excel中的什么设置,实现不报错?
谢谢
可以用“分列”的方法:
选日期列——菜单栏——数据——分列——下一步——下一步——列数据格式——日期:DMY——完成。
再运用公式。
直接在公式里面转换,会很费事,因你的德国日期格式是:23.5.2014("d.m.yyyy"),还不是23.05.2014("dd.mm.yyyy"呢),在中文版就属于文本格式了。
中文版默认的日期格式是:2014-5-23。
修正的公式为:
=DATEDIF(IF(--TEXT(DATE(RIGHT(B2,(LEN(B2)-FIND(".",B2,FIND(".",B2,1)+1))),MID(B2,FIND(".",B2,1)+1,FIND(".",B2,FIND(".",B2,1)+1)-FIND(".",B2,1)-1),LEFT(B2,FIND(".",B2,1)-1)),"yyyy-mm-dd")41882,41882,--TEXT(DATE(RIGHT(C2,(LEN(C2)-FIND(".",C2,FIND(".",C2,1)+1))),MID(C2,FIND(".",C2,1)+1,FIND(".",C2,FIND(".",C2,1)+1)-FIND(".",C2,1)-1),LEFT(C2,FIND(".",C2,1)-1)),"yyyy-mm-dd")),"d")
我是需要针对某个月份的入住天数进行统计啊