Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Anonymous
Not applicable

Cómo modificar los datos de nivel de fila en función del valor de columna

Hola

Necesito modificar los datos de nivel de fila en mi tabla de datos y necesito ayuda para resolver esto en el editor de consultas de Power BI...

El caso se describe en la siguiente instantánea de tabla de datos, con una imagen de los datos originales y la imagen de los datos deseados después de la fórmula de modificación. Las filas de datos problemáticas tienen datos que faltan en las columnas 'Manhours' y 'downtime', y la columna 'Line' es igual a text-value"not supplied".

Tengo que manejar estas filas (filas con la columna 'Línea' igual a valor de texto "no suministrado") para que 'packcnt' valor se agrega al 'packcnt' valor de la fila anterior con coincidencia 'Productkey' valorde columna . Además, se debe quitar la fila de datos con valores que faltan (esta es fácil con el filtrado).

¿Alguien me puede guiar a una solución de trabajo con esto, sería muy apreciado!

enlace a la tabla de datos (excel): https://1drv.ms/x/s!Al0QMrDNxhFZlZws9uPlrlVGKW7PGg?e=zLom5g

Dataquestion.jpg

3 REPLIES 3
amitchandak
Super User
Super User

Puede ir a la transformación de datos o editar el modo de consulta y quitar o filtrar filas en función de las condiciones

Los pasos son los mismos que se indican en

https://www.myexcelonline.com/blog/remove-rows-using-power-query/

Anonymous
Not applicable

Hola

eliminar las filas con el valor 'Line' igual a "no suministrado" no es el problema.

El problema es cómo agregar los valores 'packcnt' de esas filas a la fila anterior con el valor 'Productkey' coincidente.

Lo que funcionaría también es la siguiente lógica:

Para las filas donde el valor de 'Line' es igual a "no suministrado",

•> Reemplazar los valores de columna 'Fecha' y 'Cambiar ID' de la fila anterior con 'Productkey'.

Después de esto, agruparía filas por columnas 'Fecha', 'Idción de mayúsculas' y 'Productkey' con la agregación de Sumar los valores 'packcnt'.

Pero cómo aplicar la lógica anterior....

Anonymous
Not applicable

Pude alcanzar el resultado de la consulta deseada con el ejemplo de solución proporcionado por Excelerator BI en youtube:

https://www.youtube.com/watch?edufilter=NULL&v=xN2IRXQ2CvI

A continuación se muestra mi código de consulta completo que proporcionó la solución correcta.

let
    Source = Excel.Workbook(File.Contents("C:\Users\usvaini\OneDrive - BUNGE\PowerBI\Harjoitukset\OEE model tests\Datareplace.xlsx"), null, true),
    notsupp_Test_Table = Source{[Item="notsupp_Test",Kind="Table"]}[Data],
    #"Changed Type" = Table.TransformColumnTypes(notsupp_Test_Table,{{"Date", type date}, {"Shift ID", Int64.Type}, {"Productkey", Int64.Type}, {"Manhours", type number}, {"packcnt", Int64.Type}, {"Line", type text}, {"downtime", Int64.Type}}),
    #"Sorted Rows" = Table.Sort(#"Changed Type",{{"Productkey", Order.Ascending}, {"Date", Order.Ascending}, {"Shift ID", Order.Ascending}}),
    #"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1),
    #"Added Index1" = Table.AddIndexColumn(#"Added Index", "Index.1", 0, 1),
    #"Renamed Columns" = Table.RenameColumns(#"Added Index1",{{"Index.1", "previous"}}),
    #"Merged Queries" = Table.NestedJoin(#"Renamed Columns", {"previous"}, #"Renamed Columns", {"Index"}, "Renamed Columns", JoinKind.LeftOuter),
    #"Removed Columns" = Table.RemoveColumns(#"Merged Queries",{"Index", "previous"}),
    #"Expanded Renamed Columns" = Table.ExpandTableColumn(#"Removed Columns", "Renamed Columns", {"Date", "Shift ID"}, {"Renamed Columns.Date", "Renamed Columns.Shift ID"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Expanded Renamed Columns",{{"Renamed Columns.Shift ID", "previous ShiftID"}, {"Renamed Columns.Date", "Previous shift date"}}),
    #"Added Custom" = Table.AddColumn(#"Renamed Columns1", "Shift ID_fixed", each if [Line]=null then [previous ShiftID] else [Shift ID]),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Date_fixed", each if [Line]=null then [Previous shift date] else [Date]),
    #"Removed Columns1" = Table.RemoveColumns(#"Added Custom1",{"Previous shift date", "previous ShiftID", "Date", "Shift ID"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns1",{"Date_fixed", "Shift ID_fixed", "Productkey", "Manhours", "packcnt", "Line", "downtime"}),
    #"Replaced Value" = Table.ReplaceValue(#"Reordered Columns",null,0,Replacer.ReplaceValue,{"Manhours"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value",null,0,Replacer.ReplaceValue,{"downtime"}),
    #"Grouped Rows" = Table.Group(#"Replaced Value1", {"Date_fixed", "Shift ID_fixed", "Productkey"}, {{"packcnt", each List.Sum([packcnt]), type number}, {"Manhours", each List.Max([Manhours]), type number}, {"downtime", each List.Max([downtime]), type number}, {"Line", each List.Max([Line]), type text}}),
    #"Sorted Rows1" = Table.Sort(#"Grouped Rows",{{"Date_fixed", Order.Ascending}, {"Shift ID_fixed", Order.Ascending}}),
    #"Reordered Columns1" = Table.ReorderColumns(#"Sorted Rows1",{"Date_fixed", "Shift ID_fixed", "Productkey", "packcnt", "Manhours", "Line", "downtime"})
in
    #"Reordered Columns1"

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.