smpa01
Hola,
Basado en lo que descubrí aquí @https: //community.powerbi.com/t5/Desktop/DAX-to-return-seperate-values-for-0-and-BLANK/mp/1081709#M …
testing if blank previous = IF([Value]=BLANK(),"true","false")
testing if blank now = IF([Value]==BLANK(),"true","false")
y gracias a
@harshnathani
@ruthpozuelo
¿DAX tiene el mismo JS como un comparador de igualdad estricto y flexible?
Greg_Deckler
Bueno, esto es extraño. Pensé que esto podría resolverse haciendo algo como:
Loose =
IF(
ISERROR(IF([Column1]=[Column3],TRUE(),FALSE())),
IF([Column1]+0=[Column2]+0,TRUE(),FALSE()),
IF([Column1]=[Column3],TRUE(),FALSE())
)
o
Strict =
IFERROR(
IF([Column1]=[Column3],TRUE(),FALSE()),
FALSE()
)
Pero si las cosas están envueltas en declaraciones IFERROR o pruebas para ISERROR, aún obtiene el error de que los operadores de comparación DAX no admiten la comparación de enteros y texto. Entonces, eso parece un error …
Pero, podría implementarlos de esta manera:
Loose1 =
IF( (ISTEXT([Column1]) && ISNUMBER([Column2])) || (ISTEXT([Column2]) && ISNUMBER([Column1])),
IF([Column1]+0 = [Column2]+0,TRUE(),FALSE()),
IF([Column1] = [Column2],TRUE(),FALSE())
)
Strict1 =
IF( (ISTEXT([Column1]) && ISNUMBER([Column3])) || (ISTEXT([Column3]) && ISNUMBER([Column1])),
FALSE(),
IF([Column1] = [Column2],TRUE(),FALSE())
)
Greg_Deckler
Bueno, esto es extraño. Pensé que esto podría resolverse haciendo algo como:
Loose =
IF(
ISERROR(IF([Column1]=[Column3],TRUE(),FALSE())),
IF([Column1]+0=[Column2]+0,TRUE(),FALSE()),
IF([Column1]=[Column3],TRUE(),FALSE())
)
o
Strict =
IFERROR(
IF([Column1]=[Column3],TRUE(),FALSE()),
FALSE()
)
Pero si las cosas están envueltas en declaraciones IFERROR o pruebas para ISERROR, aún obtiene el error de que los operadores de comparación DAX no admiten la comparación de enteros y texto. Entonces, eso parece un error …
Pero, podría implementarlos de esta manera:
Loose1 =
IF( (ISTEXT([Column1]) && ISNUMBER([Column2])) || (ISTEXT([Column2]) && ISNUMBER([Column1])),
IF([Column1]+0 = [Column2]+0,TRUE(),FALSE()),
IF([Column1] = [Column2],TRUE(),FALSE())
)
Strict1 =
IF( (ISTEXT([Column1]) && ISNUMBER([Column3])) || (ISTEXT([Column3]) && ISNUMBER([Column1])),
FALSE(),
IF([Column1] = [Column2],TRUE(),FALSE())
)
smpa01
En respuesta a Greg_Deckler
Hola @ Greg_Deckler,
Gracias, pusiste mucho trabajo en esto y yo aprendí mucho de aquí.
Mi experiencia trabajando con DAX me dice que la siguiente prueba
Entero = 1 no es igual a Texto = «1»
DAX considera BLANK () = 0, cuando estaba tratando de distinguir BLANK () de 0, no funcionó con = hasta que usé ==.
Me pregunto por qué DAX hizo eso como si DAX tuviera un comportamiento similar al de JS cuando pone 0 en su punto ciego mientras hace la comparación de calidad con = pero no con ==.
Greg_Deckler
En respuesta a smpa01
Sí, recientemente agregaron el operador == como en la versión de febrero o marzo, ha sido realmente reciente.
Greg_Deckler
En respuesta a Greg_Deckler
Publiqué esto en el foro de Problemas aquí: https: //community.powerbi.com/t5/Issues/IFERROR-and-ISERROR-do-not-work-with-comparisons-between-typ …