Comprobación de una columna en busca de caracteres alfanuméricos y alfanuméricos

Un usuario Pregunto ✅

whitakerj

Hola,

Soy relativamente nuevo en Power Bi, así que tenga paciencia.

Estoy tratando de auditar datos y marcar filas que no son todas numéricas.

Aquí hay una muestra de mis datos.

Número de teléfono

_________________

1234567890

1111111111

123-456-7890

123-789-1230

XXXXXXXXXX

Nulo

Quiero poder crear una condición en power bi para encontrar las filas en mis datos que no son numéricas. Cuando cargo los datos en power bi, la columna se muestra como numérica y las filas que no son numéricas dan como resultado un error. Me gustaría poder mostrar las filas por error para que los usuarios tengan un tablero para saber qué filas de datos necesitan corregir en el sistema del que provienen los datos. No he sido capaz de llegar a una solución. ¿Algunas ideas?

Waltheed

Puede usar la función Valor junto con IsError.

Como esto:

IsNum = NOT(ISERROR(VALUE([Phone])))

Captura.PNG

Si desea dejar puntos entre los números, puede agregar una función SUSTITUIR alrededor del [Phone] campo.

IsNum = NOT(ISERROR(VALUE(SUBSTITUTE([Phone];"-";""))))

Espero que esto ayude.

Waltheed

Puede usar la función Valor junto con IsError.

Como esto:

IsNum = NOT(ISERROR(VALUE([Phone])))

Captura.PNG

Si desea dejar puntos entre los números, puede agregar una función SUSTITUIR alrededor del [Phone] campo.

IsNum = NOT(ISERROR(VALUE(SUBSTITUTE([Phone];"-";""))))

Espero que esto ayude.

Romain_FOURNIER

En respuesta a Waltheed

Hola,

Gracias por la solución:

EsNúm = NO(ESERROR(VALOR([Phone])))

Parece funcionar la mayor parte del tiempo:
NO(ESERROR(valor([ColumnWithLetters]))) da FALSO.

NO(ESERROR(valor([ColumnWithLeadingZeros]))) da VERDADERO.
NO(ESERROR(valor([ColumnWithNULLValue]))) da FALSO.

Desafortunadamente, no funciona para campos vacíos (que no son números):
NO(ESERROR(valor([ColumnWithEmptyValue]))) da VERDADERO

NB: NOT(ISERROR(value(«»))) funciona: da FALSO.

Aquí hay una solución parcial alternativa (los dígitos del 0 al 9 están codificados del 48 al 57, consulte https://en.wikipedia.org/wiki/List_of_Unicode_characters#Basic_Latin):

esNum = UNICODE([Phone])>=48) && UNICODIGO([Phone])<=57

Sin embargo, esta fórmula prueba solo el primer carácter de la cadena:

https://docs.microsoft.com/en-us/dax/unicode-function-dax

whitakerj

En respuesta a Waltheed

¡Muchos gracias!

Deja un comentario

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