Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hola a todos
Tengo una columna con palabras no estructuradas. Necesito extraer las palabras.
AA | AA |
AAgotozoo | AA |
. AA | AA |
AA$$ | AA |
Zoneedto goAA | AA |
$$AA | AA |
Traté de agregar una columna de condición, pero solo extrajo ciertas palabras pero no la lista completa. ¿Alguien sabe cómo usar comodines para extraer el texto?
¡Gracias!
¿Es una lista de cadenas de texto? ¿O un patrón comodín muy específico?
Hi Hnguy71,
Enumera una cadena de texto.
La naturaleza impredecible es un patrón. Puede estar delante o detrás en diferentes momentos. Las palabras pueden unir algunas veces. A continuación se presentan algunas de las muestras.
¡Gracias!
Para lograr esto, primero necesitará una lista de palabras clave para proporcionar como esta:
Y luego cree una columna personalizada para verificar si la subcadena coincide con alguna de la lista.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WciwoyElVitUBsgICfFzBLBUkQRBLwdQUzDE1VUCTSc8vya/KzwcL6CEMALMUVFTAHKB8XmpqSkl+er4CVEksAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Words Pattern" = _t]),
// Retrieve list of text strings
ListPatterns = List.Buffer(KeywordList),
// Find pattern, return first found string, ignoring case-sensitivity.
ReturnFoundString = Table.AddColumn(Source, "Extract Words", each
List.First(
List.Transform(
ListPatterns , (n) => if Text.Contains([Words Pattern], n, Comparer.OrdinalIgnoreCase) then n else null
)
)
,
type text)
in
ReturnFoundString
Producto previsto:
He incluido un pbix de muestra como referencia.
Hi hnguy71,
Muchas gracias por su aportación.
Soy bastante nuevo en M-code. Cuando intenté aplicar el código al caso real, hubo un error de expresión.
Importo el archivo de Excel en el escritorio de Power Bi sin poner el código.... "let_t=((type nullable text) meta [seralized. Text=true) en la tabla de tipos....." ¿Puedes obtener más información sobre este código? ¡Gracias!
La fuente se originó cuando hace clic en "Ingresar datos". Se genera un documento json y luego se convierte en una tabla para ETL adicional. Como ya tienes tu propia "fuente", puedes omitirla o sustituirla por la tuya.
Idealmente, debería comenzar en el paso ListPatterns y todo el camino hacia abajo.
Si tiene más problemas, copie y pegue su consulta aquí y puedo ayudarlo a modificarla para que la copie y pegue de nuevo.
Muchas gracias por su amable gesto.
Intenté ingresar el código M sugerido pero encontré los siguientes errores:
A continuación se muestra el código M que utilicé:
dejar
Source = Excel.Workbook(Web.Contents("https://smrtcorp-my.sharepoint.com/Documents/Desktop/Dylan%20Files/LBS%20settlement%20(working%20fil..."), null, true),
Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
#"Tipo cambiado" = Table.TransformColumnTypes(Table1_Table,{{"Patrón de palabras", escriba text}}),
ListPatterns = List.Buffer(KeywordList),
Busque el patrón, devuelva la primera cadena encontrada, ignorando la distinción entre mayúsculas y minúsculas.
ReturnFoundString = Table.AddColumn(Origen, "Extraer palabras", cada uno
List.First(
List.Transform(
ListPatterns , (n) => if Text.Contains([Words Pattern], n, Comparer.OrdinalIgnoreCase) then n else null
)
)
,
escribir texto),
Busque el patrón, devuelva la primera cadena encontrada, ignorando la distinción entre mayúsculas y minúsculas.
Table1_Table1 = ReturnFoundString{[Item="Table1",Kind="Table"]}[Extraer palabras]
en
Table1_Table1
Una vez más, muchas gracias por su ayuda y realmente lo aprecio.
HI @joeywong ,
El error que indica es que no hay una columna llamada "Patrones de palabras" que está intentando modificar o referenciar. He cambiado a la columna "Comentarios" y esto debería funcionar para su escenario:
let
Source = Excel.Workbook(Web.Contents("https://smrtcorp-my.sharepoint.com/Documents/Desktop/Dylan%20Files/LBS%20settlement%20(working%20files)/Joyce%20share%20file/Words%20Patterns.xlsx"), null, true),
Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
ListPatterns = List.Buffer(KeywordList),
// Find pattern, return first found string, ignoring case-sensitivity.
ReturnFoundString = Table.AddColumn(Table1_Table, "Extract Words", each
List.First(
List.Transform(
ListPatterns , (n) => if Text.Contains([Remarks], n, Comparer.OrdinalIgnoreCase) then n else null
)
), type text
)
in ReturnFoundString
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |