Средневзвешенное значение в расчете на душу населения по таблице не правильно - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь создать простой расчет дохода на человека, который работает с различными фильтрами в данных.У меня он работает для одной записи, однако он разбивается и неправильно агрегируется с несколькими записями.

Формула, которую я сейчас имею, просто Sum([Revenue]) / Sum([Attendance]).Это работает, когда у меня выбрано только одно событие.Тем не менее, как только я выбираю несколько шоу, оно агрегирует и не выполняет взвешенное среднее.

enter image description here

1 Ответ

0 голосов
/ 14 мая 2018

Я делаю некоторые предположения здесь, но, надеюсь, это поможет вам.Я создал файл .xlsx со следующими данными:

Event     Revenue   Attendance
Event 1   63761     6685
Event 2   24065     3613
Event 3   69325     4635
Event 4   41996     5414

Внутри Tableu я создал вычисляемый столбец для Rev Per Person.

Наконец, в выпадающем списке Analysis I 'мы включили Show Column Grand Totals.Это дает мне следующее:

Original Tableau Viz

Простое исправление

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

В Analysis / Total / Total All Using вы можете настроить агрегацию по умолчанию.Здесь мы не хотим устанавливать их все;но это полезно знать.Оставьте это там, где оно есть, и вместо этого щелкните по значению Rev Per Person Grand Total и измените его с «Автоматически» на «Среднее».

Changing Default Aggregation

Теперь вы увидите число намного ближе к ожидаемому.Final Viz with nearly expected value

Но это не совсем то, что вы ожидаете.Среднее значение всех значений Rev Per Person дает нам $ 9,73;но если вы возьмете общий доход / общую посещаемость, вы ожидаете значение 9,79 доллара.

Небольшое более активное исправление

Сначала - отмените простое исправление.Мы будем держать все итоги в «По умолчанию».Вместо этого мы изменим вычисление Rev Per Person.

IF Size() > 1 THEN
    // Grand Total
    SUM([Revenue]/[Attendance])
ELSE
    // Regular View
    SUM([Revenue])/SUM([Attendance])
END

Size () используется для определения, выполняется ли вычисление для отдельной ячейки или нет.

Дополнительная информацияРазмер () и аналогичные функции можно найти на веб-сайте Tableau здесь - https://onlinehelp.tableau.com/current/pro/desktop/en-us/functions_functions_tablecalculation.html

Теперь я вижу ожидаемое значение $ 9,79.

Correct Value

...