Power BI - 查找匹配百分比(赏金 100)前后的假设分析
Power BI - Find the % matching (Bounty 100) What-if analysis before and after
我有一个要求,我有一个像这样的 table,
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 - 我选择了数据分析师 - 其实际技能是 R,Python 和 SQL
- 从过滤器 2 - 我选择了一项新技能 (Upskill) 作为 Excel。
所以现在,他有4个技能。
因此对于业务分析师 - Visual 中的第 1 行 Table
%Skills without upskilling - 只有 SQL 来自 Data Analyst 的技能与 Business Analyst 技能相匹配,所以它在提升技能之前是 50%。
但是在使用 excel 提高技能后,它变成了 100% 的业务分析师技能。
升级后他有 4 项技能,但其中 2 项(R 和 Python),他不会在 Business Analyst 中使用 Role.That 显示在 table.
我想展示的想法是 - 所选角色的技能组合与另一个角色匹配的百分比。
所选角色的技能组合在升级后与另一个角色匹配的百分比。
很高兴基于此创建新的 tables 并根据需要重新塑造数据。
嗯,我认为这里的关键是一个好的模型。
The Idea is I am trying to show - How much percentage the skillsets of the selected role is matching with another role.
对于第一个问题,您需要定义关系以评估匹配项并据此计算百分比。我会做以下事情:
正在创建 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
假设现在你 select Max Mustermann
for Business Analyst
on your Person table 并得到以下结果:
Name Skill JobID
Max Mustermann Excel 1
Max Mustermann SSRS 1
现在您需要将上面的结果与 MaxSkillTable
匹配,其中 JobID 相同。您将获得两个匹配项(Excel 和 SSRS)。这将是您的第一个结果。之后,您可以 select 此工作的最大技能数(Excel,SSRS,Power-BI = 3)。这将是第二个结果。当你有这两个结果时,你可以计算百分比。
对于 Max Mustermann
它将是 2 / 3
所以大约。 66%
.
关于你的第二个问题,
How much percentage the skillsets of selected role is matching with another role after upskilling.
您可以同时增加 Max Mustermanns
技能的数量。他查询的结果是两个技能。所以2 + 1 = 3
。现在再次计算基于此增量的百分比。 3 / 3 = 1 = 100%
(这里你需要注意不要增加超过最大值)。
这里的关键是要为您的切片器设置明显不相关的 table。
让我们称你的原始 table Jobs
.
创建两个新的 table:
Role = DISTINCT(Jobs[Role])
Skills = DISTINCT(Jobs[Skills])
现在我们有了这些 table,我们可以用它们创建切片器并将选定的值读入我们的度量中。
% 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], ", " )
结果应如下所示:
您可以添加一些逻辑来隐藏您在矩阵视觉对象中选择的角色,但我在这里保持简单。
我有一个要求,我有一个像这样的 table,
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 - 我选择了数据分析师 - 其实际技能是 R,Python 和 SQL
- 从过滤器 2 - 我选择了一项新技能 (Upskill) 作为 Excel。
所以现在,他有4个技能。
因此对于业务分析师 - Visual 中的第 1 行 Table %Skills without upskilling - 只有 SQL 来自 Data Analyst 的技能与 Business Analyst 技能相匹配,所以它在提升技能之前是 50%。
但是在使用 excel 提高技能后,它变成了 100% 的业务分析师技能。
升级后他有 4 项技能,但其中 2 项(R 和 Python),他不会在 Business Analyst 中使用 Role.That 显示在 table.
我想展示的想法是 - 所选角色的技能组合与另一个角色匹配的百分比。
所选角色的技能组合在升级后与另一个角色匹配的百分比。
很高兴基于此创建新的 tables 并根据需要重新塑造数据。
嗯,我认为这里的关键是一个好的模型。
The Idea is I am trying to show - How much percentage the skillsets of the selected role is matching with another role.
对于第一个问题,您需要定义关系以评估匹配项并据此计算百分比。我会做以下事情:
正在创建 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
假设现在你 select Max Mustermann
for Business Analyst
on your Person table 并得到以下结果:
Name Skill JobID
Max Mustermann Excel 1
Max Mustermann SSRS 1
现在您需要将上面的结果与 MaxSkillTable
匹配,其中 JobID 相同。您将获得两个匹配项(Excel 和 SSRS)。这将是您的第一个结果。之后,您可以 select 此工作的最大技能数(Excel,SSRS,Power-BI = 3)。这将是第二个结果。当你有这两个结果时,你可以计算百分比。
对于 Max Mustermann
它将是 2 / 3
所以大约。 66%
.
关于你的第二个问题,
How much percentage the skillsets of selected role is matching with another role after upskilling.
您可以同时增加 Max Mustermanns
技能的数量。他查询的结果是两个技能。所以2 + 1 = 3
。现在再次计算基于此增量的百分比。 3 / 3 = 1 = 100%
(这里你需要注意不要增加超过最大值)。
这里的关键是要为您的切片器设置明显不相关的 table。
让我们称你的原始 table Jobs
.
创建两个新的 table:
Role = DISTINCT(Jobs[Role])
Skills = DISTINCT(Jobs[Skills])
现在我们有了这些 table,我们可以用它们创建切片器并将选定的值读入我们的度量中。
% 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], ", " )
结果应如下所示:
您可以添加一些逻辑来隐藏您在矩阵视觉对象中选择的角色,但我在这里保持简单。