Рассчитайте баллы за вопросы, основываясь на количестве ответов «да» в подвопросах - PullRequest
0 голосов
/ 19 февраля 2019

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

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

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

Например, для обследования, завершенного опросомИдентификатор A1 (идентификатор опроса, чтобы отличить разные завершенные опросы), для Q1 задано 5 пунктов, а для опроса A2 - Q1.

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

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

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

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

| 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, если ответ «нет».

enter image description here

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

Баллы за каждый опрос должны быть:

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

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

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

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

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

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

Example table

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

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

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

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

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

1 Ответ

0 голосов
/ 20 февраля 2019

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

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% для обоих опросов.

...