tft每日頭條

 > 科技

 > power bi 實例有哪幾種使用方式

power bi 實例有哪幾種使用方式

科技 更新时间:2025-01-23 02:10:24

本文分享一個父子層級結構的計算思路,源于昨天遇到星友提出這樣一個問題,有兩列數據,一列是邀請人、一列是被邀請人,示例如下圖:

power bi 實例有哪幾種使用方式(利用一個應用場景)1

被邀請人還可以繼續邀請其他人,并且所有的下級都視作上級的邀請,如何計算每個人的邀請人數?

這種需求是不是很常見,邏輯描述起來非常簡單,但是計算并不容易,因為這種結構的數據雖然隻有兩列,但邀請人和被邀請人是可以來回變動的,每個人的角色并不固定,并且下面有多少邀請層級也是未知。

這種數據結構就是父子層級結構,邀請人是父級别,被邀請人是子級别,在PowerBI中,有一類DAX函數,父子函數,專門處理這種結構的計算,它可以将父子層級結構轉換為扁平的普通層級結構。

下面就以上面的需求為例,來介紹PowerBI處理這種計算的思路,并見識一下父子函數的用法。

步驟如下:

1. 補充完善原始數據

為了方便使用父子函數,我們需要先對上面示例的數據進行補充整理,為父子結構添加編号。

因為父子函數要求,所有父級列的數據都必須存在于子級列中,所以對于以上示例,添加一行,将最頂級的人員“李一”,添加到被邀請人中,這也容易理解,所有的人都是被邀請人,隻是最頂級的人員,無上級邀請人而已。

然後對子級列,也就是每個被邀請人添加一列編号,并相應的把邀請人的編号匹配上去,你也可以先在Excel中做好這個表:

power bi 實例有哪幾種使用方式(利用一個應用場景)2

這個表完善以後,下面就可以利用父子函數來轉換層級了。

2. 将父子結構轉換為普通層級結構

以下計算都是利用計算列完成,首先利用PATH函數來獲取完整的層級路徑:

層級路徑 =

PATH('結構表'[被邀請人編号],'結構表'[邀請人編号])

power bi 實例有哪幾種使用方式(利用一個應用場景)3

PATH函數有兩個參數,第一個參數是子級的列,第二個參數是父級的列,它的計算結果是層級的完整路徑,用 “|” 分割,通過這個路徑,你可以看出每個人的上下級關系。

有了路徑之後,下面就可以計算每一層級的人員。

第一層級可以這樣來寫:

power bi 實例有哪幾種使用方式(利用一個應用場景)4

這裡用到的父子函數是PATHITEM,它可以從層級路徑中獲取某一個層級的值,第二個參數是1,就是獲取第一層級的值,這個例子第一層級都是1。

然後利用LOOKUPVALUE函數,從被邀請人編号中,找出1對應的被邀請人名稱,也就是“李一”,所有人的第一級邀請人都是他。

同理,通過更改PATHITEM函數的第二個參數,獲取第二、第三、第四個層級分别是誰:

power bi 實例有哪幾種使用方式(利用一個應用場景)5

上表中的後面四列是4個層級,就是我們常見的普通層級結構。

如果層級很多,無法一眼看出每個人有多少個層級,還有個父子函數是PATHLENGTH,它用來計算層級的深度:

power bi 實例有哪幾種使用方式(利用一個應用場景)6

這樣就可以看出每個人的上級有幾層了,後面也會用到這個深度。

3. 展現結果

有了上面的普通層級結構,就可以很方便的計算出每個人的邀請人數了,寫個度量值:

邀請人數 =

DISTINCTCOUNT('結構表'[被邀請人])-1

因為計算邀請人數時,不應該計算自己,所以減去1,剩下的就是本人的邀請人數。

将所有的層級放到矩陣的行中,邀請人數作為值,結果如下:

power bi 實例有哪幾種使用方式(利用一個應用場景)7

這樣就一次性得到了每個人的邀請人數。

但是有一個問題,因為每個層級都有空值,所以這個矩陣結構有太多的空結構,有必要處理一下。

思路就是讓空結構的計算結果等于空值,修正度量值如下:

power bi 實例有哪幾種使用方式(利用一個應用場景)8

這個度量值的計算邏輯是,比較當前層級結構與當前數據的層級深度,如果當前結構小于等于層級深度,正常計算邀請人數,否則返回BLANK。

這個邏輯可能不太好理解,你可以根據上下文,比如矩陣的第一行李一,對于上面度量值中的變量X,返回1,變量Y也返回1,所以滿足條件,正常計算邀請人數;而第二行,X返回2,但是Y還是1,所以不滿足條件,返回BLANK。

用這個修正後的度量值制作矩陣,效果如下:

power bi 實例有哪幾種使用方式(利用一個應用場景)9

這樣就清晰直觀了實現了該業務需求。

關于父子函數的計算,如果你剛開始接觸,會感覺非常繞,其實理解了以後,并沒有什麼難度,關鍵是理解父子結構計算的整體思路,弄明白為什麼需要将它轉換為普通的層級結構,以及如何利用父子函數進行轉換。

更多推薦:

PowerBI如何進行财年分析?

通過一個經典案例,來學習PowerBI可視化的制作思路

在PowerBI中如何快速計算員工在職天數?

power bi 實例有哪幾種使用方式(利用一個應用場景)10

采悟 | PowerBI星球

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved