Anónimo
Hola, equipo,
Necesito crear una columna personalizada que contenga el estado actual de una identificación basada en la última fecha y agrupar por identificación. por favor encuentre la siguiente tabla
Escenario | estado | identificación | Por semana | Estado actual |
Ejecutar | Ámbar | 1 | 20/02/2017 | Ámbar |
Ejecutar | verde | 1 | 19/01/2017 | Ámbar |
Definir | rojo | 2 | 23/02/2017 | rojo |
Ejecutar | ámbar | 2 | 02/09/2017 | rojo |
Ejecutar | verde | 2 | 02/08/2017 | rojo |
Definir | ámbar | 3 | 17/02/2017 | Ámbar |
entonces el resultado final debería ser así
Escenario | estado | identificación | Por semana | Estado actual |
Ejecutar | Ámbar | 1 | 20/02/2017 | Ámbar |
Definir | rojo | 2 | 23/02/2017 | rojo |
Definir | ámbar | 3 | 17/02/2017 | Ámbar |
por favor ayúdame con esta funcionalidad.
Saludos,
Sivaaprataap
MarcelBeug
Con sus datos copiados a Excel, creé el siguiente código en Power Query Excel.
Se puede usar en Power BI Query Editor con fuente ajustada.
El paso «SelectLatest» es una función que se utiliza en el siguiente paso para filtrar las tablas anidadas (en AllData, desde el paso «Grouped Rows»). El código en «SelectLatest» se basa en el código que se genera cuando filtra una columna de fecha en «Es más temprano» (menú desplegable en el encabezado de la columna – Filtros de fecha – Es más temprano)
De lo contrario, los pasos son todos los pasos estándar de la interfaz de usuario.
Para «https://community.powerbi.com/t5/Desktop/Get-Current-status-based-on-the-latest-date-and-group-by-id/mp/#» Changed Type1 «, seleccioné todo columnas y usó «Detectar tipo de datos» en la pestaña «Transformar», y luego ajustó el tipo para «ForWeek» hasta la fecha.
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Stage", type text}, {"status ", type text}, {"id", Int64.Type}, {"ForWeek", type datetime}, {"Currrent Status", type text}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"id"}, {{"AllData", each _, type table}}), SelectLatest = (Group as table) as table => Table.SelectRows(Group, let latest = List.Max(Group[ForWeek]) in each [ForWeek] = latest), #"Added Custom" = Table.AddColumn(#"Grouped Rows", "LatestData", each SelectLatest([AllData])), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"AllData"}), #"Expanded LatestData" = Table.ExpandTableColumn(#"Removed Columns", "LatestData", {"Stage", "status ", "ForWeek", "Currrent Status"}, {"Stage", "status ", "ForWeek", "Currrent Status"}), #"Reordered Columns" = Table.ReorderColumns(#"Expanded LatestData",{"Stage", "status ", "id", "ForWeek", "Currrent Status"}), #"Changed Type1" = Table.TransformColumnTypes(#"Reordered Columns",{{"Stage", type text}, {"status ", type text}, {"id", Int64.Type}, {"ForWeek", type date}, {"Currrent Status", type text}}) in #"Changed Type1"
Phil_Seamark
Aquí hay una solución basada en DAX. Supuse que su tabla se llama ‘Estado’ y el código a continuación se puede usar para crear una nueva tabla desde la pestaña de modelado
New Table = VAR MaxDates = SELECTCOLUMNS( SUMMARIZE('Status','Status'[id] , "Max Date" , MAX('Status'[ForWeek])), "ID2",[id], "Max Date",[Max Date]) VAR r = FILTER( CROSSJOIN('Status',MaxDates),[ID2]=[id] && [Max Date] = [ForWeek]) RETURN SELECTCOLUMNS( r, "Stage",[Stage], "Status",[status], "id",[id], "ForWeek",[ForWeek], "Current Status",[Currrent Status] )
Phil_Seamark
Aquí hay una solución basada en DAX. Supuse que su tabla se llama ‘Estado’ y el código a continuación se puede usar para crear una nueva tabla desde la pestaña de modelado
New Table = VAR MaxDates = SELECTCOLUMNS( SUMMARIZE('Status','Status'[id] , "Max Date" , MAX('Status'[ForWeek])), "ID2",[id], "Max Date",[Max Date]) VAR r = FILTER( CROSSJOIN('Status',MaxDates),[ID2]=[id] && [Max Date] = [ForWeek]) RETURN SELECTCOLUMNS( r, "Stage",[Stage], "Status",[status], "id",[id], "ForWeek",[ForWeek], "Current Status",[Currrent Status] )
MarcelBeug
Con sus datos copiados a Excel, creé el siguiente código en Power Query Excel.
Se puede usar en Power BI Query Editor con fuente ajustada.
El paso «SelectLatest» es una función que se utiliza en el siguiente paso para filtrar las tablas anidadas (en AllData, desde el paso «Grouped Rows»). El código en «SelectLatest» se basa en el código que se genera cuando filtra una columna de fecha en «Es más temprano» (menú desplegable en el encabezado de la columna – Filtros de fecha – Es más temprano)
De lo contrario, los pasos son todos pasos estándar de la interfaz de usuario.
Para «https://community.powerbi.com/t5/Desktop/Get-Current-status-based-on-the-latest-date-and-group-by-id/mp/#» Changed Type1 «, seleccioné todo columnas y usó «Detectar tipo de datos» en la pestaña «Transformar», y luego ajustó el tipo para «ForWeek» hasta la fecha.
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Stage", type text}, {"status ", type text}, {"id", Int64.Type}, {"ForWeek", type datetime}, {"Currrent Status", type text}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"id"}, {{"AllData", each _, type table}}), SelectLatest = (Group as table) as table => Table.SelectRows(Group, let latest = List.Max(Group[ForWeek]) in each [ForWeek] = latest), #"Added Custom" = Table.AddColumn(#"Grouped Rows", "LatestData", each SelectLatest([AllData])), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"AllData"}), #"Expanded LatestData" = Table.ExpandTableColumn(#"Removed Columns", "LatestData", {"Stage", "status ", "ForWeek", "Currrent Status"}, {"Stage", "status ", "ForWeek", "Currrent Status"}), #"Reordered Columns" = Table.ReorderColumns(#"Expanded LatestData",{"Stage", "status ", "id", "ForWeek", "Currrent Status"}), #"Changed Type1" = Table.TransformColumnTypes(#"Reordered Columns",{{"Stage", type text}, {"status ", type text}, {"id", Int64.Type}, {"ForWeek", type date}, {"Currrent Status", type text}}) in #"Changed Type1"