Qliksense: вычислить медианное значение сгруппированных данных

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

Я имею в виду, что мой набор данных похож на следующий, в котором для каждой комбинации недели и возраста клиента указано общее количество покупок:  Dataset

Я хочу показать медианное значение возраста клиента, и из-за структуры набора данных я не могу использовать встроенные функции fractile или median, так как они получат что-то другое.

Предположим, я хочу рассчитать средний возраст людей за все 3 недели, чтобы знать, каков возраст людей, совершивших 50% моих покупок.

Чтобы вы лучше поняли вопрос, я показываю вам гистограмму:

Гистограмма

В данном случае медиана, которую я хочу получить, составляет 24-26 лет, поскольку 50% всего населения попадает в этот диапазон.

Я нашел здесь полезную ссылку, но у меня проблемы с написанием этой формулы в QlikSense.

https://mba-lectures.com/statistics/descriptive-statistics/603/relationship-between-quartiles-decile ...

Заранее большое спасибо.

[РЕДАКТИРОВАТЬ]: Это мое представление модели данных:

DMV

[РЕДАКТИРОВАТЬ 2]:

person FVerg    schedule 28.03.2019    source источник


Ответы (1)


Если вы хотите рассчитать медиану в таком сценарии, вам нужно взвешенное медианное значение и в основном проверить, какое значение измерения находится посередине:

Aggr(
    If(
        (Rangesum(
            Above([# Purchases],0,RowNo())
        )
        /Sum(TOTAL [# Purchases]))>=0.5 
    and 
        (Rangesum(
            Above([# Purchases],1,RowNo()-1))
        /Sum(TOTAL [# Purchases]))<0.5
    ,[Customer Age])
 ,[Customer Age])
person Hubert Dudek    schedule 29.03.2019
comment
Спасибо, Юбер. К сожалению, ваш скрипт не работает, возвращая нулевое значение как в таблице, так и на диаграмме KPI. Мне это кажется правильным, но не возвращает ожидаемого значения. - person FVerg; 29.03.2019
comment
Привет, @FVerg, я поместил свой qvf-файл с примером на свой onedrive - person Hubert Dudek; 30.03.2019
comment
Чао Хуберт. Ваш файл qvf работает как шарм. Если я попытаюсь воспроизвести вашу формулу в наборе данных, который я показал в первом посте, я не получу того же результата. Помещая RangeSums в таблицу (с CustomerAge и # Purchases), он возвращает мне 0 для каждой строки. Я думаю, что это проблема, но не понимаю, почему это происходит. Ты знаешь почему? - person FVerg; 01.04.2019
comment
Пришлите, пожалуйста, снимок экрана программы просмотра модели данных, может быть, я что-нибудь придумаю. - person Hubert Dudek; 01.04.2019
comment
Выполнено. Если я использую Sum ([# Purchases]) в RangeSums, кажется, что он работает, но я все еще не понимаю, почему. - person FVerg; 01.04.2019
comment
Я добавил свой QVF, чтобы показать, как я хотел бы использовать формулу, и объяснил в [РЕДАКТИРОВАТЬ 2], почему она работает не так, как ожидалось. Еще раз спасибо заранее - person FVerg; 08.04.2019