zoukankan      html  css  js  c++  java
  • 数据可视化之分析篇(十)Power BI应用:如何计算在职员工数量?

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

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

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

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

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

    实现步骤如下:

     

    1,建立数据模型

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

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

     

    2,创建度量值

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

    度量值的写法如下:

     

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

     

    3,展示计算结果

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

     

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

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

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

     

     

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

  • 相关阅读:
    linux 命令——48 watch (转)
    linux 命令——47 iostat (转)
    linux 命令——46 vmstat(转)
    linux 命令——45 free(转)
    linux 命令——44 top (转)
    linux 命令——43 killall(转)
    linux 命令——42 kill (转)
    linux 命令——41 ps(转)
    linux 命令——40 wc (转)
    Java for LeetCode 068 Text Justification
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/12936762.html
Copyright © 2011-2022 走看看