Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Добрый день, кликеры!
Столкнулся вроде с элементарной задачей, но не понимаю как правильно написать в синтаксисе.
Необходимо посчитать долю суммы от общей суммы (по всем строкам).
Но клик отказывается выводить для каждого агента общую сумму по всем агентам, чтобы посчитать долю.
Есть всё-таки способ как вывести общую сумму напротив каждого агента?
Есть решение, но оно не кликовое - считать в доп поле итоговую сумму через over partition by, и потом я получаю долю по каждому агенту от общей суммы. Но, возможно, есть другое решение уже в самом клике?
Я попробовал уже и через aggr и через total - это не то. Он показывает правильную итоговую сумму до тех пор, пока не сделаешь фильтр по конкретным агентам, после этого он уже высчитывает тотал не по всем строкам, а по отфильтрованным агентам. Хотелось, чтобы итоговая сумма сохранялась независимо от фильтра.
Есть такой вариант - SUM({1}Денюжки). Однако, в этом случае вылезает уже другая проблема, независимо от фильтра в таблице отображаются все строки.
Добрый день!
Попробуйте вычислить общую сумму на уровне скрипта, а потом используйте в выражении в таблице.
Светлана, добрый день!
Это решение я уже описал во втором посте. Это даже ещё более гибкое решение, нежели вычислять на уровне скрипта qlik.
Но всё же интересно, как это можно реализовать в выражении непосредственно уже в таблице...
Хорошо бы выложить пример данных и вид таблицы с желаемым результатом, чтобы не играть в "угадайку".
Ещё раз - какая идея? Чтобы корректно рассчитать долю каждого агента от общей суммы за год, мне необходимо поделить сумму каждого агента на итоговую сумму всех сумм всех агентов (не обращаем внимание что написано за год, там вся выгрузка только за 17 год ).
Пока есть решение, которое полностью удовлетворяет такому расчёту это посчитать для каждого агента эту сумму через over непосредственно в запросе к бд.
ps: выбрано только 4 агента из нескольких тысяч, чтобы доля не смущала)
Попробовала так, у меня получилось.
Сначала создаем переменную (считаем итоговую сумму за Период) с выражением:
Aggr( SUM({1}Денюжки),Период)
Потом используем её в выражении вместо итоговой суммы, в таком случае она не меняется в зависимости от выборки.
И еще вариант, без переменных и необходимости выбирать определенный период из списка:
Sum(TOTAL {1 < Период={$(=If( IsNull( GetFieldSelections(Период)), '*', GetFieldSelections(Период)))}>} Денюжки)