У меня есть четыре таблицы: Daily Inventory, AFPO, RESB и EKPO.
Ежедневный инвентарь:
AFPO и EKPO имеют почти одинаковые заголовки и данные, они оба являются входящими материалами, что увеличивает стоимость запасов:
ЭКПО:
АФПО:
RESB — это таблица требований с теми же заголовками, что и AFPO, но значение необходимо вычесть из общего значения ежедневного инвентаря.
РЕСБ:
Я пытаюсь создать меру в таблице «Дата» (она связана с AFPO, EKPO, RESB и Daily Inventory через столбец «Дата» с другими столбцами типа даты), которая имеет один столбец «Дата», начиная с текущего дня. Вот скриншот связей между таблицами:
Мера должна показывать, как изменится «Общая стоимость» ежедневного инвентаря в течение следующих 7 дней.
Дата:
Вот мера, которую я попробовал, которая почти дает желаемый результат:
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 после суммирования.
Я был бы признателен за любую помощь.
@AmiraBedhiafi Добавлены данные для других таблиц и их связей.
не могли бы вы также предоставить ожидаемый результат в таблице?
Попробуйте эту меру:
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) будет добавляться к скользящей сумме.
Можете ли вы поделиться данными для всех ваших таблиц и тем, как вы их связываете?