我有一个要求,我有一个这样的表:
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 中的第一个结果:
所以现在,他有4个技能。
对于业务分析师来说 - 可视表中的第 1 行 %无需提升技能的技能 - 只有数据分析师技能中的 SQL 与业务分析师技能相匹配,因此在提升技能之前为 50%。
但是在使用 Excel 进行技能提升后,它就成为 100% 的业务分析师技能。
提升技能后,他拥有 4 项技能,但其中 2 项(R 和 Python),他不会在业务分析师角色中使用。这显示在表格的最后一列中。
我的想法是试图展示 - 所选角色的技能组与另一个角色匹配的百分比有多少。
升级后所选角色的技能组与另一个角色匹配的百分比是多少。
很高兴能够基于此创建新表并根据需要重新调整数据。
这里的关键是为切片器提供不同的不相关表。
我们将您原来的桌子命名为
Jobs
。
创建两个新表:
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
选择 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%
(这里需要注意不要增加计数超过最大值)。