- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Duplicados inexactos en una columna
Hola, tengo una columna llamada nombres con duplicados difusos y espero poder agruparlos. Estoy al tanto de la coincidencia aproximada en Power BI, pero no tengo una lista de nombres correctos para fusionar las tablas.
Por ejemplo:
nombre | Número de grupo |
Cascada de la empresa | 1 |
Empresa Waterfll | 1 |
Empresa Cascadas | 1 |
Hola Centro | 0 |
Empresa A. R. | 2 |
Empresa AR | 2 |
Idealmente, a esas empresas similares se les puede asignar un número de grupo arbitrario o simplemente cualquier forma de indicación que separe a cada grupo.
Vi esta posible solución en: https://www.mrexcel.com/board/threads/identify-fuzzy-matches-in-one-column.1211554/
¡Pero no estoy seguro de cómo puedo hacerlo en Power BI! Agradezco cualquier ayuda posible 🙂 Gracias
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hola, muchas gracias por su ayuda, pero ¿es posible hacer algo como si la fila no tiene otros duplicados, la fila está en el grupo 0? Entonces, ¿el grupo 0 son las filas únicas y el grupo 1 en adelante son filas con duplicados?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Puede verificar el recuento de elementos en cada grupo y luego agrupar todos los elementos individuales en un grupo de "Otros", pero eso de alguna manera frustraría el propósito de la coincidencia difusa, ¿no?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hola, ¿cómo puedo contar los elementos de cada grupo? Usé group by index para contar el número de filas de cada índice en otra tabla, pero no puedo fusionar las 2 tablas.
Este sería mi resultado ideal:
nombre | Número de grupo | contar |
Cascada de la empresa | 1 | 3 |
Empresa Waterfll | 1 | 3 |
Empresa Cascadas | 1 | 3 |
Hola Centro | 0 | 1 |
Empresa A. R. | 2 | 2 |
Empresa AR | 2 | 2 |
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hola @kellyylx ,
¿Está resuelta la pregunta? Pruebe los siguientes pasos:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcs7PLUjMq1QITyxJLUpLzMlRUIrVQRfOycEiCFRbDBb2SM3JyVdwTs0rKUoFCzjqKQTpKUBVQ0SCYFyg8bEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [name = _t]),
#"Added Custom1" = Table.AddColumn(Source, "name2", each Text.Replace(Text.Replace([name],".","")," ",""),type text),
#"Merged Queries" = Table.FuzzyNestedJoin(#"Added Custom1", {"name2"}, #"Added Custom1", {"name2"}, "Source", JoinKind.LeftOuter, [IgnoreCase=true, IgnoreSpace=true, Threshold=0.5]),
#"Removed Other Columns" = Table.Distinct(Table.ReplaceValue(Table.SelectColumns(#"Merged Queries",{"Source"}),each [Source], each Table.Sort([Source],{{"name", Order.Ascending}}),Replacer.ReplaceValue,{"Source"})),
#"Added Custom" = Table.AddColumn(#"Removed Other Columns", "count", each Table.RowCount([Source])),
#"Sorted Rows" = Table.Sort(#"Added Custom",{{"count", Order.Ascending}}),
#"Added Custom2" = Table.AddColumn(#"Sorted Rows", "number", each if [count] = 1 then 0 else 1),
#"Added Index" = Table.AddIndexColumn(#"Added Custom2", "Index", 1, 1, Int64.Type),
#"Added Custom3" = Table.AddColumn(#"Added Index", "group number", each List.Sum(List.FirstN(#"Added Custom2"[number],[Index]))),
#"Expanded Source" = Table.ExpandTableColumn(#"Added Custom3", "Source", {"name"}, {"name"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Source",{"number", "Index"})
in
#"Removed Columns"
Saludos
Gao
Equipo de apoyo a la comunidad
Si hay alguna publicación que ayude, considere Acéptala como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
Si no entiendo sus necesidades o todavía tiene problemas con él, no dude en hacérnoslo saber. ¡Muchas gracias!
Cómo obtener respuestas rápidas a sus preguntas : cómo proporcionar datos de ejemplo en el foro de Power BI
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
#"Removed Other Columns" = Table.Distinct(Table.ReplaceValue(Table.SelectColumns(#"Merged Queries",{"Source"}),each [Source], each Table.Sort([Source],{{"name", Order.Ascending}}),Replacer.ReplaceValue,{"Source"})),
Hola, ¿me puedes explicar qué hace esta línea y por qué necesitamos tenerla?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Tengo que filtrar los posibles duplicados, por eso quería tener todos los valores únicos en el mismo grupo.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wcs7PLUjMq1QITyxJLUpLzMlRUIrVQRfOycEiCFRbDBb2SM3JyVdwTs0rKUoFCzjqKQTpKUBVQ0SCYFyg8bEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [name = _t]),
#"Merged Queries" = Table.FuzzyNestedJoin(Source, {"name"}, Source, {"name"}, "Source", JoinKind.LeftOuter, [IgnoreCase=true, IgnoreSpace=true, Threshold=0.5]),
#"Removed Other Columns" = Table.Distinct(Table.ReplaceValue(Table.SelectColumns(#"Merged Queries",{"Source"}),each [Source], each Table.Sort([Source],{{"name", Order.Ascending}}),Replacer.ReplaceValue,{"Source"})),
#"Added Index" = Table.AddIndexColumn(#"Removed Other Columns", "Index", 0, 1, Int64.Type),
#"Expanded Source" = Table.ExpandTableColumn(#"Added Index", "Source", {"name"}, {"name"})
in
#"Expanded Source"
Cómo usar este código: Cree una nueva consulta en blanco. Haga clic en "Editor avanzado". Reemplace el código en la ventana con el código proporcionado aquí. Haga clic en "Listo". Una vez que haya examinado el código, reemplace el paso Source por su propio código fuente.
Tendrás que jugar con el umbral para conseguir una mejor coincidencia.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
#"Removed Other Columns" = Table.Distinct(Table.ReplaceValue(Table.SelectColumns(#"Merged Queries",{"Source"}),each [Source], each Table.Sort([Source],{{"name", Order.Ascending}}),Replacer.ReplaceValue,{"Source"})),
Hola, ¿me puedes explicar qué hace esta línea y por qué necesitamos tenerla?
Helpful resources
Join us at the Microsoft Fabric Community Conference
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Power BI Monthly Update - January 2025
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
Subject | Author | Posted | |
---|---|---|---|
12-12-2023 12:41 AM | |||
06-26-2023 01:12 PM | |||
03-10-2024 11:19 PM | |||
03-17-2021 04:30 AM | |||
08-16-2024 12:48 PM |