Подсчитайте баллы за вопросы, исходя из количества положительных ответов в подвопросах.

У меня есть таблица с вопросами и ответами, загруженными из базы данных SQL в Power BI.

Всего в анкете 10 вопросов. (Это число фиксировано).

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

Например, для опроса, заполненного с идентификатором опроса A1 (идентификатор опроса для различения различных завершенных опросов), для Q1 запрашиваются 5 элементов, тогда как для опроса с идентификатором A2 запрашиваются 3 элемента для Q1.

По каждому заданному нами вопросу есть подвопросы, и ответ на подвопросы должен быть либо «да», либо «нет». Я создаю систему баллов, чтобы смотреть ответы на каждый подвопрос по каждому пункту - я получу оценку только в том случае, если мой ответ на каждый подвопрос по каждому пункту утвердительный.

Количество подвопросов в одной и той же группе вопросов будет таким же.

Например, в разделе Q1 всегда есть 3 подвопроса для каждого элемента, который я задавал в каждом опросе, и всегда есть 2 подвопроса в разделе Q2 для каждого элемента, который я задавал в каждом опросе, независимо от того, сколько вопросов я задаю в разных опросах .

Пример данных опросов:

| Survey ID | Question | Item | Sub Question | Answer |
|-----------|----------|------|--------------|--------|
| A1        | Q1       | X    | q1           | Yes    |
| A1        | Q1       | X    | q2           | No     |
| A1        | Q1       | X    | q3           | No     |
| A1        | Q1       | Y    | q1           | Yes    |
| A1        | Q1       | Y    | q2           | Yes    |
| A1        | Q1       | Y    | q3           | Yes    |
| A1        | Q2       | X    | q1           | No     |
| A1        | Q2       | X    | q2           | No     |
| A1        | Q2       | Y    | q1           | Yes    |
| A1        | Q2       | Y    | q2           | Yes    |
| A2        | Q1       | X    | q1           | Yes    |
| A2        | Q1       | X    | q2           | Yes    |
| A2        | Q1       | X    | q3           | Yes    |
| A2        | Q2       | Y    | q1           | No     |
| A2        | Q2       | Y    | q2           | Yes    |

Выше приведен пример данных, которые я загрузил из базы данных.

Изменить: есть вопросы, к которым не прилагается список элементов. Вариантом ответа на эти вопросы будет либо «да», либо «нет». На эти вопросы я получу полную оценку, если ответ «да», и 0, если ответ «нет».

введите описание изображения здесь

Предположим, что Q1 и Q2 стоят 10 баллов.

Оценка каждого опроса должна быть:

Опрос A1: За Q1 я получаю 5 баллов. По пункту X я получаю 1 Да из 3 подвопросов, поэтому он не учитывается; по пункту Y я получаю 3 утвердительно из трех подвопросов, поэтому он считается. Я получаю оценку за 1 предмет из 2, таким образом, я получаю 5 баллов из 10.

Аналогично, за Q2 я не получаю оценку за элемент X, но я получаю оценку за элемент Y, поэтому я получаю 5 баллов за Q2.

Таким образом, моя общая оценка за опрос A1 составляет 10 баллов из 20.

Опрос A2: Исходя из той же логики, я получаю 10 баллов из 20.

Может ли кто-нибудь предложить способ построения формулы / новых таблиц для достижения моей цели?

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

Пример таблицы

Если есть какие-либо «Нет» под подвопросами для каждого элемента, я назначаю «Нет» в столбце «Проверить ответ» этого элемента. Я назначаю да для столбца ответов на проверку только из всех подвопросов, ответы на которые по этому пункту - «да».

Затем, основываясь на новой таблице, я мог напрямую рассчитать свой балл, исходя из процента ответов «да».

Из-за незнания языка Power BI я не знаю, как создать такую ​​таблицу. Может ли кто-нибудь предоставить пример кода / шагов или лучшего решения, кроме решения, которое я предложил?

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

Заранее спасибо!


person Edison Lin    schedule 19.02.2019    source источник


Ответы (1)


Вы можете создать сводную таблицу, подобную той, которая у вас есть:

SummaryTable =
    SUMMARIZE(
        Surveys,
        Surveys[Survey ID],
        Surveys[Question],
        Surveys[Item], 
        "MinAnswer", MIN(Surveys[Answer])
    )

Обратите внимание, что MinAnswer будет Yes только тогда, когда все ответы будут Yes.

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

PercentAllYes =
VAR SummaryTable =
    SUMMARIZE (
        Surveys,
        Surveys[Survey ID],
        Surveys[Question],
        Surveys[Item],
        "MinAnswer", MIN ( Surveys[Answer] )
    )
RETURN
    AVERAGEX ( SummaryTable, IF ( [MinAnswer] = "Yes", 1, 0 ) )

Это вернет 50% для обоих опросов.

person Alexis Olson    schedule 19.02.2019
comment
Привет, спасибо за ответ! Чтобы уточнить, к некоторым вопросам из моего опроса не прилагается список элементов. Например, в Q3 будет только вариант ответа «Да» или «Нет». В этом случае, как мне объединить эти 2 типа вопросов вместе и подсчитать окончательный результат? - person Edison Lin; 20.02.2019
comment
Я не могу ответить о вещах, которых нет в ваших данных примера. Как этот третий квартал будет выглядеть в вашей таблице данных? - person Alexis Olson; 20.02.2019
comment
Привет, Алексис, я отредактирую свой исходный пост с новым рисунком. - person Edison Lin; 20.02.2019
comment
@EdisonLin Та же самая логика должна отлично работать с этими новыми строками. В этом случае Item - это просто ноль в сводной таблице. - person Alexis Olson; 20.02.2019