如何在 Excel 计算某月员工入住天数

在网上看到您的一个回复,很专业,想请教一下:

根据员工入住及搬出日期,计算某月的入住天数
姓名 入住日期 搬出日期 入住天数
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")

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-12
直接用函数days360(入住日期,搬出日期),不是更简单吗。为什么用途if语句嵌套呢追问

我是需要针对某个月份的入住天数进行统计啊