Страницы: 1
RSS
Вывод суммы остатков в Power BI
 
Граждане, всем добрый день!
Помогите разобраться, почему мера не корректно считает итоги.
Суть: есть таблица с объектами и статусами по дням изменения.
Надо на каждую дату найти количество уникальных объектов по статусу "свободно".
НО данный статус не всегда есть в определенной дате, он может быть в предыдущей дате, и такой объект тоже надо считать, если другой статус его не перебил.
Например, объект имеет статус 2 (то есть Свободно) 22.04.2024, далее 25.04.2024 он меняет статус на другой, например 4.
Получается, что этот объект 22.04.2024, 23.04.2024, 24.04.2024 у нас должен отражаться в остатках, а 25.04.2024 уже нет.

Написала меру, которая протягивает статус до следующего не равного 2. Мера отрабатывает правильно, но сумму дает неверную
В результате должно получиться так:
22.04.2024 - остаток 21,
23.04.2024 - остаток 85,
24.04.2024 - остаток 109,
25.04.2024 - остаток 177 и тд. (руками высчитывала)

файл по ссылке https://disk.yandex.ru/d/6w5Lj98F-351Ng
Изменено: Angelina_90 - 07.07.2024 15:35:43
 
Предлагаю такое решение вашей задачи.

1. Доработка исходной таблицы средствами Power Query - добавление строк с отсутствующими датами по каждому объекту и заполнением статусов по этим датам.
2. Написание меры в Power Pivot

Только у меня по статусу "2" получились другие цифры. Тоже пересчитывал вручную, не понимаю откуда у вас такие цифры.

Ссылка на файл - https://disk.yandex.ru/d/OGkX3O_Msiajyg  
Шлюхогон42
 
Я тут нашёл на канале Антона Будуева интересное решение похожей задачки. Только опять другие цифры получились.
Формула меры:
Код
VAR LAST_DATE =
CALCULATE(
    MAX('15_history_shahmatki'[date_without_time]),
    'Calendar'[Date] <= MAX('Calendar'[Date]))
RETURN
CALCULATE(
    DISTINCTCOUNT('15_history_shahmatki'[UF_OBJECT_ID]),
    'Calendar'[Date] = LAST_DATE,
    '07_shahmatki_status'[ID_STATUS_SHAHMATKI] = 2)

Ссылка на файл - https://disk.yandex.ru/d/G7lYnlu4qzqjoA
Ссылка на урок - https://youtu.be/PLl_jH2mVQU?si=zgDXhp_y8GBkyXFN  
Шлюхогон42
 
Hey there,
To address the issue, you can create a measure in Power BI that calculates the number of unique objects with the status "free" for each date, accounting for the status persistence over time. The measure should extend the status of an object to subsequent dates until it is changed to another status.
Here's a step-by-step guide to creating such a measure:

Create a Date Table:
DateTable = CALENDAR(MIN(Data[Date]), MAX(Data[Date]))


Create a Measure to Determine the Last Known Status:
Код
LastKnownStatus = CALCULATE(
    LASTNONBLANKVALUE(Data[Date], FIRSTNONBLANK(Data[Status], 0)),
    FILTER(
        ALL(Data),
        Data[ObjectID] = MAX(Data[ObjectID]) && Data[Date] <= MAX(DateTable[Date])
    )
)

Create a Measure to Count Unique Objects with Status "Free":

Код
FreeObjectsCount =  
CALCULATE( 
    DISTINCTCOUNT(Data[ObjectID]), 
    FILTER( 
        ADDCOLUMNS( 
            SUMMARIZE(Data, Data[ObjectID]), 
            "LastStatus", [LastKnownStatus] 
        ), 
        [LastStatus] = 2 
    ) 
)

 
Цитата
написал:
Предлагаю такое решение вашей задачи.
спасибо, попробую таким способом!  
Страницы: 1
Наверх