已知入职日期和离职日期,怎么用函数求每月的在职人数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知入职日期和离职日期,怎么用函数求每月的在职人数?相关的知识,希望对你有一定的参考价值。

例如全年人员明细表中,入职日期在A列,离职日期在B列(未离职的显示为空),要怎么用函数计算1-12月每个月的在职人数呢?
谢谢!

=SUM(IF(VALUE($A$2:$A$10)>0,ROW(1:1),""))-SUM(IF(VALUE($B$2:$B$4)>0,ROW(1:1),""))
A代表入职引用范围,你有多大你可以自己引用
b代表离职
先用if判断是否有逻辑值,如果没有就返回逻辑值,你也可以选择性粘贴数值将所有的区域变成数值,然后就可以不用IF判断,直接count判断
首先你在职的范围选择在你筛选的月份之前
首先你必须把离职的范围选择在你离职的月份,然后到了2月 你就多添加2月这个看你表格是否更新了离职和在职人的数据
参考技术A 不知道你这个半月是怎么算的,这里举例必须整月均在职才算的。如,2018年4月全月在职的:
=COUNTIFS(A:A,"<=2018/4/1",B:B,">=2018/4/30")

求excel数字换算公式

如附图所示:已知A、D两列数据,分别对应B列的日期和E列的时间(尚不确定其秒数)。求黄色区域所对应的日期及时间分别是什么数值?跪求换算公式极其原理。正确还可加分。

一个全数字的A、D列是UNIX时间戳,
通常日期转换成UNIX时间戳的公式是(X-70*365-19)*86400-8*3600,其中X就是EXCEL的通常格式的日期
原理是unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
我不知道你的第二列设置为日期+时间格式时带不带时分秒了,如果带了,直接用上述公式就可以了,以13行为例:
A13=(B13-70*365-19)*86400-8*3600
否则的话全把B列和F列相加转换成带时间的日期再做。追问

B列和D列,不管怎么设置单元格格式,都显示不出日期、时间来,带时分秒、不带时分秒都不行,也许还是单元格属性设置的不对?如果是属性设置的不对,那应该设置成什么格式?
显然你的这个公式出来的数与绿色区域的数还少3位数,但根据公式计算出来的数字与已知的那些的前5位是一样的。

追答

不好意思没看清,你的A列是毫秒,还需要*1000

这样的话,2017-2-13 17:34转换结果是1486978440000。从你的图里看不出秒和毫秒,所以,A2的正确数字是2017-2-13 17:34:30.715 转换过来的
A3是2017-2-13 16:41:32.507

参考技术A 日期和时间显示不全吧,相同日期对应数值不同,就相当于没有规律了。把日期和时间全部设置成包含分钟和秒的日期看一下。最好把附件贴上来。追问

只知道图中的数据,A列和D列值是从vivo手机导出来的.csv短信文件里的日期和时间,把单元格设置成任何日期、时间格式,都显示为无限长的“#”,在手机里查看短信,各数值对应的就是B列及E列对应的日期和时间。

追答

应该就是另一个高手回答的时间戳了,显示#是因为单元格不够宽吧。

追问

单元格够宽也显示#号,我无限扩大单元格宽度,一直全都是#
我就想知道,这数值是怎么换算成日期跟时间的?在网上查了一些,有些说这些数值是秒数,从1970年1月1日0点开始,但是这秒数算出来,差距还是很大,但又好像有点联系,计算出的结果前5位数是一样的,

追答

按照下面的公式验证是正确的,只是你贴出来的数字是毫秒,不是秒,需要先除以1000,然后在转换就可以了。你B列和E列显示绝对有问题。。。

追问

G16中的公式不全啊,按照你显示出来的公式,时间是对的,日期是1947年5月12日
另外,如果把日期及时间换算回数值,应该是什么公式?

追答

(日期-1970/1/1)*24*60*60*1000-8*60*60*1000

以上是关于已知入职日期和离职日期,怎么用函数求每月的在职人数?的主要内容,如果未能解决你的问题,请参考以下文章

要统计不同部门的每月在职员工数&离职员工数

excel中如何计算每个月每个部门员工在职人数

求根据入职日期计算工龄的公式,并附带解释。

excel中如何计算每个月员工在职人数

SQL Server的四个查询语句,题目在内容里

Java语言,已知一个年月日的日期,获取该日期是这一年的多少天...........