Страницы: 1
RSS
Расчет остатков на начало и конец периода в сводной таблице
 
Добрый день! Подскажите пожалуйста или направьте на нужную тему форума для решения следующей задачи. Есть база с движением материалов по складам. Основные поля - Дата, Склад, Тип (Приход/Расход), Объем. Пытаюсь построить отчет о движении за месяц посредством сводной таблицы. Если с приходом и расходом все понятно, то остатки на начало периода для меня большая проблема. В этой же базе есть остатки на начало года (Тип[Остаток]). Предполагаю, что решение в области DAX. Прошу помощи!
Изменено: Федор Логачев - 01.04.2022 03:55:11 (Вставил пример. "Суммеслимн" подошла бы при статичной номенклатуре остатков, она к сожалению постоянно изменяется.)
 
решение в области СУММЕСЛИМН
и формула станет немного проще если Тип Остаток заменить на тип Приход
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Федор Логачев написал:
Предполагаю, что решение в области DAX.
Можно, конечно, и другими способами, но в DAX решается :)
Только пример за Вас кто составлять будет?
 
Цитата
написал:
решение в области СУММЕСЛИМН
"Суммеслимн" подошла бы при статичной номенклатуре остатков, она к сожалению постоянно изменяется. Остатки здесь как стартовая точка отсчета.
Изменено: Федор Логачев - 01.04.2022 03:59:10
 
Цитата
написал:
Можно, конечно, и другими способами, но в DAX решается Только пример за Вас кто составлять будет?
Пример вставил. Буду благодарен за любые предложения. Чем проще, тем лучше. Стандартные способы перепробовал. Можно конечно решить через СУММЕСЛИМН, но номенклатура остатков постоянно меняется, придется каждый раз в отчете её править(
 
Федор Логачев, в примере у Вас нет начальных остатков. Я такой тип в мере назван "Начальный остаток".
Изменено: surkenny - 01.04.2022 09:21:57
 
Цитата
написал:
в примере у Вас нет начальных остатков. Я такой тип в мере назван "Начальный остаток".
Cпасибо огромное!!! Немного изменил код и все заиграло - рассчитался не начальный остаток, а конечный. Начальный затем от конечного.

=VAR curMinDate =
   MAX ( 'Движение'[Дата] )
VAR initialRest =
   CALCULATE (
       SUM ( 'Движение'[Объем] );
       'Движение'[Тип] = "Остатки";
       'Движение'[Дата] <= curMinDate;
       ALL ( 'Движение'[Год]; 'Движение'[Месяц]; 'Движение'[Месяц№] )
   )
VAR result =
   initialRest
       + CALCULATE (
           [Приход] - [Расход];
           'Движение'[Дата] <= curMinDate;
           ALL ( 'Движение'[Год]; 'Движение'[Месяц]; 'Движение'[Месяц№] )
       )
RETURN
    result
 
surkenny,моя радость была несколько преждевременной. Все вроде работает нормально. Остатки рассчитываются корректно. Да вот незадача. В сводной отображается не вся номенклатура (???) - только та по которой есть движение в периоде (приход/расход), при этом итоговые остатки по группе рассчитываются корректно. И более того, в первом (январе) месяце такой проблемы нет (стартовые остатки кстати как раз на 01.01.22), во всех последующих - да. Отображение элементов без данных включено, да и не в этом дело - данные то есть). Помогите пожалуйста. Файл прилагаю.

Спасибо!
Изменено: Федор Логачев - 07.04.2022 04:44:00
 
Федор Логачев, все очень просто: при указании какого-то периода в контексте фильтра видна только та номенклатура, которая встречается в строках таблицы движения за это период. Поэтому весь номенклатура должна быть в отдельном справочнике, а таблица движения связана с этим справочником.
Почитайте немного про модели данных  Power PiVot.
Желательно еще и календарь сделать отдельным справочником.
Справочник уникальных номенклатур можно "сделать" из Ваших же исходных данных в запросе Power Query. Календарь там же (можно его делать и в PP "одной кнопкой", но вручную нужно будет его обновлять, когда изменятся периоды движения.
 
surkenny, Спасибо за советы!!! Пришлось повозиться, но все заработало в итоге.
Изменено: Федор Логачев - 14.04.2022 04:28:29
Страницы: 1
Наверх