106_Power Pivot之HR入离调转、在职、离职率相关指标
博客: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、花名册

2、人员异动

3、部门表

4、日期表

建立关系如下:

三、度量值
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的使用;
3、构造特定业务的上下文,这个案例主要是时间类的上下文。
by焦棚子
106_Power Pivot之HR入离调转、在职、离职率相关指标的更多相关文章
- 115_Power Pivot之HR薪酬计算:公积金、社保、个税、实发工资相关
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 1.之前写了一个关于入离调转的pp应用,现在个税新增专项附加扣除项目,借此写一个关于薪酬计算的案例: 2.本案例 ...
- 运维相关指标数据采集并ES入仓 - 运维笔记
为了进行数字化IT治理,需要对一些应用进程相关指标进行采集并入库.收集到的应用指标数据最好要进行ES入仓,入到Kafka里面,并通过Kibana可视化展示. 需要进行采集的应用进程相关指标如下: ES ...
- 已知某公司总人数为W,平均年龄为Y岁(每年3月末计算,同时每年3月初入职新人),假设每年离职率为x,x>0&&x<1,每年保持所有员工总数不变进行招聘,新员工平均年龄21岁。 从今年3月末开始,请实现一个算法,可以计算出第N年后公司员工的平均年龄。(最后结果向上取整)。
// ConsoleApplication12.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" // ConsoleApplication1 ...
- 114_Power Pivot 销售订单之销售额、成本、利润率相关
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 双十二回来后遇到一个比较有意思的计算销售额和利润率的需求(见下文说明). 先看下效果. 结果 说明: 1.订单表 ...
- HR数据分析常用的50个公式
HR数据分析常用的50个公式 HR经常需要和数据打交道,如入职率.离职率.加班费计算等.虽然日常工作中,单个数据的计算并不麻烦,但几十上百个累计在一起,确实很容易混淆,甚至计算失误.今天小编急HR之所 ...
- HR招聘_(一)_招聘意识
最近接触到一点HR的工作,贯穿始终,故有点心得,与众人分享.言辞不尽之处,万望指点一二.不胜感激. HR招聘_(一)_招聘意识HR招聘_(二)_招聘方法论(招聘原因及原则) HR招聘_(三)_招聘方法 ...
- 腾讯内部举报信曝光: HR内斗混乱 玩弄求职者
来自:http://www.guigu.org/news/guigushijie/2013102140759.html 腾讯CEO马化腾正在内部大搞思想整风运动,此时,猎云网独家获得数封来自腾讯内部的 ...
- [转帖]HR职能划分三支柱模型
HR职能划分三支柱模型 http://blog.sina.com.cn/s/blog_afbd12640101o5hf.html COE(Centre of Excellence or Center ...
- 数据可视化之分析篇(十)Power BI应用:如何计算在职员工数量?
https://zhuanlan.zhihu.com/p/128652582 经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如: 已知合同的生效日期和到期日期,特定日期的有效合同有 ...
随机推荐
- IOS中弹出键盘后出现fixed失效现象的解决方案
概述 这个问题常出现在移动web开发中聊天或者留言页面的绝对定位输入框上,页面超过屏幕大小时候输入框focus状态下(键盘弹出)绝对定位的元素失效,导致页面滚动时候把定位元素一并带走,体验十分不好,在 ...
- html5知识点补充—mark元素的使用
使用mark元素高亮文本 利用mark元素,文档作者可以高亮显示文档中的某些文本以达到醒目的效果. 如果用户在站点进行搜索,搜索页面中的关键字可以高亮显示.这时,就可以很好的利用到mark元素.不选用 ...
- 使用 Blueprint 要注意 render_template 函数
此文章主要是为了记录在使用 Flask 的过程中遇到的问题.本章主要讨论 render_template 函数的问题. 使用 Flask 的同学都应该知道,项目中的 url 和视图函数是在字典里一一对 ...
- 学习如何运用GitHub网站+出现的问题+Git基本操作总结
首先介绍一下GitHub网站: github是一个基于git的代码托管平台. GitHub 拥有一个非常鼓励合作的社区氛围.这一方面源于 GitHub 的付费模式:私有项目需要付费,而公共项目完全免费 ...
- 获取iframe引入页面内的元素
在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素.js在父窗口中获取iframe中的元素1. 格式:window ...
- 接口和抽象类的区别(不讲废话,干货满满,JDK1.8最新整理)
接口和抽象类的区别(不讲废话,干货满满,JDK1.8最新整理) 1.抽象类 以下说辞可能不太准确,但是会让你醍醐灌顶 抽象类是把一些具有共同属性(包括行为)的东西抽象出来,比如: 小狗有身高,体重,颜 ...
- Python入门-pip模块管理工具
安装 # 在线安装 pip install <包名> 安装后,该模块文件会在安装python环境目录:lib/packages目录下 # 安装本地安装包 pip install <目 ...
- 阿里云-部署-服务-Docker
目录 ♫ MusicPlayer Naiveboom - 比较安全 个人阿里云部署的小服务,欢迎使用,服务器资源有限,如果遇到卡顿还请谅解~ 索引: 在线音乐播放器 阅后即焚 ♫ MusicPlaye ...
- ethool的使用
ethtool命令 网络配置 ethtool命令用于获取以太网卡的配置信息,或者修改这些配置.这个命令比较复杂,功能特别多 语法 ethtool [ -a | -c | -g | -i | -d | ...
- show binary logs
列出服务器上的二进制日志文件.该语句用作" purge binary logs语句"中描述的过程的一部分,该过程显示了如何确定可以清除哪些日志. show binary logs ...