Intentar crear una columna para leer valores en una columna diferente y etiquetar los datos en consecuencia.

Un usuario Pregunto ✅

Anónimo

Esto es lo que estoy tratando de escribir:

Comprobación del entrenador = IF(value(‘RAW (2)'[Trainee Check])=»Piloto de línea»,»No entrenador»,SI(valor(y(CONTIENE(‘RAW (2)’,’RAW (2)'[Trainee Check],»Administración»)=Verdadero,CONTIENE(‘RAW (2)’,’RAW (2)'[Trainee Check],»Entrenador»)=Verdadero)),»Entrenador»,if(valor(y(CONTIENE(‘RAW (2)’,’RAW (2)'[Trainee Check],»Administración»)=Verdadero,CONTIENE(‘RAW (2)’,’RAW (2)'[Trainee Check],»Entrenador»)=Falso)),»Administración»,if(valor(CONTIENE(‘RAW (2)’,’RAW (2)'[Trainee Check],»Entrenador»))=»Verdadero»,»Entrenador»,»No Entrenador»))))

Y al recibir este error, «las operaciones de comparación de Dax no admiten la comparación de valores de tipo número con valores de tipo texto. Considere usar la función VALOR o FORMATO para convertir uno de los valores».

Soy bastante nuevo en Power BI. Buscando ayuda.

martynramsden

hola @anonimo

En primer lugar, supongo que desea crear una columna calculada.

Cuando se trata de declaraciones IF anidadas, siempre uso la función SWITCH porque me resulta mucho más fácil de leer.

También puede utilizar la función CONTAINSSTRING que busca una cadena dentro de una cadena.

Intente agregar la siguiente expresión como una columna calculada:

Trainer Check =
SWITCH(
    TRUE(),
    'RAW (2)'[Trainee Check] = "Line Pilot", "Non Trainer",
    AND(
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Management" ) = TRUE,
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Trainer" ) = TRUE
    ), "Trainer",
    AND(
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Management" ) = TRUE,
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Trainer" ) = FALSE
    ), "Management",
    CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Trainer" ) = TRUE, "Trainer",
    "Non Trainer"
)

Nota: CONTAINSSTRING no distingue entre mayúsculas y minúsculas. Si requiere distinción entre mayúsculas y minúsculas, use CONTAINSSTRINGEXACT.

Espero eso ayude.

Atentamente,

Martín

Hola @Anónimo,

¿Se ha solucionado tu problema?

Según lo probado, la fórmula de @MartynRamsden es útil, es posible que deba actualizar su versión de escritorio de Power BI.

eee10.PNG

Si desea crear una medida, puede hacerlo así:

Measure 2 = 
SWITCH(
    TRUE(),
    MAX('Sales 2015'[Month]) = "January", "Non Trainer",
    OR(
        CONTAINSSTRING( MAX('Sales 2015'[Month]), "February" ) = TRUE,
        CONTAINSSTRING( MAX('Sales 2015'[Month]), "May" ) = TRUE
    ), "Trainer",
    AND(
        CONTAINSSTRING( MAX('Sales 2015'[Month]), "Management" ) = TRUE,
        CONTAINSSTRING( MAX('Sales 2015'[Month]), "Trainer" ) = FALSE
    ), "Management",
    CONTAINSSTRING( MAX('Sales 2015'[Month]), "May" ) = TRUE, "Trainer",
    "Non Trainer"
)

Atentamente,
Lionel Chen

Si esta publicación ayudaentonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

martynramsden

hola @anonimo

En primer lugar, supongo que desea crear una columna calculada.

Cuando se trata de declaraciones IF anidadas, siempre uso la función SWITCH porque me resulta mucho más fácil de leer.

También puede utilizar la función CONTAINSSTRING que busca una cadena dentro de una cadena.

Intente agregar la siguiente expresión como una columna calculada:

Trainer Check =
SWITCH(
    TRUE(),
    'RAW (2)'[Trainee Check] = "Line Pilot", "Non Trainer",
    AND(
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Management" ) = TRUE,
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Trainer" ) = TRUE
    ), "Trainer",
    AND(
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Management" ) = TRUE,
        CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Trainer" ) = FALSE
    ), "Management",
    CONTAINSSTRING( 'RAW (2)'[Trainee Check], "Trainer" ) = TRUE, "Trainer",
    "Non Trainer"
)

Nota: CONTAINSSTRING no distingue entre mayúsculas y minúsculas. Si requiere distinción entre mayúsculas y minúsculas, use CONTAINSSTRINGEXACT.

Espero eso ayude.

Atentamente,

Martín

Anónimo

En respuesta a martynramsden

Muchas gracias, pero CONTAINSSTRING está fallando. Supongo que porque no estoy usando un SSAS Dbase, sino una base de datos de acceso.

Cualquier alternativa.

Gracias

Utsav

martynramsden

En respuesta a Anónimo

hola @anonimo

¿CONTAINSSTRING devuelve un error o simplemente no devuelve los resultados esperados?

Si es lo último, ¿puede proporcionar algunos datos de muestra y el resultado esperado?

Atentamente,

Martín

Anónimo

En respuesta a martynramsden

Hola martyn-

Está dando un error. El primero.

martynramsden

En respuesta a Anónimo

¿Puedes adjuntar una imagen del error o, mejor aún, compartir tu PBIX?

Anónimo

En respuesta a martynramsden

Estoy intentando pero no puedo adjuntar el archivo pbix.

Aquí hay una captura de pantalla del error.

HZINfy9

martynramsden

En respuesta a Anónimo

hola @anonimo

Parece que puede estar ejecutando una versión anterior del escritorio de Power BI.

La función CONTAINSSTRING estuvo disponible en la versión de marzo de 2019.

¿Podría instalar la última versión de Power BI Desktop y volver a intentarlo?

Descargar escritorio Power BI

Atentamente,

Martín

Anónimo

En respuesta a martynramsden

aqui tienes

Captura.PNG

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *