Страницы: 1
RSS
Как мерой DAX рассчитать расходы товара со складов, зная, как изменялись остатки.
 
Доброго дня, уважаемые форумчане!

Есть две таблицы:
1. Указан приход товара. Каждый месяц появляется новый склад со своим количеством товара и далее товар на него не поступает.
2. Указаны остатки на складах на каждый месяц.
Я хочу вычислить, сколько товара расходуется с каждого склада каждый месяц. Для этого  из остатка прошлого месяца нужно вычесть остаток текущего месяца. Использую такую конструкцию:
Код
CALCULATE(SUM('Остат'[Остаток]);PREVIOUSMONTH('Остат'[Дата остатка]))-SUM('Остат'[Остаток])
Только вот эта формула не учитывает, что появляются новые склады и товар на них из первой таблицы.
Прошу помочь с формулой. Файл пример прикладываю.
 
Можно объединить таблицы в одну:
  • или сделать в PQ слияние по номеру склада и дате, присоединив таблицу Прих к таблице Остат,
  • или, так как у вас таблицы связаны по дате,и если я правильно понимаю, в одну дату только на один склад есть приход, то можно в Power Pivot создать вычисляемый столбец с формулой = RELATED('Прих'[Приход]),
чтобы у вас появился еще один столбец Приход.
Тогда просто добавляете в свою формулу
Код
+SUM('Остат'[Приход])
Если не хотите так менять данные, то вот такие формулы могут помочь:
Код
Сумма остаток =
SUM ( 'Остат'[Остаток] )
Код
Сумма прихода =
CALCULATE (
    SUM ( 'Прих'[Приход] );
    FILTER (
        'Прих';
        'Прих'[Дата прихода] = MIN ( 'Остат'[Дата остатка] )
            && 'Прих'[Номер склада] = MAX ( 'Остат'[Номер склада] )
    )
)

Тогда вот так (с учетом правильного подсчета в итогах строк и столбцов):
Код
Расход =
SUMX (
    ADDCOLUMNS (
        SUMMARIZE ( 'Остат'; 'Остат'[Дата остатка]; 'Остат'[Номер склада] );
        "Value";
            CALCULATE ( [Сумма остаток]; PREVIOUSMONTH ( 'Остат'[Дата остатка] ) ) - [Сумма остаток] + [Сумма прихода]
    );
    [Value]
)

но, конечно, по-хорошему надо менять модель данных - сделать справочник складов, справочник дат (календарь), и использовать в сводной данные из них, тогда вообще всё просто было бы
F1 творит чудеса
Страницы: 1
Наверх