https://zhuanlan.zhihu.com/p/128652582

经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如:

  • 已知合同的生效日期和到期日期,特定日期的有效合同有多少?
  • 已知店铺的开业日期和注销日期,截至目前正在运营的店铺有多少?
  • 已知员工的入职日期和离职日期,如何计算每个月底的在职员工数量?

此类问题的解决思路类似,下面就以计算在职员工数量为例,看看如何利用PowerBI来处理。

模拟数据如下,员工表中有员工姓名、入职日期和离职日期:

实现步骤如下:

1,建立数据模型

因为要按时间点计算,所以建立一个单独的日期表是必要的。

这里有同学会纠结,员工表中有两列日期,那么应该用哪个日期与日期表建立关系呢?这个看具体需求,就这个问题来说,完全可以不建立任何关系:

2,创建度量值

根据员工表,统计员工数量的逻辑很简单,比如计算6月30号的在职员工数量,就是入职日期小于等于6月30日,并且没有离职或者离职日期大于6月30日的所有员工。在度量值中,还应该考虑的是上下文是什么,因为我们是想求每个月底的数量,所以外部上下文就是月份,根据这个月份,找出该月最后一天,然后根据上面的逻辑比较就行了。这样的计算逻辑每个人都清楚,但是可能不知道如何用DAX来表达。

度量值的写法如下:

以上思路和计算逻辑都已体现在这个度量值中,并在代码中做了注释。

3,展示计算结果

将日期表中的月份和[在职员工数量]放入到矩阵中,就得出了每月底的员工数量:

更进一步的,如果想计算某个时间段的平均每天在职人数,只需要在上述度量值的基础上,再写个平均度量值:

平均在职人数 =
AVERAGEX(
VALUES('日期表'[日期]),
[在职员工数量]
)

用日期做个切片器,输入时间段的起止日期,就可以快速计算出该时间段的平均每天人数:

使用PowerBI解决问题的基本就是以上的步骤,把这个简单的例子搞明白了,这一类问题都会迎刃而解。

数据可视化之分析篇(十)Power BI应用:如何计算在职员工数量?的更多相关文章

  1. 数据可视化之PowerQuery篇(二十)如何计算在职员工数量?

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

  2. 数据可视化之分析篇(六)使用Power BI进行流失客户分析

    https://zhuanlan.zhihu.com/p/73358029 为了提升销量,在不断吸引新客户的同时,还要防止老客户离你而去,但每一个顾客不可能永远是你的客户,不可避免的都会经历新客户.活 ...

  3. 数据可视化之分析篇(三)Power BI总计行错误,这个技巧一定要掌握

    https://zhuanlan.zhihu.com/p/102567707 ​前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行 ...

  4. 数据可视化之分析篇(一)使用Power BI进行动态帕累托分析

    https://zhuanlan.zhihu.com/p/57763423 通过简单的点击交互,就能进行动态分析发现见解,才是我们需要的,恰好这也是 PowerBI 所擅长的. 就帕累托分析来说,能从 ...

  5. 数据可视化之分析篇(八)Power BI数据分析应用:结构百分比分析法

    https://zhuanlan.zhihu.com/p/113113765 PowerBI数据分析02:结构百分比分析法 作者:海艳 结构百分比分析法,又称纵向分析,是指同一期间财务报表中不同项目间 ...

  6. 数据可视化之分析篇(七)Power BI数据分析应用:水平分析法

    https://zhuanlan.zhihu.com/p/103264851 首先,以财务报表分析为例,介绍通用的分析方法论,整体架构如下图所示: (点击查看大图) 接下来我会围绕这五种不同的方法论, ...

  7. 数据可视化之分析篇(五)如何使用Power BI计算新客户数量?

    https://zhuanlan.zhihu.com/p/65119988 每个企业的经营活动都是围绕着客户而开展的,在服务好老客户的同时,不断开拓新客户是每个企业的经营目标之一. 开拓新客户必然要付 ...

  8. 数据可视化之分析篇(二)Power BI 数据分析:客户购买频次分布

    https://zhuanlan.zhihu.com/p/100070260 商业数据分析通常都可以简化为对数据进行筛选.分组.汇总的过程,本文通过一个实例来看看PowerBI是如何快速完成整个过程的 ...

  9. 数据可视化之分析篇(四)PowerBI分析模型:产品关联度分析

    https://zhuanlan.zhihu.com/p/64510355 逛超市的时候,面对货架上琳琅满目的商品,你会觉得这些商品的摆放,或者不同品类的货架分布是随机排列的吗,当然不是. 应该都听说 ...

随机推荐

  1. AlertController的使用

    UIAlertView 随着苹果上次iOS 5的发布,对话框视图样式出现在了我们面前,直到现在它都没有发生过很大的变化.下面的代码片段展示了如何初始化和显示一个带有“取消”和“好的”按钮的对话框视图. ...

  2. QTabWidget 中 关于Tab 关闭和添加的基本教程!

    QTabWidget是PyQt5 中使用较为广泛的容器之一,经常会在日常使用的软件中用到它:QTabwidget是由几个标签组成,每个标签可以当作一个界面,下面就是应用Qtabwidget的一个简单例 ...

  3. hdoj3791

    题目: Problem Description 判断两序列是否为同一二叉搜索树序列   Input 开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束.接下去 ...

  4. docker 安装mysql:latest 问题

    背景 周末闲着没事,然后想着在虚拟机用docker装个mysql吧.然后就开始安装了. 正文 打开dockerhub.com,在输入框输入mysql,选择mysql第一个,进入后找到How to us ...

  5. MapReduce 论文阅读笔记

    Abstract MapReduce : programming model 编程模型 an associated implementation for processing and generati ...

  6. maven在windows10系统下安装配置和打包war

    maven下载地址:http://maven.apache.org/ 下载完成解压到 D盘 目录下D:\apache-maven-3.5.0\bin 配置maven环境变量: M2_HOME   D: ...

  7. python从文件载入字典

    data = np.load('dict_.npy') data = data.item() 不加最后一句,data不是字典类型

  8. Python实用笔记 (6)函数

    绝对值 >>> abs(100) 100 >>> abs(-20) 20 max()可以接收任意多个参数,并返回最大的那个: >>> max(1, ...

  9. Java设计模式十九——责任链模式

    责任链模式 老李的苦恼 每个人在出生的时候,都早已在暗中被标好了三六九等. 老李是一名建筑工地的木匠,和大多数生活在社会最底层的农民工一样,一辈子老实本分,胆小怕事.在他们的心中,谁当老爷都没有区别, ...

  10. JavaScript基础对象创建模式之沙盘模式(026)

    沙盘模式可以弥补命名空间模式中的两项不足之处: 使用唯一全局对象作为程序的全局变量入口,使得无法在同一程序中使用两个不同版本的API,因此它们使用的是同一个唯一的全局对象名,如MYAPP: 较长的嵌套 ...