首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >功率BI -找到%匹配(Bounty 100),如果分析前后

功率BI -找到%匹配(Bounty 100),如果分析前后
EN

Stack Overflow用户
提问于 2019-05-01 11:58:32
回答 2查看 437关注 0票数 3

我有这样一张桌子的要求,

代码语言:javascript
复制
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可视化表中为业务分析师解释第一个结果,

  1. 从过滤器1-我选择了数据分析员-其实际技能是R,Python和SQL。
  2. 从过滤器2-我选择了一个新的技能(上升技能)作为Excel。

所以现在,他有四项技能。

因此,对于业务分析师-- Visual Table %技能中的第1行技能--只有SQL来自数据分析人员技能与业务分析人员技能的匹配,因此它的50%在上升技能之前。

但是,在与excel一起提升技能之后,它就成为了业务分析师100%的技能。

他有4项技能,但其中2项(R和Python),他不会在业务分析师中使用,Role.That显示在表的最后一栏。

我的想法是,我试图显示--所选角色的技能集与另一个角色匹配的百分比。

所选角色的技能集在提升技能后与另一个角色匹配的百分比是多少。

很高兴在此基础上创建新表,并根据需要重新调整数据的形状。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-06 14:27:03

这里的关键是为您的切割机提供不同的无关表。

让我们调用您的原始表Jobs

创建两个新表:

代码语言:javascript
复制
Role = DISTINCT(Jobs[Role])
Skills = DISTINCT(Jobs[Skills])

既然我们有了这些表,就可以用它们创建切片器,并将所选的值读入我们的度量中。

代码语言:javascript
复制
% 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 )
    )

这将读取第一个变量中选定的角色。当我们提高技能时,我们也会在另一台切割机里读到:

代码语言:javascript
复制
% 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 )
    )

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

代码语言:javascript
复制
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], ", " )

结果应该是这样的:

您可以添加一些逻辑来隐藏您在矩阵可视化中选择的角色,但是我在这里保持简单。

票数 1
EN

Stack Overflow用户

发布于 2019-05-06 12:11:43

嗯,我认为这里的关键是一个好的模型。

我的想法是,我试图显示--所选角色的技能集与另一个角色匹配的百分比。

对于第一个问题,您需要定义关系来评估匹配,并在此基础上计算百分比。我要做以下几点:

创建MaxSkillTable

代码语言:javascript
复制
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 MustermannBusiness Analyst,并获得了以下结果:

代码语言:javascript
复制
     Name         Skill    JobID   
 Max Mustermann   Excel      1     
 Max Mustermann   SSRS       1

现在,您需要匹配麻省理工学院以上的结果,即MaxSkillTable,其中JobID是相同的。您将得到两个匹配(Excel和SSRS)。这将是你的第一个结果。在此之后,您可以选择此作业的最大技能计数(Excel、SSRS、Power-BI = 3)。这将是第二个结果。当您有这两个结果时,您可以计算百分比。

Max Mustermann来说,它将是2 / 3所以大约66%

关于你的第二个问题

所选角色的技能集在提升技能后与另一个角色匹配的百分比是多少。

你可以增加Max Mustermanns技能的数量。他的查询结果是两种技能。所以2 + 1 = 3。现在,在此基础上再次计算百分比。3 / 3 = 1 = 100% (在这里,您需要注意不要将计数增加到最大值)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55935908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档