Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola a todos,
He utilizado con éxito @ImkeF muchos ejemplos, pero me he atascado en la parte que no distingue mayúsculas de minúsculas.
#"Part 1 - AllCustomerWords" = Table.AddColumn(#"Renamed Columns", "AllCustomerWords", each Text.Split([Customer Text], " ")),
#"Part 2 - KeywordFound_eComm" = Table.AddColumn(#"Add Banner WholeWord Part 2", "KeywordFound_eComm", each List.First( List.Intersect( { [AllCustomerWords], #"Tbl_eComm"[Keyword] } ) )),
#"Part 3 - ContainsKeywordeComm" = Table.AddColumn(#"Part 2 - KeywordFound_eComm", "ContainsKeywordeComm", each [KeywordFound_eComm] <> null),
Tengo una tabla grande con una lista de clientes y quiero identificar si existen clientes en la tabla en una lista separada de clientes distintos. Quiero lograr esto en la consulta de energía.
El cheque debe coincidir con toda la palabra. Por ejemplo, si un valor de texto es "Driveway Limited", debe haber una palabra correspondiente en mi lista de palabras clave con "Driveway". "Dr." o "Drive" o "way" no deben devolver una coincidencia.
La comprobación no debe distinguir entre mayúsculas y minúsculas. Por ejemplo, en mi lista de clientes tengo "driveway limited", pero en mi lista de palabras clave tengo Driveway Limited. Todavía se debe encontrar una coincidencia independientemente del caso de texto en cualquiera de las listas.
Cualquier ayuda sería apreciada.
Saludos
AmiKhan
Ref:
Solved! Go to Solution.
Hola @amikhan12345
Si la lista de palabras que está buscando está en una lista llamada WordList y la columna que está buscando se llama TextCol, esto hará lo que está pidiendo.
Puede cargar la lista de palabras de otra columna si lo desea, es un cambio menor en el código siguiente.
La búsqueda no distingue mayúsculas de minúsculas y busca coincidencias de palabras enteras.
Este es un ejemplo de PBIX con el código y el ejemplo que se muestran a continuación
#"Added Custom" = Table.AddColumn(Source, "Matches",
each List.Accumulate
(
WordList,
"",
(state, current) =>
if List.Contains(Text.Split([TextCol], " "), current, Comparer.OrdinalIgnoreCase)
then state & " " & current
else state
)
Para ilustrar, WordList "Apple", "Msft", "Drive" y los resultados son
porque MSFT Corporation y Apple Seed producen una coincidencia, Driveway Limited no.
saludos
Phil
Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.
Proud to be a Super User!
Hola @amikhan12345
Sí, sólo tiene que cambiar esta línea para incluir y el estado "" como se muestra aquí
if List.Contains(Text.Split([TextCol], " "), current, Comparer.OrdinalIgnoreCase) and state = ""
saludos
Phil
Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.
Proud to be a Super User!
Muchas gracias por la rápida respuesta @PhilipTreacy
Esto funciona perfectamente en el ejemplo, pero cuando se aplica a mis datos, recibo una notificación de error de " no podemos convertir el valor de la tabla de tipo a la lista de tipos".
Al igual que el archivo de ejemplo, mi lista de Palabras es una sola columna de texto en una tabla y la columna que estoy buscando es una columna Texto en otra tabla.
List.Accumulate
(
Tbl_eComm,
"",
(state, current) =>
if List.Contains(Text.Split([Customer Text], " "), current, Comparer.OrdinalIgnoreCase)
then state & " " & current
else state
)
Hola @amikhan12345
Si la lista de palabras que está buscando está en una lista llamada WordList y la columna que está buscando se llama TextCol, esto hará lo que está pidiendo.
Puede cargar la lista de palabras de otra columna si lo desea, es un cambio menor en el código siguiente.
La búsqueda no distingue mayúsculas de minúsculas y busca coincidencias de palabras enteras.
Este es un ejemplo de PBIX con el código y el ejemplo que se muestran a continuación
#"Added Custom" = Table.AddColumn(Source, "Matches",
each List.Accumulate
(
WordList,
"",
(state, current) =>
if List.Contains(Text.Split([TextCol], " "), current, Comparer.OrdinalIgnoreCase)
then state & " " & current
else state
)
Para ilustrar, WordList "Apple", "Msft", "Drive" y los resultados son
porque MSFT Corporation y Apple Seed producen una coincidencia, Driveway Limited no.
saludos
Phil
Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.
Proud to be a Super User!
Gracias por la respuesta rápida @PhilipTreacy esto es perfecto.
¿Hay alguna manera de modificar esto para devolver la primera coincidencia? Observo en algunas ocasiones que el texto de un cliente puede contener más de una palabra clave.
Por ejemplo, la lista de palabras clave tiene "Health-Trade" y "E-COM" y hay un texto del cliente llamado "Health-Trade Wholesaler E-COM". Las columnas personalizadas devuelven "E-COM Health-Trade"
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |