cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
db1983
New Member

¡Necesita ayuda!-encontrar la diferencia cuando un elemento cambia, y resumir en otra tabla por fecha reciente

Hola

Tengo un conjunto de datos que captura una marca de tiempo cada vez que 5 ciertos campos cambian.

Lo que quiero saber es cuándo cambia un campo (costo de reemplazo), y cuál fue la fecha en que cambia, sin embargo su amungst un rango de otros datos también, además a veces hay más de un cambio, pero sólo necesito saber el cambio más reciente.

Necesito saber esto para cada activo, en otra tabla de resumen.

¿Algún sggetions?

tabla debe terminar mostrando - id de activo 1 a 1/1/19, y id de activo 2 a 1/1/17

Id. de activoCoste de reemplazoMarca de tiempoCondiciónCantidad
120001/01/201511
120001/01/201621
130001/01/201721
130001/01/201822
210001/01/201511
210001/01/201621
240001/01/201721
240001/01/201822
140001/01/201922
5 REPLIES 5
Super User II
Super User II

Re: ¡Necesita ayuda!-encontrar la diferencia cuando un elemento cambia, y resumir en otra tabla por reciente

Pruebe lo siguiente en Power Query. Devuelve esta tabla. Ha dicho que debería devolver los datos de 2017, pero ese no fue el más reciente para el ID 2. Si realmente debería ser 2017, ¿cuál es la otra critera?

EDITAR: Para las sonrisas, he agregado una expresión DAX en la parte inferior de esta publicación para hacer lo mismo, aunque Power Query es realmente donde esto pertenece la mayor parte del tiempo.

2020-05-17 18_14_09-Untitled - Power Query Editor.png

1) En Power Query, seleccione Nuevo origen y, a continuación, Consulta en blanco
2) En la cinta inicio, seleccione el botón "Editor avanzado"
3) Retire todo lo que ve, luego pegue el código M que le he dado en ese cuadro.
4) Pulse Hecho

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIyMDAAUob6Bob6RgaGpiA2GMfqYFVgBhJCUWCMqsCckAILqAIjsAKwUnxuwKIA1Q0glgk+N2BRgOoGQ0wFlggFsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Asset id" = _t, #"Replacement cost" = _t, #"Time stamp" = _t, condition = _t, Quantity = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Asset id", Int64.Type}, {"Replacement cost", Int64.Type}, {"Time stamp", type date}, {"condition", Int64.Type}, {"Quantity", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Asset id"}, {{"All Rows", each _, type table [Asset id=number, Replacement cost=number, Time stamp=date, condition=number, Quantity=number]}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "New Data", each Table.Max([All Rows], "Time stamp")),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"New Data"}),
    #"Expanded New Data" = Table.ExpandRecordColumn(#"Removed Other Columns", "New Data", {"Asset id", "Replacement cost", "Time stamp", "condition", "Quantity"}, {"Asset id", "Replacement cost", "Time stamp", "condition", "Quantity"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded New Data",{{"Asset id", Int64.Type}, {"Replacement cost", Int64.Type}, {"Time stamp", type date}, {"condition", Int64.Type}, {"Quantity", Int64.Type}})
in
    #"Changed Type1"

Aquí está la expresión DAX para crear una tabla. Por supuesto, podría utilizar esta tabla dentro de una medida y no crear un calculado real capaz, pero esto le permitirá visualizar lo que esto está haciendo.

Summary Table = 
VAR MaxDatePerID =
    ADDCOLUMNS(
        'Sample Table',
        "MAX Date", CALCULATE(
            MAXX(
                'Sample Table',
                'Sample Table'[Time stamp]
            ),ALLEXCEPT('Sample Table','Sample Table'[Asset id])
        )
    )
VAR JustMaxRecords = 
 FILTER(
  MaxDatePerID,
  [Time stamp] = [MAX Date]
  )
RETURN
    JustMaxRecords

2020-05-17 18_56_27-Untitled - Power BI Desktop.png



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting
db1983
New Member

Re: ¡Necesita ayuda!-encontrar la diferencia cuando un elemento cambia, y resumir en otra tabla por reciente

Hola

Sin embargo, el costo de reemplazo de ID 2 no cambió en los otros años.

Sólo quiero que la fecha regrese cuando cambie el costo de reemplazo. si no cambia, entonces no debería devolver nada.

También debe mostrar la fecha más reciente, para cada activo cada vez que cambia el valor de coste de reemplazo - y devolver la marca de tiempo. Si hay más de un cambio, sólo quiero saber el cambio más reciente.

¿eso ayuda

Super User II
Super User II

Re: ¡Necesita ayuda!-encontrar la diferencia cuando un elemento cambia, y resumir en otra tabla por reciente

De acuerdo. Pruebe este código M:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIyMDAAUob6Bob6RgaGpiA2GMfqYFVgBhJCUWCMqsCckAILqAIjsAKwUnxuwKIA1Q0glgk+N2BRgOoGQ0wFlggFsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Asset id" = _t, #"Replacement cost" = _t, #"Time stamp" = _t, condition = _t, Quantity = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Asset id", Int64.Type}, {"Replacement cost", Int64.Type}, {"Time stamp", type date}, {"condition", Int64.Type}, {"Quantity", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Asset id"}, {{"All Rows", each _, type table [Asset id=number, Replacement cost=number, Time stamp=date, condition=number, Quantity=number]}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each
        let 
            varReplacementCost = Table.Max([All Rows], "Time stamp")[Replacement cost]
        in
            Table.Min(
                Table.SelectRows(
                    [All Rows], 
                    each [Replacement cost] = varReplacementCost
                    ),
                "Time stamp"
            )
        ),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}),
    #"Expanded Custom" = Table.ExpandRecordColumn(#"Removed Other Columns", "Custom", {"Asset id", "Replacement cost", "Time stamp", "condition", "Quantity"}, {"Asset id", "Replacement cost", "Time stamp", "condition", "Quantity"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Asset id", Int64.Type}, {"Replacement cost", Int64.Type}, {"Time stamp", type date}, {"condition", Int64.Type}, {"Quantity", Int64.Type}})
in
    #"Changed Type1"

1) En Power Query, seleccione Nuevo origen y, a continuación, Consulta en blanco
2) En la cinta inicio, seleccione el botón "Editor avanzado"
3) Retire todo lo que ve, luego pegue el código M que le he dado en ese cuadro.
4) Pulse Hecho

Se convierte en esto:

2020-05-17 19_06_15-Untitled - Power Query Editor.png

en esto:

2020-05-17 19_07_32-Untitled - Power Query Editor.png

Esta es la magia:

let 
    varReplacementCost = Table.Max([All Rows], "Time stamp")[Replacement cost]
in
    Table.Min(
        Table.SelectRows(
            [All Rows], 
            each [Replacement cost] = varReplacementCost
            ),
        "Time stamp"
    )
)

Obtiene el costo de reemplazo para la fecha máxima para cada ID - eso es lo que hice la primera vez.

A continuación, devuelve la fecha mínima para esos costos de reemplazo, ya que todo después de eso sería un costo de reemplazo no cambiante.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting
db1983
New Member

Re: ¡Necesita ayuda!-encontrar la diferencia cuando un elemento cambia, y resumir en otra tabla por reciente

Gracias - que parece funcionar...... ahora voy a tratar de conseguir que esto funciona en mi conjunto de datos real - parece ir adelante!

Super User II
Super User II

Re: ¡Necesita ayuda!-encontrar la diferencia cuando un elemento cambia, y resumir en otra tabla por reciente

Gran @db1983 - post e-back con cualquier problema adaptándose a su necesidad específica.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Helpful resources

Announcements
Announcing the New Spanish Forum

Announcing the New Spanish Forum

Do you need help in Spanish? Check out our new Spanish community section.

MBAS Gallery 2020

MBAS Gallery 2020

Watch Microsoft Business Applications Summit sessions on-demand.

‘Better Together’ Integration Forum Launch

‘Better Together’ Integration Forum Launch

We've launched a how-to forum where you can learn about how Power BI integrates with other Power Platform products.