ФОРМАТ DAX с ПЕРЕКЛЮЧАТЕЛЕМ

#powerbi #dax

#powerbi #dax

Вопрос:

У меня есть 2 слайсера, которые используются, чтобы позволить конечному пользователю выбирать, какую меру они хотят видеть.

Я использую функцию переключения для переключения между различными мерами, но я хотел бы отформатировать их так, чтобы 4 из них были валютой, а остальные 2 — целыми числами. Однако, когда я делаю это, это не позволяет мне помещать меру в мои диаграммы из-за пользовательского форматирования:

 M_MeasureSelection = 
VAR MeasureSelect = SELECTEDVALUE(MeasureSelection[MeasureType]) amp; " " amp; SELECTEDVALUE(MeasureSelection[Measure])

RETURN
SWITCH (
    TRUE (),
    MeasureSelect = "Booked ADR",
        FORMAT([M_BookedADR], "$#.##"),
    MeasureSelect = "Booked Revenue",
        FORMAT([M_BookedRevenue], "$#.##"),
    MeasureSelect = "Booked Room Nights",
        FORMAT([M_BookedRoomNights], "#.##"),
    MeasureSelect = "Actualized ADR",
        FORMAT([M_ActualizedADR], "$#.##"),
    MeasureSelect = "Actualized Revenue",
        FORMAT([M_ActualizedRevenue], "$#.##"),
    MeasureSelect = "Actualized Room Nights",
        FORMAT([M_ActualizedRoomNights], "#.##")
)
  

Он работает с моими диаграммами, когда я вынимаю функции форматирования:

 M_MeasureSelection2 = 
VAR MeasureSelect = SELECTEDVALUE(MeasureSelection[MeasureType]) amp; " " amp; SELECTEDVALUE(MeasureSelection[Measure])

RETURN
SWITCH (
    TRUE (),
    MeasureSelect = "Booked ADR",
        [M_BookedADR],
    MeasureSelect = "Booked Revenue",
        [M_BookedRevenue],
    MeasureSelect = "Booked Room Nights",
        [M_BookedRoomNights],
    MeasureSelect = "Actualized ADR",
        [M_ActualizedADR],
    MeasureSelect = "Actualized Revenue",
        [M_ActualizedRevenue],
    MeasureSelect = "Actualized Room Nights",
        [M_ActualizedRoomNights]
)
  

У кого-нибудь есть какие-либо идеи по этому поводу? Любые другие варианты или мне просто нужно удалить форматирование?

Ответ №1:

Вы можете использовать SWITCH command в качестве кода ниже:

 M_MeasureSelection = 
VAR MeasureSelect = CONVERT(SELECTEDVALUE(MeasureSelection[MeasureType]) amp; " " amp; SELECTEDVALUE(MeasureSelection[Measure]), STRING)
RETURN
SWITCH (
    MeasureSelect, /* Param */
    "Booked ADR", FORMAT([M_BookedADR],  "Currency"), /* Is Booked ADR? Then ... */
    "Booked Revenue", FORMAT([M_BookedRevenue],  "Currency"), /* Is Booked Revenue? Then ...*/
    "Booked Room Nights", FORMAT([M_BookedRoomNights],  "Currency"),
    "Actualized ADR", FORMAT([M_ActualizedADR],  "Currency"),
    "Actualized Revenue", FORMAT([M_ActualizedRevenue],  "Currency"),
    "Actualized Room Nights", FORMAT([M_ActualizedRoomNights],  "Currency"),
    "Invalid Option!" /* Just for enhance */
)
  

Убедитесь, что все ваши меры внутри этих FORMAT функций являются числами, а не строками, но если это так, вы могли бы сделать CONVERT .