Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

cómo optimizar mi dax

hola tengo 3 medidas

1. es mes máximo = MAX('Calendario'[Fecha].[ Número de mes])

Esta medida me da el número máximo de meses en el año

2. Último valor = calcular([mes máximo],filter( 'Tabla1',Tabla1[Valor] <> en blanco()))

Esta medida me da el número del mes pasado con valor (por ejemplo, si el último valor fue para mayo, me muestra 5, si el último valor fue para marzo, me muestra 3, etc.)

3. Medida = si([Último valor] = 7, (calcular(Tabla1[Valor], filter('Calendario','Calendario'[Fecha].[ Número de mes] = 6))), if([Último valor] = 6, (calculate(Table1[Value], filter('Calendar','Calendar'[Date].[ Número de mes] = 5))), if([Último valor] = 5, (calculate(Table1[Value], filter('Calendar','Calendar'[Date].[ Número de mes] = 4))), if([Último valor] = 4, (calculate(Table1[Value], filter('Calendar','Calendar'[Date].[ Número de mes] = 3))), if([Último valor] = 3, (calculate(Table1[Value], filter('Calendar','Calendar'[Date].[ Número de mes] = 2))),"xd")))))

esa medida nos da valor para el mes anterior al mes pasado con valor (por ejemplo si en mayo tenemos valor 50 y en abril 30, mostrará 30 etc)


es posible optimizar este dax ?

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@hylosko ,

He aquí un ejemplo.

-------- IF form ------------
SizeDesc =
IF ( Product[Size] = "S", "Small",
IF ( Product[Size] = "M", "Medium",
IF ( Product[Size] = "L", "Large",
IF ( Product[Size] = "XL", "Extra Large", "Other" ) ) ) )

-------- SWITCH equivalent ------------
SizeDesc =
SWITCH (
Product[Size],
"S", "Small",
"M", "Medium",
"L", "Large",
"XL", "Extra Large",
"Other"
)

Por favor, pruebe esta medida.

Measure = 
SWITCH(
    [Last value],
    7,CALCULATE(MAX('Table1'[Value]),MONTH('Calendar'[Date]) = 6),
    6,CALCULATE(MAX('Table1'[Value]),MONTH('Calendar'[Date]) = 5),
    5,CALCULATE(MAX('Table1'[Value]),MONTH('Calendar'[Date]) = 4),
    4,CALCULATE(MAX('Table1'[Value]),MONTH('Calendar'[Date])= 3),
    3,CALCULATE(MAX('Table1'[Value]),MONTH('Calendar'[Date]) = 2),
    "xd"
)

Si esto no funciona para usted, considere proporcionar un archivo de ejemplo sin datos privados.

Cómo proporcionar datos de ejemplo en el foro de Power BI

Saludos
Gao

Equipo de soporte de la comunidad

Si hay alguna publicación que ayude, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente. Si no entiendo bien sus necesidades o todavía tiene problemas, no dude en hacérnoslo saber. ¡Muchas gracias!

Cómo obtener respuestas rápidas a sus preguntas -- Cómo proporcionar datos de muestra

Syndicate_Admin
Administrator
Administrator

En primer lugar, en lugar de usar múltiples instrucciones IF, la mejor opción es usar SWITCH.

En segundo lugar, para una consulta como esta, probablemente debería estar mirando hacia algunas de las funciones de inteligencia de tiempo incorporadas de power bi.

¿Puede decirme más sobre las funciones de ese interruptor?

NickolajJessen_0-1655989210986.png

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors