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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Sentencia CASE Complex en DAX

¡Hola! 🙂

Estoy tratando de "traducir" una declaración de caso compleja en DAX. He intentado 'Cambiar función' y está bien:

Nuevo campo : SWITCH (

VERDADERO (),

table1[Categoría] - "color de pelo", "LUXE",

table1[Categoría] - "cuidado del cabello", "LUXE",

table1[Categoría] - "estilo de pelo", "LUXE",

... etcetera

"Muy"

)

¿Cuál es el problema? Cuando dentro de la instrucción case tengo más opciones para la misma cadena:

Caso
CUANDO REGEXP_MATCH (Campo 1, ".*Color del cabello.*|. *Cuidado del cabello.*|. *Estilo de pelo.*") ENTONCES "Hair"
CUANDO REGEXP_MATCH (Campo 1, ".*Piel-Sol.*|. *Cara de piel.*|. *Piel-Cuerpo.*") ENTONCES "Piel"

... etcetera

ELSE "Otros"

Final

¿Cómo puedo traducir cada una de estas opciones: ".*Skin-Sun.*|. *Cara de piel.*|. *Piel-Cuerpo.*"|... etc" dentro de mi función Switch en DAX?

¡Muchas gracias de antemano! 🙂

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@avargas-- , Usted puede probar como

Nuevo campo : SWITCH (
VERDADERO (),
table1[Categoría] en ("color de pelo","cuidado del cabello","estilo de pelo"), "LUXE",
"Muy"
)

Pero si necesita buscar, entonces necesita usar la búsqueda, compruebe

https://youtu.be/mZt0HJw4gjQ

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

No @avargas-- ,

¿Esto podría funcionar?

_newField =
SWITCH(
  TRUE(),
  CONTAINSSTRING(table1[Category], "Hair"), "Hair",
  CONTAINSSTRING(table1[Category], "Skin"), "Skin",
  ...
)

Syndicate_Admin
Administrator
Administrator

@avargas-- , Usted puede probar como

Nuevo campo : SWITCH (
VERDADERO (),
table1[Categoría] en ("color de pelo","cuidado del cabello","estilo de pelo"), "LUXE",
"Muy"
)

Pero si necesita buscar, entonces necesita usar la búsqueda, compruebe

https://youtu.be/mZt0HJw4gjQ

Hola Amit,

Está lanzando un error de Operador o expresiones '()' no se suportó en este contexto.

Las maneras siguientes pueden sin embargo trabajar:

NEW_FIELD = CAMBIAR (
VERDADERO (),
CONTAINSSTRING(Tabla1[Categoría],"color de pelo"), "LUXE",
CONTAINSSTRING(Tabla1[Categoría],"cuidado del cabello"),"LUXE",
CONTAINSSTRING(Tabla1[Categoría],"estilo de pelo"), "LUXE"
)

y

NEW_FIELD = CAMBIAR (
VERDADERO (),
CONTAINSSTRING(Tabla1[Categoría],"color de pelo")|| CONTAINSSTRING(Tabla1[Categoría],"cuidado del cabello")||
CONTAINSSTRING(Tabla1[Categoría],"estilo de pelo"), "LUXE"
)

Pero me gustaría ver , si podemos dar varios valores en la declaración "IN" para evitar dar el nombre de la columna, usando la función CONTAINSSTRING una y otra vez, como funciona en Tableau mediante el símbolo "|" y no es necesario dar el nombre de la columna repetidamente CUANDO REGEXP_MATCH (Campo 1, "*. Hair-Color.*|*. Hair-Care.*|. *Hair-Style.*") THEN "Hair"

Hola @6283710270 ,

Puede usar la respuesta de Amit, pero debe usar llaves (no paretheses estándar) alrededor de la lista 'IN', ya que es una lista. El cálculo de Amit actualizado se vería así:

New field =
SWITCH (
  TRUE (),
  table1[Category] IN {"hair-color", "hair-care", "hair-style"}, "LUXE",
  table1[Category] IN {"Skin-Sun", "Skin-Face", "Skin-Body"}, "SKIN",
  "Other"
)

Ya sugerí la opción CONTAINSSTRING, pero el método de Amit, correctamente implementado, es mucho más eficaz, creo.

Pete

Helpful resources

Announcements
Fabcon_Europe_Social_Bogo

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

Check out the June 2024 Power BI update to learn about new features.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors