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.
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?
No entiendo tu respuesta. Tal vez mi problema no estaba muy claro. Permítame elaborarlo.
Veamos el siguiente ejemplo con un solo ID:
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í:
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.
2. Agregue una columna personalizada para obtener el período máximo.
3. Expanda la columna personalizada.
4. Por último, elimine la columna Tabla.
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.
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!
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])))
)
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |