博客:www.jiaopengzi.com

焦棚子的文章目录

请点击下载附件

一、背景

之前有帮公司HR做了些员工入离调转、在职、人工成本分析等(体量:4000人左右)。在和其他朋友交流的时候得知,貌似这些指标在Excel中写出来比较臃肿,用表格公式做起来会比较麻烦且时间维度的交互比较难。

二、案例

在上面背景下,今天写个入离调转、在职、离职率这几个简单的指标,至于人工成本 、人员结构等分析后续有好的素材在写,这些模拟数据太麻烦了。闲话不多讲。先看下结果图。

[video width="1296" height="896" mp4="https://jiaopengzi.com/wp-content/uploads/2020/03/106_1.mp4"][/video]

根据月份的选择,结合左边基础数据验证指标

基础数据

1、花名册


1、花名册(模拟数据因为以上指标只需要表中几个关键的字段,实际工作中还有很多字段)

2、人员异动


2、人员异动;注意黄色人员在9月中的体现

3、部门表


3、部门表

4、日期表


日期表

建立关系如下:


特别注意其中实现关系和虚线关系USERELATIONSHIP的使用

三、度量值

1、习惯先把要用的度量值写出来,便于后续使用且不易出所谓“BUG”

花名册总人数

花名册总人数:=DISTINCTCOUNT('花名册'[ID])

异动总人数

异动总人数:=DISTINCTCOUNT('人员异动'[ID])

2、在上述的关系下,先把几个简单的写出来

入职

入职:=CALCULATE('花名册'[花名册总人数])

离职

由于日期建立虚线关系,需要使用userelationship

离职:=CALCULATE('花名册'[花名册总人数],USERELATIONSHIP('花名册'[离职日期],'日期表'[日期]))

异入

异入:=CALCULATE('人员异动'[异动总人数])

异出

同理,异出部门建立虚线关系,需要使用userelationship

异出:=CALCULATE('人员异动'[异动总人数], USERELATIONSHIP('人员异动'[异出部门],'部门'[部门]))

3、比较难处理的是在职的人数,主要考虑在职的定义(在职=累计入职-累计离职+累计异入-累计异出)和时间上下文

在职

在职:=VAR T =
VAR DT1 =MAX ( '日期表'[日期] )
VAR DT2 =CALCULATE ( MIN ( '日期表'[日期] ), ALL ( '日期表' ) )
RETURN
DATESBETWEEN ( '日期表'[日期], DT2, DT1 )//创建时间上下文条件
VAR RZ =CALCULATE ( '花名册'[花名册总人数], T )//累计入职人数
VAR LZ =CALCULATE ( '花名册'[花名册总人数], T, USERELATIONSHIP ( '花名册'[离职日期], '日期表'[日期] ) )//累计离职人数
VAR YR =CALCULATE ( '人员异动'[异动总人数], T )//累计异入人数
VAR YC =CALCULATE ( '人员异动'[异动总人数], T, USERELATIONSHIP ( '人员异动'[异出部门], '部门'[部门] ) )//累计异出人数
RETURN
RZ - LZ- YC + YR

月离职率

离职率定义有很多种,作如下定义:当月离职人数/当月累计在职人数(包含离职),

月离职率:=VAR T =
VAR DT1 =MAX ( '日期表'[日期] )
VAR DT2 =CALCULATE ( MIN ( '日期表'[日期] ), ALL ( '日期表' ) )
RETURN
DATESBETWEEN ( '日期表'[日期], DT2, DT1 )//创建累计时间上下文
VAR T1 =
VAR DT1 =DATEADD ( STARTOFMONTH ( '日期表'[日期] ), -1, DAY )
VAR DT2 =CALCULATE ( MIN ( '日期表'[日期] ), ALL ( '日期表' ) )
RETURN
DATESBETWEEN ( '日期表'[日期], DT2, DT1 )//创建月度离职率特定时间上下文
VAR RZ =CALCULATE ( '花名册'[花名册总人数], T )
VAR LJLZ =CALCULATE ( '花名册'[花名册总人数], T1, USERELATIONSHIP ( '花名册'[离职日期], '日期表'[日期] ) )
VAR LZ =CALCULATE ( '花名册'[花名册总人数], USERELATIONSHIP ( '花名册'[离职日期], '日期表'[日期] ) )
VAR YR =CALCULATE ( '人员异动'[异动总人数], T )
VAR YC =CALCULATE ( '人员异动'[异动总人数], T, USERELATIONSHIP ( '人员异动'[异出部门], '部门'[部门] ) )
RETURN
DIVIDE ( LZ, RZ - LJLZ - YC + YR )

来一个时间选择2018年9月定格的最终结果。


结果

四、总结

1、指标要服务业务,要理解业务;

2、虚线关系userelationship的使用;

USERELATIONSHIP 函数 (DAX)

3、构造特定业务的上下文,这个案例主要是时间类的上下文。

by焦棚子

焦棚子的文章目录

106_Power Pivot之HR入离调转、在职、离职率相关指标的更多相关文章

  1. 115_Power Pivot之HR薪酬计算:公积金、社保、个税、实发工资相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 1.之前写了一个关于入离调转的pp应用,现在个税新增专项附加扣除项目,借此写一个关于薪酬计算的案例: 2.本案例 ...

  2. 运维相关指标数据采集并ES入仓 - 运维笔记

    为了进行数字化IT治理,需要对一些应用进程相关指标进行采集并入库.收集到的应用指标数据最好要进行ES入仓,入到Kafka里面,并通过Kibana可视化展示. 需要进行采集的应用进程相关指标如下: ES ...

  3. 已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。 从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(最后结果向上取整)。

    // ConsoleApplication12.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" // ConsoleApplication1 ...

  4. 114_Power Pivot 销售订单之销售额、成本、利润率相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 双十二回来后遇到一个比较有意思的计算销售额和利润率的需求(见下文说明). 先看下效果. 结果 说明: 1.订单表 ...

  5. HR数据分析常用的50个公式

    HR数据分析常用的50个公式 HR经常需要和数据打交道,如入职率.离职率.加班费计算等.虽然日常工作中,单个数据的计算并不麻烦,但几十上百个累计在一起,确实很容易混淆,甚至计算失误.今天小编急HR之所 ...

  6. HR招聘_(一)_招聘意识

    最近接触到一点HR的工作,贯穿始终,故有点心得,与众人分享.言辞不尽之处,万望指点一二.不胜感激. HR招聘_(一)_招聘意识HR招聘_(二)_招聘方法论(招聘原因及原则) HR招聘_(三)_招聘方法 ...

  7. 腾讯内部举报信曝光: HR内斗混乱 玩弄求职者

    来自:http://www.guigu.org/news/guigushijie/2013102140759.html 腾讯CEO马化腾正在内部大搞思想整风运动,此时,猎云网独家获得数封来自腾讯内部的 ...

  8. [转帖]HR职能划分三支柱模型

    HR职能划分三支柱模型 http://blog.sina.com.cn/s/blog_afbd12640101o5hf.html COE(Centre of Excellence or Center ...

  9. 数据可视化之分析篇(十)Power BI应用:如何计算在职员工数量?

    ​https://zhuanlan.zhihu.com/p/128652582 经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如: 已知合同的生效日期和到期日期,特定日期的有效合同有 ...

随机推荐

  1. JavaScript 的Date构造函数太迷惑了。。。

    1 new Date(2021,0,1,0,0,0,0) ===> Fri Jan 01 2021 00:00:00 GMT+0800 (中国标准时间) 2 new Date(2021,1,1, ...

  2. Python实现简单用户注册信息管理系统

    运行效果: 注意:运行前请在同一目录下创建一个userdata.bin用于保存用户数据 源代码: 1 # coding:utf-8 2 ''' 3 用户注册信息管理系统 4 功能包括: 5 1.查看全 ...

  3. vue-cli打包后dist文件运行空白和背景图显示问题详解

    1.文件引用路径.我们直接运行打包后的文件夹中的index.html文件,会看到网页一片空白,f12调试,全是css,js路径引用错误的问题. 解决:到config文件夹中打开index.js文件. ...

  4. dev分支代码覆盖master分支代码

    将develop分支上的代码完全覆盖master分支, 1. 切换到master分支 git checkout master 2. 执行以下命令 git reset --hard origin/dev ...

  5. Could not autowire. No beans of 'JavaMailSenderImpl' type found

  6. 关键字static、extern、volatile、详解及举例

    一.预备知识 1. 什么是局部变量?什么是全局变量?          所谓局部变量,就是指在函数内部定义的变量的,只在该函数范围内有效. 全局变量是指,在函数外部定义的变量为外部变量,即全局变量.它 ...

  7. ELK日志保留7天-索引生命周期策略

    一.简介 ELK日志我们一般都是按天存储,例如索引名为"kafkalog-2022-04-05",因为日志量所占的存储是非常大的,我们不能一直保存,而是要定期清理旧的,这里就以保留 ...

  8. windows上用命令行我们查看机器cpu信息(使用计算器-程序员模式-四字时,查看系统类型)

    查看系统是64位还是32位 C:\Users\qingshuic>wmic os get osarchitecture OSArchitecture 64-bitC:\Users\qingshu ...

  9. 面渣逆袭:RocketMQ二十三问

    基础 1.为什么要使用消息队列呢? 消息队列主要有三大用途,我们拿一个电商系统的下单举例: 解耦:引入消息队列之前,下单完成之后,需要订单服务去调用库存服务减库存,调用营销服务加营销数据--引入消息队 ...

  10. 1.Docker容器学习之新生入门必备基础知识

    0x00 Docker 快速入门 1.基础介绍 描述:Docker [ˈdɑ:kə(r)] 是一个基于Go语言开发实现的遵循Apache 2.0协议开源项目,目标是实现轻量级的操作系统虚拟化解决方案: ...