Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Anonymous
Not applicable

Contando el número de palabras en una lista que se encuentra en una frase

Hola

Estoy tratando de contar el número de veces que una de las palabras en una lista se encuentra en una frase

Desafortunadamente, el código M que traté de hacer no obtener el resultado correcto

Capture0.PNG

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8jZU0lHKz0tVKCnPB7KKM/JLc1IU0jLzUhSMFDLzFEBS+UVg2VgdoHIjoCJMpYYgpXA1xiA1GUWpqWiqDJRiYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, Words = _t, Phrase = _t]),
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Source, {{"Words", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Words"),
    #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"ID", type text}, {"Words", type text}, {"Phrase", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Words"}, {{"AllData", each _, type table [ID=text, Words=text, Phrase=text]}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "WordsList", each [AllData][Words]),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "PhraseAsList", each [AllData][Phrase]),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Counting", each fNwordsInPhrase(#"Added Custom1"[PhraseAsList],#"Added Custom1"[WordsList]))
in
    #"Added Custom2"

donde la función fNwordsInPhrase se define como

= (List1 as list, List2 as list) =>
let
    MyPhrase = List1,
    MyWords = List2,
    MyResult = List.Count(List.Difference(MyPhrase, MyWords))
in
    MyResult

Y lo que obtengo es contar siempre es igual a 3

Capture.PNG

No puedo encontrar mi error en la función o en la lista de operaciones antes de llamar a la función para transformar cadenas en dos listas WordsList y PhraseAsList. Además, tal vez hay una manera más simple de obtener el mismo resultado en DAX

¡Gracias por tu ayuda!

2 REPLIES 2
AllisonKennedy
Super User
Super User

@stchln ¿Cuánto volumen de datos tiene? Un problema aquí es con la función List.Difference, que siempre le dará el número de filas en esa primera lista, y otro problema es que no ha convertido la frase en una lista.

Esto funcionará, pero podría no ser el más eficiente:

Dejar
Fuente: Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8jZU0lHKKz0tVKCnPB7KKM/JLc1IU0jLzUhSMFDLzFEBS+UVg2VgdoHJoCJMpYYgpXA1xiA1GUWpqWiqDJRiYwE", BinaryEncoding.Base64), Compression.Deflate)), let _t á ((texto de tipo) meta [Serialized.Text ? true]) en la tabla de tipos [ID á _t, Palabras, _t, Frase , _t]),
"Dividir columna por delimitador" á Table.ExpandListColumn(Table.TransformColumns(Source, ?"Words", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), let itemType á (escriba texto que acepta valores NULL) meta [Serialized.Text ? true] en el tipo de tipo "itemType"), "Words"), "Words"), "Words"), "Words"), "Words"), "Words"), "Words"),
"Dividir columna por Delimiter1" ? Table.ExpandListColumn(Table.TransformColumns(?"Split Column by Delimiter", "Phrase", Splitter.SplitTextByDelimiter(" ", QuoteStyle.None), let itemType á (escriba texto que acepta valores NULL) meta [Serialized.Text ? true] en el tipo .itemType, "Phrase"), "Phrase"),
"Tipo cambiado" ? Table.TransformColumnTypes("Dividir columna por Delimiter1", "ID", escriba texto, "Palabras", escriba texto, "Frase", escriba texto, escriba texto, escriba texto, escriba texto, escriba texto),
"Columna condicional añadida" - Tabla.AddColumn("Tipo cambiado", "Contiene", cada uno si [Palabras] á [Frase] entonces 1 más 0),
"Filas agrupadas1" á Table.Group("Columna condicional agregada", "ID", "Recuento", cada Lista.Sum([Contiene]), número de tipo, "AllData", cada _, tabla de tipos [ID-texto, Palabras-texto, Frase-texto]-)
En
"Filas agrupadas1"

¿Este post ha resuelto tu problema? Por favor, márquelo como una solución para que otros puedan encontrarlo rápidamente y para que la comunidad sepa que su problema ha sido resuelto.

Si has encontrado este post útil, por favor, dale a Kudos.

Trabajo como instructor y consultor para Microsoft 365, especializado en Power BI y Power Query.

https://sites.google.com/site/allisonkennedycv


Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Anonymous
Not applicable

Muchas gracias Allison, ¡qué velocidad!

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors