Необходимо применить формулу в отчете power bi

введите здесь описание изображения  Вывод Данные Excel  введите описание изображения здесь У меня есть таблица в Excel, где, как упоминалось, есть 3 столбца. Закрытый столбец - это вычисляемый столбец, в котором я применил формулу в строке 1- IFERROR(IF(B2="","",B2),""), где B2 = 71, а результат - 71 (закрытый столбец).

В строке 2 закрытого столбца я применил формулу- IFERROR(IF(01/2020=01/2020, 284-71, 284),"") / IFERROR(IF(A3=A2, B3-B2, B3),""). Выход 213 и так далее ...

Те же данные, что и у меня в power bi, месяце отчета и открытом столбце. Мне нужно создать вычисляемый столбец, чтобы получить данные закрытого столбца. Пожалуйста, помогите мне с формулой для применения в power bi.  Данные Excel


person Kiran Patel    schedule 19.10.2020    source источник
comment
у вас есть какой-либо идентификатор или индекс как столбец?   -  person mkRabbani    schedule 19.10.2020
comment
Да, у меня есть столбец индекса в power bi   -  person Kiran Patel    schedule 19.10.2020
comment
Пожалуйста, проверьте мой ответ, поскольку я использовал тот же столбец индекса в DAX.   -  person mkRabbani    schedule 19.10.2020


Ответы (1)


У вас есть столбец Индекс или идентификатор в ваших данных, просто используйте этот столбец. Здесь я добавил столбец Индекс, чтобы сохранить порядок между строками, и данные выглядят следующим образом:

введите описание изображения здесь

Теперь создайте эту меру ниже -

Closed = 

VAR previous_row_open = 
CALCULATE(
    MAX(your_table_name[open]),
    FILTER(
        ALLEXCEPT(
            your_table_name,
            your_table_name[report month]
        ),
        your_table_name[Index] = MIN(your_table_name[Index]) - 1
    )
) + 0

VAR previous_row_report_month = 
CALCULATE(
    MAX(your_table_name[report month]),
    FILTER(
        ALLEXCEPT(
            your_table_name,
            your_table_name[report month]
        ),
        your_table_name[Index] = MIN(your_table_name[Index]) - 1
    )
)

RETURN
IF(
    previous_row_report_month = BLANK(),
    MIN(your_table_name[open]),
    MIN(your_table_name[open]) - previous_row_open
) 

Вот результат:

введите описание изображения здесь

Вот код для настраиваемого столбца.

Closed_column = 

VAR current_index = your_table_name_2[Index]

VAR previous_row_open = 
CALCULATE(
    MAX(your_table_name_2[open]),
    FILTER(
        ALLEXCEPT(
            your_table_name_2,
            your_table_name_2[report month]
        ),
        your_table_name_2[Index] = current_index - 1
    )
) + 0

VAR previous_row_report_month = 
CALCULATE(
    MAX(your_table_name_2[report month]),
    FILTER(
        ALLEXCEPT(
            your_table_name_2,
            your_table_name_2[report month]
        ),
        your_table_name_2[Index] = current_index - 1
    )
)

RETURN
IF(
    previous_row_report_month = BLANK(),
    your_table_name_2[open],
    your_table_name_2[open] - previous_row_open
)
person mkRabbani    schedule 19.10.2020
comment
Я получаю только 71 на выходе - person Kiran Patel; 19.10.2020
comment
Привет, @KiranPatel, вы создаете меру или столбец? Данный код предназначен для меры. - person mkRabbani; 19.10.2020
comment
Я создаю колонку - person Kiran Patel; 19.10.2020
comment
Получен результат с помощью меры, но значения -ve неверны. Остальное все правильно - person Kiran Patel; 19.10.2020
comment
Пожалуйста, проверьте обновленный ответ с кодом для настраиваемого столбца. - person mkRabbani; 19.10.2020
comment
Позвольте нам продолжить это обсуждение в чате. - person mkRabbani; 19.10.2020