Aeterni
Hola,
Tengo una tabla de dos columnas:
- Columna A: tiene celdas en blanco o fecha y hora
- Columna B: tiene números o texto
Me gustaría crear una tercera columna:
- si la columna A está EN BLANCO -> EN BLANCO
- si la columna B es TEXTO -> EN BLANCO
- si la columna B es mayor que 2 ->> 2
- más -> <2
Escribí esta fórmula, pero aparece el siguiente mensaje de error: No se puede convertir el valor ‘SLA incumplido’ del tipo Texto al tipo Número.
SLA >3 = if(ISBLANK(PowerBI[DueBy]),BLANK(),IF(VALUE(PowerBI[SLA Alert])<2,,1,,0))
También probé con esta fórmula, pero aparece el siguiente mensaje de error: Las operaciones de comparación de DAX no admiten la comparación de valores de tipo Texto con valores de tipo Número. Considere usar la función VALOR o FORMATO para convertir uno de los valores.
SLA >3 = if(ISBLANK(PowerBI[DueBy]),BLANK(),if(IFERROR(PowerBI[SLA Alert],BLANK()),BLANK(),IF(PowerBI[SLA Alert]<2,,1,,0)))
Ambos mensajes de error son claros, pero no puedo encontrar una solución.
Gracias por tu ayuda.
Saludos.
Stachu
En respuesta a Aeterni
Bien, primero hablemos de la sintaxis
Lo que funciona para ti es esto:
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2,, 1,, 1 )
la cosa es ‘2’, es en realidad lo mismo que ‘2’. para mi, o como seria el ‘2,0’ para ti
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2,, 1,, 1 )
las comas rojas son un separador decimal, las azules son un separador de listas. Es por eso que esto también debería funcionar:
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2,0, 1,0, 1 )
Como usa la configuración en inglés modificada, le sugiero que use la opción predeterminada para decimal: el punto ‘.’ y coma como separador de lista
ahora el problema lógico con este SI (usaré ‘.’ como separador decimal para que quede más claro)
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2., 1., 1 )
vuelve ‘1.’ de verdad y ‘1’ para FALSO. Que siempre es 1 con cualquiera que sea el formato en su columna. Debe cambiar uno de los ‘1’ por algo que desee ver, como publiqué anteriormente:
Test = IF ( ISBLANK ( PowerBI[DueBy] ), BLANK (), IF ( ISERROR ( VALUE ( PowerBI[SLA Alert] ) ), BLANK (), IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2 , 2 , 1 ) ) )
‘2’ para VERDADERO y ‘1’ para FALSO
Stachu
hmm, supongo que si tanto el signo decimal como el separador de lista están configurados en coma, su sintaxis sería correcta. y si esa es su configuración, entonces cualquier cosa puede ser el identificador de texto, por lo que no es de extrañar que el mensaje «dar error
si ese es el caso (aunque no estoy seguro de que el sistema operativo permita una configuración tan arriesgada), esta sintaxis debería funcionar
Test = IF ( ISBLANK ( PowerBI[DueBy] ), BLANK (), IF ( ISERROR ( VALUE ( PowerBI[SLA Alert] ) ), BLANK (), IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2 , 2 , 1 ) ) )
devuelve 2 para> 2 y 1 para <= 2
Stachu
prueba esto
Column = IF ( ISBLANK ( PowerBI[DueBy] ), BLANK (), IF ( ISERROR ( VALUE ( PowerBI[SLA Alert] ) ), BLANK (), IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2, ">2", "<2" ) ) )
Aeterni
En respuesta a Stachu
Hola,
Gracias por tus comentarios.
Cambié ligeramente su fórmula porque hubo un par de errores de sintaxis … al menos mi aplicación PowerBi arrojaba errores de sintaxis:
- «> 2» y «<2" -> error de sintaxis – reemplazado con «1» y «2» para fines de prueba
- dos comas son necesarias en la última instrucción IF
Test = IF ( ISBLANK ( PowerBI[DueBy] ), BLANK (), IF ( ISERROR ( VALUE ( PowerBI[SLA Alert] ) ), BLANK (), IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2,, 1,, 1 ) ) )
En general, la fórmula funciona porque filtra el texto (obtengo celdas en blanco cuando la fórmula llega a una celda de texto), sin embargo, la última instrucción IF no funciona porque obtengo solo «1», pero tengo muchos valores menos de 2.
Saludos.
Stachu
En respuesta a Aeterni
interesante, ¿cuál es su configuración regional? específicamente separador de lista, separador decimal e identificador de texto
la sintaxis que publiqué es correcta, incluso se formateó usando https://www.daxformatter.com/
devuelve correctamente «<2" y "> 2″ respectivamente
Sin embargo, su sintaxis no funciona para mí: pasa a muchos argumentos para IF (que se espera con 4 comas)
El formateador DAX también devuelve un error con su sintaxis
¿Cuál es tu versión de PowerBI? ¿Puede publicar una captura de pantalla del error de sintaxis que aparece cuando prueba el código que publiqué?
Aeterni
En respuesta a Stachu
Hola,
debajo de mi configuración regional en mi PC.
Debajo de mi configuración regional en PowerBI
Mi versión de PowerBI es 2.71.5523.941 de 64 bits (julio de 2019)
Debajo de una captura de pantalla del error
De hecho, mi «Separador decimal» y «Separador de lista» es el mismo «,»
¿Sugeriría cambiar uno de los dos … y en caso afirmativo, qué símbolo debo usar?
Gracias
Stachu
En respuesta a Aeterni
Bien, primero hablemos de la sintaxis
Lo que funciona para ti es esto:
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2,, 1,, 1 )
la cosa es ‘2’, es en realidad lo mismo que ‘2’. para mi, o como seria el ‘2,0’ para ti
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2,, 1,, 1 )
las comas rojas son un separador decimal, las azules son un separador de listas. Es por eso que esto también debería funcionar:
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2,0, 1,0, 1 )
Como usa la configuración en inglés modificada, le sugiero que use la opción predeterminada para decimal: el punto ‘.’ y coma como separador de lista
ahora el problema lógico con este SI (usaré ‘.’ como separador decimal para que quede más claro)
IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2., 1., 1 )
vuelve ‘1.’ de verdad y ‘1’ para FALSO. Que siempre es 1 con cualquiera que sea el formato en su columna. Debe cambiar uno de los ‘1’ por algo que desee ver, como publiqué anteriormente:
Test = IF ( ISBLANK ( PowerBI[DueBy] ), BLANK (), IF ( ISERROR ( VALUE ( PowerBI[SLA Alert] ) ), BLANK (), IF ( VALUE ( 'PowerBI'[SLA Alert] ) > 2 , 2 , 1 ) ) )
‘2’ para VERDADERO y ‘1’ para FALSO
Aeterni
En respuesta a Stachu
Hola,
- Cambié mi configuración local -> ‘.’ como separador decimal
- Reconstruí mi base de datos … de lo contrario, todavía tenía el «,» como separador decimal
Ahora funciona.
Gracias.