Raymond
Hola,
Estoy haciendo un trabajo de limpieza de texto y quiero eliminar dinámicamente todas las palabras con hasta 3 caracteres. Por lo tanto, he creado una lista dinámica de palabras con más de 3 caracteres.
Sin embargo, no puedo reemplazarlo con esa lista usando el botón reemplazar en la consulta de energía. ¿Alguien tiene alguna idea?
Geradav
En respuesta a Raymond
@raymond
Vea a continuación una posible solución
Table.TransformColumns( #"name of previous step", { "columnName", each let vTextSplit = Text.Split(_, " "), vListSelect = List.Select(vTextSplit, each Text.Length(_) >3), vResult = Text.Combine(vListSelect, " ") in vResult, type text } )
Déjanos saber si eso funciona para ti.
David
Raymond
Gracias chicos.
La idea es que hay varias palabras en una celda. Entonces tengo un texto de la siguiente manera «el camino puede ser bueno para los negocios» Quiero que vuelva «buen negocio» solamente.
Geradav
En respuesta a Raymond
@raymond si desea el resultado en una columna diferente, utilice lo siguiente
Table.AddColumn( #"name of previous step", "newColumnName", each let vTextSplit = Text.Split([columnName], " "), vListSelect = List.Select(vTextSplit, each Text.Length(_) >3), vResult = Text.Combine(vListSelect, " ") in vResult, type text )
Geradav
En respuesta a Raymond
@raymond
Vea a continuación una posible solución
Table.TransformColumns( #"name of previous step", { "columnName", each let vTextSplit = Text.Split(_, " "), vListSelect = List.Select(vTextSplit, each Text.Length(_) >3), vResult = Text.Combine(vListSelect, " ") in vResult, type text } )
Déjanos saber si eso funciona para ti.
David
Raymond
En respuesta a Geradav
@Geradav wow, eso fue tan rápido y funciona tan bien. ¡Gracias!
Geradav
En respuesta a Raymond
@raymond Muy bien, esa es una buena información complementaria
Geradav
@raymond Creo que podría ajustar el código M con algo como sigue en la columna donde desea deshacerse de su texto de «3 caracteres»:
Table.TransformColumns( #"name of previous step", { "columnName", each if Text.Length(_) <= 3 then "" else _ } )
Déjanos saber si eso funciona para ti
David
PhilipTreacy
Hola @raymond
¿Quieres mantener las palabras con más de 3 caracteres o eliminarlas? El título del problema y el texto de la pregunta dicen cosas diferentes.
Puede usar un paso como este para mantener filas donde [ColumName] contiene palabras con 3 o menos caracteres
= Table.SelectRows(#"PreviousStep", each Text.Length([ColumnName]) <= 3)
Pero si esto no es lo que desea, publique algunos datos de muestra y ejemplos del resultado esperado.
Saludos
Phil
Raymond
En respuesta a PhilipTreacy
Gracias @PhilipTreacy
tienes razón, podría ser más específico.
Los datos de muestra son los siguientes:
La columna A original incluye:
«el camino puede ser bueno para los negocios»
La columna B esperada debería resultar:
«buen negocio»
Elimine todas las palabras con menos de 3 caracteres y conserve las que tengan más.
Estaba pensando en ti, un reemplazador puede iterar a través de una lista de valores y reemplazarlos, pero no pudo encontrarlo. Quizás haya otra solución.