Forum Discussion
SWITCH o IF
Necesito transformar una declaración de caso que he escrito en spotfire a Power Bi
Caso
CUANDO [Formula] -"EBOB" ENTONCES "MOGAS"
CUANDO [Fórmula] -"G01" ENTONCES "GASOIL"
CUANDO [Fórmula] -"G50" ENTONCES "GASOIL"
CUANDO [Grado]-"DAOWA" ENTONCES "FO"
CUANDO ([Formula]-"BOB10ARGM") Y ([Grado]-"M5859") ENTONCES "MOGAS"
CUANDO ([Fórmula]-"FRONTLINEICELS") Y ([Grado]-"HYWAX") ENTONCES "FO"
CUANDO ([Cliente]-"MFPERNIS") Y ([Formula]-"BIPEB") ENTONCES "HEDGES"
ELSE [Fórmula]
Dado que hay varias columnas de una tabla implicada, ¿cómo escribo una expresión DAX mediante SWITCH. Si no cambia lo que es la mejor manera
Ayúdame
@balar2007 , Switch True ayudará en este caso
Switch( True() ,
, [Formula]="EBOB" , "MOGAS"
, [Formula]="G01" , "GASOIL"
, [Formula]="G50" , "GASOIL", [Grado]-"DAOWA" , "FO"
, ([Formula]-"BOB10ARGM") && ([Grado]-"M5859") , "MOGAS"
, ([Formula]-"FRONTLINEICELS") && ([Grado]-"HYWAX") , "FO", ([Cliente]-"MFPERNIS") && ([Formula]-"BIPEB") , "HEDGES"
, [Fórmula]
)Ref Video: https://www.youtube.com/watch?v=gelJWktlR80
- Anonymous5 years ago
Hola @balar2007 ,
Como @amitchandak dicho, Switch True es una buena idea.
En addititon, también puede probar IF.
Formula = IF ( [Formula] = "EBOB", "MOGAS", IF ( [Formula] = "G01", "GASOIL", IF ( [Formula] = "G50", "GASOIL", IF ( [Grade] = "DAOWA", "FO", IF ( [Formula] = "BOB10ARGM" && [Grade] = "M5859", "MOGAS", IF ( [Formula] = "FRONTLINEICELS" && [Grade] = "HYWAX", "FO", IF ( [Client] = "MFPERNIS" && [Formula] = "BIPEB", "HEDGES", [Formula] ) ) ) ) ) ) )Saludos
Stephen Tao
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
7 Replies
- mahoneypat
Microsoft Employee
El cambio es el camino a seguir. Este es un ejemplo con el código, pero no está claro si está realizando una columna o medida. Esto supone que [Formula] es una medida. Tenga en cuenta que la fórmula se calcula primero en una variable para que no se vuelva a calcular varias veces.
Switch Example =
VAR vFormula = [Formula]
RETURN
SWITCH (
vFormula,
"EBOB", "MOGAS",
"G01", "GASOIL",
"G50", "GASOIL",
vFormula
)saludos
palmadita
- amitchandak
Super User
@balar2007 , Switch True ayudará en este caso
Switch( True() ,
, [Formula]="EBOB" , "MOGAS"
, [Formula]="G01" , "GASOIL"
, [Formula]="G50" , "GASOIL", [Grado]-"DAOWA" , "FO"
, ([Formula]-"BOB10ARGM") && ([Grado]-"M5859") , "MOGAS"
, ([Formula]-"FRONTLINEICELS") && ([Grado]-"HYWAX") , "FO", ([Cliente]-"MFPERNIS") && ([Formula]-"BIPEB") , "HEDGES"
, [Fórmula]
)Ref Video: https://www.youtube.com/watch?v=gelJWktlR80
- Syndicate_Admin
Administrator
Hola Amit
Aclaración rápida, ¿cómo lo manipulo en caso de que tenga que usar contenido en la fórmula que dio. Por ejemplo, Formula contiene EBOB entonces igual a "MOGAS".
- AnonymousNot applicable
Hola @balar2007 ,
Por favor, consulte el siguiente enlace que tiene un problema similar:
Saludos
Stephen Tao
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
- AnonymousNot applicable
Hola @balar2007 ,
Como @amitchandak dicho, Switch True es una buena idea.
En addititon, también puede probar IF.
Formula = IF ( [Formula] = "EBOB", "MOGAS", IF ( [Formula] = "G01", "GASOIL", IF ( [Formula] = "G50", "GASOIL", IF ( [Grade] = "DAOWA", "FO", IF ( [Formula] = "BOB10ARGM" && [Grade] = "M5859", "MOGAS", IF ( [Formula] = "FRONTLINEICELS" && [Grade] = "HYWAX", "FO", IF ( [Client] = "MFPERNIS" && [Formula] = "BIPEB", "HEDGES", [Formula] ) ) ) ) ) ) )Saludos
Stephen Tao
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
- PhilipTreacy
Super User
Hola @balar2007
Para buscar la cadena EBOB en [Formula] modifique la línea a este
CONTAINSSTRING( [Formula], "EBOB" ), "MOGAS"saludos
Phil
- AnonymousNot applicable
Hola @balar2007 ,
¿Podría decirme si su problema ha sido resuelto?
Si es así, acédi es la solución. Más gente se beneficiará de ello.
O todavía está confundido al respecto, por favor proporcione más detalles sobre su tabla y su problema o compártame con su archivo pbix de su Onedrive for Business.
Saludos
Stephen Tao