Предложения DAX для генерации конкретного средневзвешенного показателя в PowerBI? - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь сформулировать средневзвешенные показатели в PowerBi для данных опроса.В настоящее время у меня есть следующие две таблицы (упрощенно):

Данные опроса

ID           How would you score the service?      Do you agree with X?
---------------------------------------------------------------------------
23           Fair                                  Agree
24           Poor                                  Strongly disagree
25           Fair                                  Agree
26           Very poor                             *blank*
27           Very good                             Strongly agree

Вес

Weight         Score         Likert
-------------------------------------------------
 1             Very poor     Strongly disagree
 2             Poor          Disagree
 3             Fair          Neither agree nor disagree
 4             Good          Agree
 5             Very good     Strongly Agree

В настоящее время существует взаимосвязь между 'surveydata'[How would you score the service?] и 'weights'[weight].

Формула средневзвешенного значения, которую я пытаюсь вычислить, следующая:

                (x1 * w1) + (x2 * w2) + ... (xn * wn)
Weighted Ave = ___________________________________________
                          x1 + x2 + ... xn

Где:

w = weight of answer choice
x = response count for answer choice

Для приведенного выше примера мне понадобятся две меры - средневзвешенное значение для 'surveydata'[How would you score the service?] и одно для 'surveydata'[Do you agree with X?].

Для приведенного выше примера средневзвешенная мера для 'surveydata'[How would you score the service?] должна составлять 2,8.

Обратите внимание, что одним из осложнений является тот факт, что * пусто *клетки.

Кто-нибудь может предложить способ сделать это в PowerBI с помощью рассчитанных мер (или иным образом)?

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете суммировать веса для каждой строки в вашей таблице SurveyData и делить на число строк

Weighted Ave =
DIVIDE(
    SUMX(SurveyData, RELATED(Weights[Weight])),
    COUNTROWS(SurveyData)
)

Или просто использовать среднюю функцию

Weighted Ave = AVERAGEX(SurveyData, RELATED(Weights[Weight]))
...