Forum Discussion
Sentencia CASE Complex en DAX
- 5 years ago
@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
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