Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
Hola comunidad tengo el siguiente problema en pbi:
De esta tabla en power bi, necesito eliminar registros de filas de acuerdo a la columna FECHA y columna INDICE, necesito dejar una sola fila por cada FECHA que contenga el valor del INDICE mayor:
TABLA ORIGEN:
La tabla debería quedar así:
@Syndicate_Admin puede lograr esto fácilmente en el PQ, para probar, inicie una consulta en blanco > haga clic en el editor avanzado y pegue el siguiente código M:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMtY1MAQiJR0lMDYwAJKOSrE6aJJGQGwMlnTClDSG63TGlDSB63RBkjQCIqCQOVY7oZKmWO001jWGGWtqiqYRKgcSNjGB6IsFAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Index = _t, Amount = _t, Customer = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Index", Int64.Type}, {"Amount", Int64.Type}, {"Customer", type text}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Date"}, {{"MaxIndex", each List.Max([Index]), type nullable number}, {"AllRows", each _, type table [Date=nullable date, Index=nullable number, Amount=nullable number, Customer=nullable text]}}),
#"Expanded AllRows" = Table.ExpandTableColumn(#"Grouped Rows", "AllRows", {"Index", "Amount", "Customer"}, {"Index", "Amount", "Customer"}),
#"Filtered Rows" = Table.SelectRows(#"Expanded AllRows", each [Index] = [MaxIndex]),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"MaxIndex"})
in
#"Removed Columns"
Básicamente, está agrupando por fecha y obteniendo el valor máximo del índice de cada fecha, y luego filtrando donde maxindex = índice, mantendrá las filas con el índice máximo de cada fecha.
En Power BI, puede lograr esto mediante la característica "Quitar duplicados" y creando una columna personalizada que calcule el ÍNDICE máximo para cada FECHA. Estos son los pasos para lograr el resultado deseado:
Cree una columna personalizada para Max INDEX:
En el Editor de Power Query, seleccione la tabla.
Vaya a la pestaña "Modelado" y haga clic en "Nueva columna".
Asigne a la columna, por ejemplo, el nombre "MaxIndexForDate".
Introduzca la siguiente fórmula para calcular el ÍNDICE máximo para cada FECHA:
PowerQuery
Copiar código
MaxIndexForDate = CALCULATE(MAX(SourceTable[INDEX]), ALLEXCEPT(SourceTable, SourceTable[DATE]))
Reemplace "SourceTable" por el nombre real de la tabla.
Eliminar duplicados:
Vaya a la pestaña "Inicio" en el Editor de Power Query.
Haga clic en "Eliminar duplicados".
Aparecerá una ventana que muestra todas las columnas. Desmarque todas las columnas excepto "DATE" y la columna "MaxIndexForDate" recién creada.
Haga clic en "Aceptar". Esto eliminará las filas duplicadas, manteniendo solo las filas con el ÍNDICE máximo para cada FECHA.
Cerrar y aplicar:
Después de quitar duplicados, haga clic en el botón "Cerrar y aplicar" para aplicar los cambios y cargar la tabla modificada en el modelo de datos de Power BI.
Después de seguir estos pasos, la tabla solo debe contener una fila para cada FECHA única, y la fila retenida para cada FECHA tendrá el valor máximo de INDICE.
Asegúrese de ajustar los nombres de columna y tabla en las fórmulas para que coincidan con su conjunto de datos real.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.