數據可視化之PowerQuery篇(二十)如何計算在職員工數量?


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

​經常碰到的一類問題是,如何根據起止日期來計算某個時間點的數量,比如:

  • 已知合同的生效日期和到期日期,特定日期的有效合同有多少?
  • 已知店鋪的開業日期和注銷日期,截至目前正在運營的店鋪有多少?
  • 已知員工的入職日期和離職日期,如何計算每個月底的在職員工數量?

此類問題的解決思路類似,下面就以計算在職員工數量為例,看看如何利用PowerBI來處理。

模擬數據如下,員工表中有員工姓名、入職日期和離職日期:

實現步驟如下:

 

1,建立數據模型

因為要按時間點計算,所以建立一個單獨的日期表是必要的。

這里有同學會糾結,員工表中有兩列日期,那么應該用哪個日期與日期表建立關系呢?這個看具體需求,就這個問題來說,完全可以不建立任何關系:

 

2,創建度量值

根據員工表,統計員工數量的邏輯很簡單,比如計算6月30號的在職員工數量,就是入職日期小於等於6月30日,並且沒有離職或者離職日期大於6月30日的所有員工。在度量值中,還應該考慮的是上下文是什么,因為我們是想求每個月底的數量,所以外部上下文就是月份,根據這個月份,找出該月最后一天,然后根據上面的邏輯比較就行了。這樣的計算邏輯每個人都清楚,但是可能不知道如何用DAX來表達。

度量值的寫法如下:

 

以上思路和計算邏輯都已體現在這個度量值中,並在代碼中做了注釋。

 

3,展示計算結果

將日期表中的月份和[在職員工數量]放入到矩陣中,就得出了每月底的員工數量:

 

更進一步的,如果想計算某個時間段的平均每天在職人數,只需要在上述度量值的基礎上,再寫個平均度量值:

平均在職人數 =
AVERAGEX(
VALUES('日期表'[日期]),
[在職員工數量]
)

用日期做個切片器,輸入時間段的起止日期,就可以快速計算出該時間段的平均每天人數:

 

 

使用PowerBI解決問題的基本就是以上的步驟,把這個簡單的例子搞明白了,這一類問題都會迎刃而解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM