Forum Discussion
Contiene funcionalidad en Power Query para Power BI
Hola.
Soy nuevo en DAX y esperaba que hubiera una manera de hacer esto:
Tengo una columna con mala calidad de datos, lo que significa que hay muchas variaciones que pueden estar presentes con la palabra Alta. No tengo una lista exhaustiva de cuáles podrían ser. Algunos ejemplos, Alto Impacto, Moderado-Alto, Mod-Alto, ALTO, Alto, etc. ¿Hay alguna manera de saber si esta cadena contiene High (en cualquier lugar que no distinga entre mayúsculas y minúsculas, luego reemplace el valor en ese campo con High?
Conozco Find & Replace y Substitute pero los que tienes que saber qué derivaciones puede haber.
Gracias de antemano.
7 Replies
- Syndicate_Admin
Administrator
Hola @Krc721
Utilice la función DAX CONTAINSSTRING en la columna calculada
Buscar ejemplo - https://learn.microsoft.com/en-us/dax/containsstring-function-daxhttps://dax.guide/containsstring/
https://www.sqlbi.com/tv/containsstring-containsstringexact-dax-guide/
Hazme saber si eso funciona para ti
Si su requerimiento está resuelto, haga de ESTA RESPUESTA una SOLUCIÓN ✔️ y ayude a otros usuarios a encontrar la solución rápidamente. Por favor, pulsa el botón ME GUSTA 👍 si este comentario te ayuda.
Gracias
Piyush
Linkedin- Syndicate_Admin
Administrator
Gracias por su respuesta. Esto crea una nueva columna con valor numérico, pero no reemplaza las palabras de la columna existente para estandarizar una palabra, High, que se usará en lógica. No conozco todas las variaciones que podrían existir en los datos, así que ¿no dejaría esto fuera algunos registros?
- Syndicate_Admin
Administrator
Aunque cuando cargue datos en Power BI será como desee porque Power BI no distingue entre mayúsculas y minúsculas
Pero todo esto se puede hacer en Power Query de la manera que deseePor favor, pruebe esto
- Syndicate_Admin
Administrator
Gracias por pegar la imagen, ya que estoy bloqueado para las descargas. Lo intentaré.
- Syndicate_Admin
Administrator
Creo que podría funcionar; sin embargo, tal como está escrito, hace que todos los valores nulos = Alto. Así que cambié x <> a x= eso no sucede. Es necesario probar algunos otros valores en los datos que no están presentes ahora (como bajo, medio) para asegurarse de que todo funciona correctamente. ¡Muchas gracias!
- Syndicate_Admin
Administrator
Hola Ahmed, cerré la solución prematuramente. Lo probé ya que la columna tiene otros valores y los está convirtiendo todos a Alto cuando no debería. ¿Alguna idea? Hay muchos valores en la columna y no hay una lista definida de valores establecidos, de ahí la solicitud de que algo se vea y solo convierta los que tienen High, deje null / blank y los que no tienen High en ellos como están.
- Syndicate_Admin
Administrator
@Ahmedx @PijushRoy Hola chicos, trabajé y obtuve la solución.
Table.ReplaceValue(#"Cambiar valor", cada [Clasificación], cada uno if Text.Contains([Clasificación],"Alto",Comparer.OrdinalIgnoreCase) entonces "Alto" else [Clasificación], Replacer.ReplaceValue, {"Clasificación"})
En los pasos aplicados, hice un paso de inserción después y puse la fórmula allí. Usaba la misma columna, Rating, que mis valores originales y dejaba null/blank como null/blank y otros valores sin la palabra High en ellos solos. Se manejaron todas las derivaciones de High en el conjunto de datos (todavía hay que probar el Mod-High), pero hasta ahora funcionó. Solo quería compartir, ya que la ayuda de ambos me dio un gran impulso para encontrar una solución.