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
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
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
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!
@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
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
Muchas gracias Allison, ¡qué velocidad!
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 |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |