Как динамически ссылаться на предыдущий квартал в Dax (Power BI)

#powerbi #dax

#powerbi #дакс #dax

Вопрос:

У меня есть список элементов в таблице, и я хочу иметь возможность ссылаться на дату в таблице и вставлять текстовое значение, чтобы указать, является ли эта дата «Завершена в текущем квартале» или «Завершена в предыдущем квартале».

У меня есть первая часть, которая работает как первая инструкция AND, работает нормально, но 2-я инструкция and, которая содержит ошибки «= PREVIOUSQUARTER».

Если бы кто-нибудь мог показать мне, где я ошибаюсь, это было бы здорово.

 #Completion_Title = SWITCH(TRUE(),
    AND([#Story_Close_Date]>STARTOFQUARTER(DevOps_All_User_Stories[#Current_Date].[Date]),[#Story_Close_Date]<>BLANK()),"Completed in Current Quarter",
    AND([#Story_Close_Date]=PREVIOUSQUARTER(DevOps_All_User_Stories[#Current_Date].[Date]),[#Story_Close_Date]<>BLANK()),"Completed in Previous Quarter"
)
  

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

1. Проверьте это — learn.microsoft.com/en-us/dax/previousquarter-function-dax

2. PREVIOUSQUARTER возвращает столбец дат, а не только одно значение, это ошибка. Вы можете попробовать использовать оператор IN [#Story_Close_Date] В PREVIOUSQUARTER(…..

Ответ №1:

Предполагая, что для [#Story_Close_Date] перед началом предыдущего квартала возвращаемое значение должно быть ПУСТЫМ (), это должно сработать

 #Completion_Title =
SWITCH(
    TRUE(),
    AND(
        [#Story_Close_Date]
            >= STARTOFQUARTER( DevOps_All_User_Stories[#Current_Date].[Date] ),
        [#Story_Close_Date] <> BLANK()
    ), "Completed in Current Quarter",
    AND(
        [#Story_Close_Date]
            >= STARTOFQUARTER(
                PREVIOUSQUARTER( DevOps_All_User_Stories[#Current_Date].[Date] )
            ),
        [#Story_Close_Date] <> BLANK()
    ), "Completed in Previous Quarter"
)
  

Я изменил строгий оператор «больше, чем» в условии, поскольку я предполагаю, что завершение в первый день текущего квартала относится к текущему кварталу, но дело не в этом. Важно то, что PREVIOUSQUARTER — это функция анализа времени, которая возвращает таблицу с одним столбцом, содержащую все даты текущего выбора, перенесенные на предыдущий квартал. Поэтому может быть более одной строки.
Функция STARTOFQUARTER также является функцией анализа времени, которая возвращает таблицу с одним столбцом дат. Но эта функция возвращает только одну строку, а DAX способен автоматически преобразовывать таблицу с одной строкой и одним столбцом в скалярное значение.