簡體   English   中英

Power BI - 找到%匹配(Bounty 100)之前和之后的假設分析

[英]Power BI - Find the % matching (Bounty 100) What-if analysis before and after

我有一個要求,我有一個像這樣的表,

Role              Skills
Developer           C
Developer           SQL
Developer           C++
Data Analyst        R
Data Analyst        Python
Data Analyst        SQL
Business Analyst    Excel
Business Analyst    SQL

我需要在Power BI中創建這樣的東西,

在此輸入圖像描述

在Power BI Visual Table中解釋業務分析師的第一個結果,

  1. 從過濾器1 - 我選擇了Data Analyst - 其實際技能是R,Python和SQL
  2. 從過濾器2 - 我選擇了一項新技能(Upskill)作為Excel。

所以現在,他有4個技能。

因此,對於業務分析師 - Visual Table中的第1行沒有提升技能的技能 - 只有來自Data Analyst技能的SQL才能與Business Analyst技能相匹配,因此在提升技能之前為50%。

但是在使用excel技能后,它將成為100%的業務分析師技能。

他在提升技能后擁有4項技能,但其中2項(R和Python),他將不會在Business Analyst Role中使用。這將在表格的最后一欄中顯示。

想法是我想要展示的 - 所選角色的技能組與另一個角色匹配的百分比。

提升后,所選角色的技能組與另一個角色匹配的百分比。

很高興基於此創建新表並重新塑造所需的數據。

這里的關鍵是為切片器提供截然不同的表。

我們打電話給你原來的JobsJobs

創建兩個新表:

Role = DISTINCT(Jobs[Role])
Skills = DISTINCT(Jobs[Skills])

現在我們有了這些表,我們可以用它們創建切片器並將選定的值讀入我們的度量。

% Skill Match =
VAR SelectedRole = SELECTEDVALUE ( Role[Role] )
VAR RelatedSkills = CALCULATETABLE ( DISTINCT ( Jobs[Skills] ), Jobs[Role] = SelectedRole )
VAR CurrentSkills = DISTINCT ( Jobs[Skills] )
RETURN
    DIVIDE (
        COUNTROWS ( INTERSECT ( RelatedSkills, CurrentSkills ) ),
        COUNTROWS ( CurrentSkills )
    )

這將在第一個變量中讀取您選擇的角色。 當我們提升時,我們也會讀到另一個切片器:

% Skill Match Upskilled =
VAR SelectedRole = SELECTEDVALUE ( Role[Role] )
VAR SelectedSkills = VALUES ( Skills[Skills] )
VAR RelatedSkills = CALCULATETABLE ( DISTINCT ( Jobs[Skills] ), Jobs[Role] = SelectedRole )
VAR CurrentSkills = DISTINCT ( Jobs[Skills] )
VAR Upskilled = DISTINCT ( UNION ( RelatedSkills, SelectedSkills ) )
RETURN
    DIVIDE (
        COUNTROWS ( INTERSECT ( Upskilled, CurrentSkills ) ),
        COUNTROWS ( CurrentSkills )
    )

未使用的技能測量非常相似。

Unused Skills =
VAR SelectedRole = SELECTEDVALUE ( Role[Role] )
VAR SelectedSkills = VALUES ( Skills[Skills] )
VAR RelatedSkills = CALCULATETABLE ( DISTINCT ( Jobs[Skills] ), Jobs[Role] = SelectedRole )
VAR CurrentSkills = DISTINCT ( Jobs[Skills] )
VAR Upskilled = DISTINCT ( UNION ( RelatedSkills, SelectedSkills ) )
RETURN
    CONCATENATEX ( EXCEPT ( Upskilled, CurrentSkills ), Jobs[Skills], ", " )

結果應如下所示:

結果

您可以添加一些邏輯來隱藏您在矩陣視覺中選擇的角色,但我在這里保持簡單。

嗯,我認為這里的關鍵是一個好模型。

想法是我想要展示的 - 所選角色的技能組與另一個角色匹配的百分比。

對於第一個問題,您需要定義關系以評估匹配並基於此計算百分比。 我會做以下事情:

創建MaxSkillTable

JobID    JobName               Skill
 1       Business Analyst     Power-Bi
 1       Business Analyst     SSRS
 1       Business Analyst     Excel
 2       Other jobs           Other skills for other jobs
 ...and so on

讓我們說你現在在Person表上選擇Max Mustermann for Business Analyst並獲得以下結果:

     Name         Skill    JobID   
 Max Mustermann   Excel      1     
 Max Mustermann   SSRS       1

現在,您需要匹配上面的結果,以及JobID相同的MaxSkillTable 您將獲得兩場比賽(Excel和SSRS)。 這將是你的第一個結果。 之后,您可以選擇此作業的最大技能計數(Excel,SSRS,Power-BI = 3)。 這將是第二個結果。 如果您有這兩個結果,您可以計算百分比。

對於Max Mustermann來說,這將是2 / 3 66%

對於你的第二個問題,

提升后,所選角色的技能組與另一個角色匹配的百分比。

你可以簡單地增加Max Mustermanns技能的數量。 他的查詢結果是兩種技能。 所以2 + 1 = 3 現在再次根據此增量計算百分比。 3 / 3 = 1 = 100% (這里你需要注意不要增加最大值)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM