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

#powerbi #dax #powerbi-desktop #powerbi-datasource #power-bi-report-server

#powerbi #dax #powerbi-рабочий стол #powerbi-источник данных #power-bi-report-server

Вопрос:

введите описание изображения здесьВыводДанные 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

Комментарии:

1. di у вас есть какой-либо идентификатор или индекс, подобный столбцу?

2. Да, у меня есть столбец индекса в power bi

3. Пожалуйста, проверьте мой ответ, поскольку я использовал тот же столбец индекса в DAX.

Ответ №1:

Если в ваших данных есть столбец Index или ID, просто используйте этот столбец. Здесь я добавил столбец индекса для поддержания порядка между строками, и данные выглядят так, как показано ниже-

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

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

 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
)
  

Комментарии:

1. Я получаю только 71 в качестве выходных данных

2. Привет @KiranPatel, вы создаете меру или столбец? Данный код предназначен для измерения.

3. Я создаю столбец

4. Получен результат с использованием меры, но пять значений неверны. Остальное все правильно

5. Пожалуйста, проверьте обновленный ответ с кодом для пользовательского столбца.