Power BI - Найти% соответствия (Bounty 100) Что, если анализ до и после - PullRequest
3 голосов
/ 01 мая 2019

У меня есть требование, где у меня есть такая таблица,

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,

enter image description here

Объяснение первого результата для бизнес-аналитика в Power BI Visual Table,

  1. Из фильтра 1 - я выбрал Data Analyst, чьи навыки - R, Python и SQL
  2. Из фильтра 2 - я выбрал новый навык (Upskill) в качестве Excel.

Так что теперь у него 4 навыка.

То есть для бизнес-аналитика - строка 1 в визуальной таблице % Навыков без повышения квалификации - только навык SQL из Data Analyst совпадает с навыками Business Analyst, поэтому его значение составляет 50% до повышения квалификации.

Но после повышения с помощью Excel он становится 100% навыком бизнес-аналитика.

У него есть 4 навыка после повышения квалификации, но 2 из них (R и Python) он не будет использовать в роли бизнес-аналитика. Это показано в последнем столбце таблицы.

Идея в том, что я пытаюсь показать - какой процент наборов навыков выбранной роли совпадает с другой ролью.

Сколько процентов наборов навыков выбранной роли совпадает с другой ролью после повышения квалификации.

Достаточно счастлив, что создал новые таблицы на основе этого и изменил необходимые данные.

Ответы [ 2 ]

1 голос
/ 06 мая 2019

Главное здесь - иметь разные несвязанные таблицы для ваших слайсеров.

Давайте назовем вашу исходную таблицу 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], ", " )

Результат должен выглядеть примерно так:

Result

Вы можете добавить некоторую логику, чтобы скрыть роль, выбранную вами в матричном визуальном элементе, но здесь я упрощаю.

0 голосов
/ 06 мая 2019

Хм, я думаю, что ключ здесь - хорошая модель.

Идея в том, что я пытаюсь показать - какой процент наборов навыков выбранной роли совпадает с другой ролью.

Для первого вопроса вам нужно определить отношения, чтобы оценить совпадения и рассчитать, исходя из этого, процент. Я бы сделал следующее:

Создание 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

Допустим, теперь вы выбрали Max Mustermann для Business Analyst в своей таблице Person и получили следующий результат:

     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% (здесь вам нужно позаботиться о том, чтобы не увеличить счет сверх максимума).

...