cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper I
Helper I

Eliminar duplicados sin cambiar los valores en la columna calculada

Tengo un poco de una situación complicada y no soy capaz de averiguar cómo resolverlo. Así que tengo un enorme conjunto de datos (millones de filas) y muchos ID duplicados. Los ID duplicados están dentro de la tabla porque muestra los resultados a lo largo de diferentes años. Sin los duplicados debería tener alrededor de 100 000 filas. Sin embargo, he agregado algunas columnas calculadas a la tabla que suman los valores de un identificador a lo largo de todos los años combinados.

¿Hay alguna manera de eliminar los ID duplicados sin cambiar el resultado de las columnas calculadas?

7 REPLIES 7
Highlighted
Super User VI
Super User VI

Re: Elimine duplicados sin cambiar los valores en la columna calculada

@bamba98

si creó nuevas columnas con expresiones DAX - no, el conjunto de datos no se eliminará correctamente en ningún caso


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn
Highlighted
Helper I
Helper I

Re: Elimine duplicados sin cambiar los valores en la columna calculada

No entiendo tu respuesta. Tal vez mi problema no estaba muy claro. Permítame elaborarlo.

Veamos el siguiente ejemplo con un solo ID:

bamba98_0-1594581393648.png

donde tot se calcula de la siguiente manera: Tot - calculate(sum(val), allexcept(ID)).

Quiero eliminar los ID duplicados y simplemente mantener un ID sin la columna Tot para cambiar. Ahora, si elimino las filas de ID duplicadas dentro de la consulta de edición, obtengo ese Tot-10, pero quiero que el resultado final se vea así:

bamba98_1-1594581589472.png

Highlighted
Super User VI
Super User VI

Re: Elimine duplicados sin cambiar los valores en la columna calculada

@bamba98

¿cuál es la regla para la definición de duplicados? ¿por qué eliminar exactamente 2019, 2018 y 2017 filas y no 2020?


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn
Highlighted
Helper I
Helper I

Re: Elimine duplicados sin cambiar los valores en la columna calculada

@az38 Porque quiero mantener el último período en el que estaba activo un ID.

Highlighted
Super User VI
Super User VI

Re: Elimine duplicados sin cambiar los valores en la columna calculada

@bamba98

tratar de crear una nueva tabla calculada como

Table 2 = 
ADDCOLUMNS(
SUMMARIZE('Table', 'Table'[ID], "Period", MAX('Table'[Period])),
"Val", CALCULATE(SUM('Table'[Val]), FILTER('Table', 'Table'[ID] = EARLIER([ID]) && 'Table'[Period] = EARLIER([Period]))),
"Tot", CALCULATE(SUM('Table'[Tot]), FILTER('Table', 'Table'[ID] = EARLIER([ID]) && 'Table'[Period] = EARLIER([Period])))

)

do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn
Highlighted
Community Support
Community Support

Re: Elimine duplicados sin cambiar los valores en la columna calculada

Hola @bamba98 ,

En Power Query Editor, quite las filas de ID duplicadas, por lo que no existen. No se puede obtener el Tot 45, porque los datos reales se han ido.

Debe obtener el Tot en Power Query Editor y puede consultar los pasos siguientes.

1. Agrupar por ID.

R1.jpg

2. Agregue una columna personalizada para obtener el período máximo.

R2.jpg

3. Expanda la columna personalizada.

R3.jpg

4. Por último, elimine la columna Tabla.

R4.jpg

R5.jpg

La consulta M completa es la siguiente:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIyMDIAUoYGSrE6MBFDSyBliixgAVKCImKOEDFCGIMsgGSKEZIpBsgiMFNiAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, Period = _t, Val = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"Period", Int64.Type}, {"Val", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"ID"}, {{"Table", each _, type table [ID=nullable number, Period=nullable number, Val=nullable number]}, {"New Tot", each List.Sum([Val]), type nullable number}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom.1", each Table.Max([Table],"Period")),
    #"Expanded Custom.1" = Table.ExpandRecordColumn(#"Added Custom", "Custom.1", {"Period"}, {"Custom.1.Period"}),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom.1",{"Table"})
in
    #"Removed Columns"

BTW, pbix como adjunto.

Saludos

Equipo de apoyo a la comunidad _ zhenbw

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Highlighted
Helper I
Helper I

Re: Elimine duplicados sin cambiar los valores en la columna calculada

Me las arreglé para resolver esto cargando de nuevo el mismo conjunto de datos con un nombre diferente. He eliminado los duplicados en el segundo conjunto de datos y he utilizado la función FIRSTNONBLANK para agregar la columna Tot calculada del primer conjunto de datos al segundo conjunto de datos. Un poco de un enfoque poco convencional diría que, pero hace el truco!

Helpful resources

Announcements

August Community Highlights

Check out a full recap of the month!

Experience what’s next for Power BI

Join us for an in-depth look at the new Power BI features and capabilities at the free Microsoft Business Applications Launch Event.

Top Solution Authors