Мера DAX для динамического расчета стоимости на основе предыдущей даты

У меня есть четыре таблицы: Daily Inventory, AFPO, RESB и EKPO.

Ежедневный инвентарь:

Идентификатор материала Дата добавления Общая стоимость 1 19.08.2024 50 2 19.08.2024 100 3 19.08.2024 1000

AFPO и EKPO имеют почти одинаковые заголовки и данные, они оба являются входящими материалами, что увеличивает стоимость запасов:

ЭКПО:

Идентификатор материала Дата доставки Ценить 1 19.08.2024 50 2 20.08.2024 100 3 21.08.2024 1000 1 20.08.2024 55 3 24.08.2024 500

АФПО:

Идентификатор материала Основная дата окончания Ценить 1 19.08.2024 40 2 20.08.2024 60 3 21.08.2024 300 1 20.08.2024 155 3 24.08.2024 250

RESB — это таблица требований с теми же заголовками, что и AFPO, но значение необходимо вычесть из общего значения ежедневного инвентаря.

РЕСБ:

Идентификатор материала Требования Дата Ценить 1 19.08.2024 200 2 20.08.2024 300 3 21.08.2024 2000 г. 1 20.08.2024 150 3 24.08.2024 700

Я пытаюсь создать меру в таблице «Дата» (она связана с AFPO, EKPO, RESB и Daily Inventory через столбец «Дата» с другими столбцами типа даты), которая имеет один столбец «Дата», начиная с текущего дня. Вот скриншот связей между таблицами:

Мера должна показывать, как изменится «Общая стоимость» ежедневного инвентаря в течение следующих 7 дней.

Дата:

Дата 19.08.2024 20.08.2024 21.08.2024 22.08.2024 23.08.2024 24.08.2024 25.08.2024 26.08.2024 27.08.2024

Вот мера, которую я попробовал, которая почти дает желаемый результат:

Inventory Forecast = 
VAR _today = TODAY()
VAR _sum =
    SUM ( 'DailyInventory'[Total Value])
VAR _else =
    SUM ( 'AFPO'[Value] ) + SUM ( 'EKPO'[Value] )
        - SUM ( 'RESB'[Value] )
-- Forecast for today's date
VAR _forecast_today =
    CALCULATE (
        SUM ( 'DailyInventory'[Total Value] ),
        'Date'[Date] = _today
    )
-- Forecast for the next 7 days
VAR _forecast_7_days =
    CALCULATE (
        SUM ( 'DailyInventory'[Total Value]),
        DATESINPERIOD ( 'Date'[Date], _today, 7, DAY )
    )
RETURN
    SWITCH (
        TRUE(),
        MAX ( 'Date'[Date] ) = _today, _forecast_today + _else,
        MAX ( 'Date'[Date] ) > _today && MAX ( 'Date'[Date] ) <= _today + 7, _forecast_7_days + _else,
        _sum
    )

Проблема с этой мерой заключается в том, что для каждого следующего дня она принимает общее значение «Ежедневной инвентаризации» текущего дня (19.08.2024), а не общее значение предыдущего дня после суммирования EKPO, AFPO и RESB.

Хотя эта мера будет действовать в первый день 19 августа 2024 г., в другие даты она не будет действовать. Например: для 21.08.2024 будет использоваться общее значение 19.08.2024 и вычтены требования от 21.08.2024 вместо значения 20.08.2024 после суммирования.

Я был бы признателен за любую помощь.

Можете ли вы поделиться данными для всех ваших таблиц и тем, как вы их связываете?

Amira Bedhiafi 19.08.2024 17:15

@AmiraBedhiafi Добавлены данные для других таблиц и их связей.

Max 19.08.2024 17:39

не могли бы вы также предоставить ожидаемый результат в таблице?

Ryan 20.08.2024 05:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте эту меру:

Inventory Forecasted (final) = 
VAR xDays = 7 //Range
VAR thisDate = MAX('Date'[Date]) 
VAR _today = TODAY()
VAR todayRange =  _today + xDays

VAR currentInv = //Gets today's inventory
    CALCULATE (
        SUMX(ALL('DailyInventory'), [Total Value]),
        DailyInventory[Date Added] = _today 
    )

VAR _AFPO = //sums Value between this date and today ignoring relationships
    CALCULATE (
        SUM(AFPO[Value]),
        AFPO[Basic finish date] <= thisDate && AFPO[Basic finish date] >= _today,
        REMOVEFILTERS()
    )
VAR _EKPO = //sums Value between this date and today ignoring relationships
    CALCULATE (
        SUM ( 'EKPO'[Value]),
        EKPO[Delivery Date] <= thisDate  && EKPO[Delivery Date] >= _today,
        REMOVEFILTERS()
    )
VAR _RESB = //sums Value between this date and today ignoring relationships
    CALCULATE (
        SUM ( 'RESB'[Value]),
        RESB[Requirements Date] <= thisDate  && RESB[Requirements Date] >= _today,
        REMOVEFILTERS()
    )
RETURN IF(thisDate >= todayRange, BLANK(), currentInv + _AFPO + _EKPO - _RESB ) //Return Blank if date outside of range

Эта мера суммирует DailyInventory[Total Value] за сегодняшний день, а затем за каждый последующий день (более 7 дней) сумма (AFPO + EKPO - RESB) будет добавляться к скользящей сумме.

Дата Инвентарь на сегодня АФПО ЭКПО РЭСБ (АФПО + ЭКПО - РЭСБ) Прогнозируемый запас (окончательный) 20.08.2024 1150 340 1050 2200 -810 340 21.08.2024 60 100 300 -140 200 22.08.2024 0 0 0 0 200 23.08.2024 0 0 0 0 200 24.08.2024 155 55 150 60 260 25.08.2024 250 500 700 50 310 26.08.2024 200 20 100 120 430 27.08.2024 400 50 200 250

Другие вопросы по теме

Powerbi Почему измерение дает разные результаты в зависимости от эквивалентных фильтров
Требуется помощь с мерой DAX для расчета последовательного расстояния в Power BI
Как обрабатывать несколько записей измерений с одинаковым именем, даже если они имеют уникальный ключ/отношение с таблицей фактов (1:M)?
Проблема с запросом DAX: расчет текущего значения с использованием расчетного значения предыдущей строки
Извлеките дату начала и окончания отпуска по болезни в запросе мощности (пробелы и острова)
Как подсчитать, имеет ли ваш столбец одинаковые значения в другом столбце в отдельной связанной таблице
Как в Power Query рассчитать общее время, отработанное за несколько дней, на основе графика рабочих смен и без учета выходных?
Ошибка измерения Dax в таблице со 100 строками, но не в таблице с 50 строками
POWERBI – DAX – RunningTotal
Необходимо вычислить количество различных чисел и процент в одной строке, используя power bi dax

Похожие вопросы

Powerbi Почему измерение дает разные результаты в зависимости от эквивалентных фильтров
Требуется помощь с мерой DAX для расчета последовательного расстояния в Power BI
Как обрабатывать несколько записей измерений с одинаковым именем, даже если они имеют уникальный ключ/отношение с таблицей фактов (1:M)?
Проблема с запросом DAX: расчет текущего значения с использованием расчетного значения предыдущей строки
Expression.Error — мы не можем преобразовать значение типа Function в тип List
Преобразование символов в дату и получение данных за последние два года
Извлеките дату начала и окончания отпуска по болезни в запросе мощности (пробелы и острова)
Игнорирование ошибки в Table.ExpandTableColumn или автоматическая замена на ноль
Как связать Power BI с рабочей областью Azure Log Analytics для анализа данных из LAW в Power BI?
Среднее время цикла в моем коде Python и виджете «Время цикла» различается