Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Использование функции КУБЗНАЧЕНИЕ с указанием временных промежутков
 
s_bag, спасибо!
Нестандартное накопление в сводной таблице
 
Важно! Заменил вложение по отношению с первоначальным. Там была ошибка из-за которой существенно съехали данные. Прошу простить если кого-то запутал окончательно. Все поправил, добавил в файле более внятное описание.
Нестандартное накопление в сводной таблице
 
Добрый вечер, прошу помочь рассчитать  нестандартный накопительный итог в сводной таблице.
Во вложенном файле на вкладке "test" построена сводная таблица на основе исходных "income" и "tstamps" со следующей мерой:
Код
m1:=CALCULATE(
   SUMX(
      FILTER(
         income;
         IF([tstamp_inc] < TODAY(); IF([tstamp_inc] <= [date_inc]; [data_type_inc] = 1; [data_type_inc] = 3);0)
      );
      [dds_inc]
   );
   FILTER(
      ALL(tstamps[tstamp]); tstamps[tstamp] <= MAX(tstamps[tstamp])
   )
)
где tstamp - столбцы, date_inc - строки, dds_inc значения. data_type_inc - тип данных в таблице принимает значения: 1 - "динамический план", 3 - "факт".
Как ее скорректировать, чтобы после суммирования накопительным итогом в разрезе tstamp таблица выглядела, так как на втором листе - "правильно" т.е.,
например, если TODAY() = 01.03.2020 (привязывается к дате на компьютере), тогда:
если tstamp(tst) = январь и date_inc(di) = с января по декабрь, то data_type_inc(dt) = 1
если tst = февраль и di = январь, то dt = 3,
если tst = февраль и di = с февраля по декабрь, dt = 1,
если tst = март и di = с января по февраль, то dt = 3,
если tst = март и di = c марта по декабрь, то dt = 1,
если tst = апрель и позже,
то исходя из условия меры: IF([tstamp_inc] < TODAY()) = false, то 0, т.е. игнорируются данные (если они даже есть) в апреле и более поздних месяцах, но попадает то, что накоплено до апреля.
Сейчас все верно считается, кроме того, что при накоплении например, для tst = февраль и di = январь, попадают значения dt = 3 и dt = 1, а нужно только dt = 3, т.е. после суммирования нарушается условие заложенное в мере.
Прошу простить за сложное описание, надеюсь в самих табличках будет яснее.
Вторую неделю голову ломаю, не могу понять возможно ли так сделать в принципе или нет.
Напрашивается манипулирование данными уже готовой сводной таблицы, но видимо, у меня не хватает знаний в Dax.
Изменено: Den_v - 17.11.2020 20:50:27
Не удается создать накопительную меру
 
Максим Зеленский, благодарю за детальное разъяснение. Теперь вроде дошло. Думаю такие тонкости будут многим интересны.
Создав календарь timestamp, связанный с таблицей income (timestamp[tstamp] = income[tstapm_inc]) и поправив меру1, получил именно то, что хотел.
Не удается создать накопительную меру
 
Андрей VG, спасибо. Очень помогли. Решение не костыльное, а в самую точку. На самом деле, я и планировал сделать отдельную таблицу для временных меток (tstamp), так как они будут в двух таблицах. Просто не дошел до этого и решил опробовать на одной.
Однако, удивлен, что это работает только так.
Не удается создать накопительную меру
 
Доброго времени суток. Пересмотрел кучу тем на форуме и в интернете, но так и не могу сделать меру, которая была бы аналогична столбцу с накоплением. Чтобы было понятно, что хочу получить, прикладываю файл.
В сводной таблице два поля значений "Приток прогноз" и "мера1". Нужно, чтобы мера1 считалась точно также как Приток прогноз. Стандартный механизм с дополнительным вычислением не подходит, так как для меры1 нужно будет потом делать доп. вычисление - отличие.

Создаю меру:
Код
=CALCULATE(
   SUM(income[dds_inc_dynamic]);
   FILTER(
      ALL(income[tstamp_inc]); income[tstamp_inc] <= MAX(income[tstamp_inc])
   )
)
Но с накоплением правильно считаются только общие итоги. В разрезе статей прихода накопление не учитывается.
Подскажите, пожалуйста, кто знает.
Изменено: Den_v - 29.10.2020 22:40:09
Страницы: 1
Наверх