Формула - подсчет значений сгруппированных по дате

Автор hayden, 19 марта 2019, 09:38:18

« назад - далее »

hayden

Доброго дня, коллеги!
В клике я не шибко силён, область не моя, но иногда приходится им заниматься.
Перелистал вдоль и поперек форум, но так и не смог толком ничего найти, либо у меня проблемы с формулировкой либо я первый (а вот это врядли...)
Задача такая - необходимо помесячно сгруппировать Маржу, Продажи, Премию и суммировать.
Формула = (Маржа янв + Продажи янв * Премия янв) + (Маржа фев + Продажи фев * Премия фев) + ... + (Маржа тудэй + Продажи тудэй * Премия тудэй)
Сложности:

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

Что-то мне подсказывает что последнее определенно из области фантастики, по крайней мере для Клика. Может быть есть идеи? ну или пните меня в какую-нибудь функцию?

millik

#1
Чтобы как-то вам помочь или хотя бы подсказать куда копать, нужно видеть пример структуры источника данных и какую визуализацию хотят увидеть пользователи в конечном итоге.

Вообще, клик позволяет реализовать многое, главное выбрать наиболее правильный подход/методику.
Плавающие периоды, нарастающие итоги, MTD/YTD/т.п. анализы, план-факт анализ и многое другое.

ПС
Не скажу за кликвью, но в кликсенс в таблицах и динамические колонки уже есть.

hayden

Доброго дня! Спасибо что откликнулись!
структура источника данных - вы имеете ввиду откуда тянутся данные?
14 скриптов на общий объем несколько тысяч строк, боюсь политика безопасности компании не позволяет мне привести цитирование.
Что касается визуализации - имеется сводная таблица в 90 колонок, среди них Маржа, считается как Sum(Маржа), это все что я могу сказать.
Если есть идеи как построить формулу на условных полях - приведите, пожалуйста, пример. Я пойму, абстрагироваться вроде получается. Я понимаю что основная моя проблема - незнание языка клика в сочетании со статистикой/аналитикой/бухгалтерией/математикой, это все взрывает мой мозг, я не экономист к сожалению. За любые наводки и подсказки зацеплюсь, может что и получится

hayden

Немного порассуждаю, может быть я некорректно сформулировал вопрос.
Условно в документе есть множество загруженных данных, общие фильтры, сводные таблицы.
В сводную таблицу необходимо добавить поле, значения которого будут вычислены не реагируя на общие фильтры даты/времени, а за определенный период. Можно ли в формуле указать определенный месяц за который из всего множества данные будут отбираться только за этот месяц, при этом общие фильтры должны быть проигнорированы.

millik

Да, для переопределения множеств есть SetAnalysis. С его помощью можно как корректировать множества на основе текущих отборов, так и полностью их изменять.

hayden

Sum({1<[Месяц-Год]={'янв-2019'}>}Маржа) считает и похоже что правильно!
Спасибо! то что нужно!

Осталось выяснить возможно ли из другого отчета в формате qvw загрузить отдельно пару полей, [Премия] в т.ч.

пробовал
[Премия март-2019]:
replace LOAD [Премия] as "Премия март 2019",
[Код]
FROM [C:\qv\doc\Премия - март 2019.qvw]
(XmlSimple, Table is [DocumentSummary/TableDescription]);
- полный бред, не понимаю как добраться до значений,  [DocumentSummary/TableDescription] это определенно не наше.

так тоже не получилось:
binary [C:\qv\doc\Премия - март 2019.qvw]
replace LOAD [Премия] as "Премия март 2019",
[Код]


hayden

В другом отчете вытащил пару полей дополнительным скриптом для загрузки, за жестко указанный период средствами SetAnalysis все считается на ура! :)

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

На условном языке алгоритмов (внезапно похожем на C#) я представляю это так:
int result;
foreach I in SelectedPeriod
{
   result += Sum({1<[Месяц-Год]=I>}Маржа) + Sum({1<[Месяц-Год]=I>}Продажи)*only({1<[Месяц-Год]=I>}Премия)
}
return result;

Но не могу понять как это сделать на языке формул Клика. Буду признателен за подсказки :)

Яндекс.Метрика