#powerbi #dax #powerbi-desktop #powerbi-datasource #power-bi-report-server
#powerbi #dax #powerbi-рабочий стол #powerbi-источник данных #power-bi-report-server
Вопрос:
У меня есть таблица в 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.
Комментарии:
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. Пожалуйста, проверьте обновленный ответ с кодом для пользовательского столбца.