cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Tabla con la actualización más reciente de la cantidad por depo

Hola a todos,

Tengo una tabla con Pedidos, Productos, Fecha de entrega, Fecha de actualización por correo electrónico, Hora de actualización por correo electrónico, Depo1, Depo2
Recibo hasta 4 actualizaciones del pedido inicial por día para un OrderID y fecha de entrega donde la cantidad puede cambiar.
Necesitaría una columna con la última cantidad actualizada, una columna con la cantidad antigua por Depo1 y Depo2 la misma.

¡Gracias de antemano por su ayuda!

Tabla RAW

Table 1.png

Resultado deseado

Wished Results.png

Hoja de cálculo de Google:
https://bit.ly/3m9PdVa

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @adelmonte,

Creé un archivo pbix de muestra(ver archivo adjunto),verifique si eso es lo que desea.

1. Agregar una columna personalizada para la hora del correo electrónico con fecha y hora en Power Query Editor

yingyinr_0-1635320683925.png

2. Seleccione todas las columnas Depo_xx y despivote todas estas columnas seleccionadas

= Table.Unpivot(#"Changed Type1", {"Depo_01", "Depo_02", "Depo_03", "Depo_04", "Depo_05", "Depo_06", "Depo_07", "Depo_08", "Depo_09", "Depo_10"}, "Depos", "Value")

yingyinr_1-1635320763584.png

3. Cree las medidas a continuación para obtener el valor de Depo y UPD_Depo

> Obtener el valor de Depo

Temp_Depo = 
VAR _selordid =
    SELECTEDVALUE ( 'Table'[Order ID] )
VAR _seldepo =
    SELECTEDVALUE ( 'Table'[Depos] )
VAR _maxemailtime =
    CALCULATE (
        MAX ( 'Table'[Email Datetime] ),
        FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Order ID] = _selordid )
    )
RETURN
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            'Table',
            'Table'[Order ID] = _selordid
                && 'Table'[Depos] = _seldepo
                && 'Table'[Email Datetime] = _maxemailtime
        )
    )
nDepo = SUMX(GROUPBY('Table','Table'[Order ID],'Table'[Depos]),[Temp_Depo])

>Obtener el valor de UPD_Depo

Temp_UPD_Depo = 
VAR _selordid =
    SELECTEDVALUE ( 'Table'[Order ID] )
VAR _seldepo =
    SELECTEDVALUE ( 'Table'[Depos] )
VAR _minemailtime =
    CALCULATE (
        MIN ( 'Table'[Email Datetime] ),
        FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Order ID] = _selordid )
    )
VAR _mindepo =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Order ID] = _selordid
                && 'Table'[Depos] = _seldepo
                && 'Table'[Email Datetime] = _minemailtime
        )
    )
RETURN
    IF ( ISBLANK ( [Temp_Depo] ), BLANK (), [Temp_Depo] - _mindepo )
UPD_Depo = SUMX(GROUPBY('Table','Table'[Order ID],'Table'[Depos]),[Temp_UPD_Depo])

yingyinr_2-1635322015860.png

Pero el valor UPD_Depo que obtengo no es el mismo que el tuyo... ¿Es UPD_Depo el valor de la última fecha de correo, el valor de la fecha de correo más antigua? Por ejemplo, si el identificador de pedido es ID210081409, el valor más reciente de Depo_1 es 672y el valor de la fecha y hora de correo más antiguas es 560, el resultado final debe ser 672-560 =112, pero ¿por qué su valor es 0? Si mi comprensión es incorrecta, por favor ayúdame a corregir y proporcionar más explicaciones sobre la lógica de UPD_Depo cálculo. Gracias.

yingyinr_3-1635322238403.png

Your desired outputSu salida deseada

My gotten valueMi valor obtenido

Saludos

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

No @adelmonte,

Creé un archivo pbix de muestra(ver archivo adjunto),verifique si eso es lo que desea.

1. Agregar una columna personalizada para la hora del correo electrónico con fecha y hora en Power Query Editor

yingyinr_0-1635320683925.png

2. Seleccione todas las columnas Depo_xx y despivote todas estas columnas seleccionadas

= Table.Unpivot(#"Changed Type1", {"Depo_01", "Depo_02", "Depo_03", "Depo_04", "Depo_05", "Depo_06", "Depo_07", "Depo_08", "Depo_09", "Depo_10"}, "Depos", "Value")

yingyinr_1-1635320763584.png

3. Cree las medidas a continuación para obtener el valor de Depo y UPD_Depo

> Obtener el valor de Depo

Temp_Depo = 
VAR _selordid =
    SELECTEDVALUE ( 'Table'[Order ID] )
VAR _seldepo =
    SELECTEDVALUE ( 'Table'[Depos] )
VAR _maxemailtime =
    CALCULATE (
        MAX ( 'Table'[Email Datetime] ),
        FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Order ID] = _selordid )
    )
RETURN
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            'Table',
            'Table'[Order ID] = _selordid
                && 'Table'[Depos] = _seldepo
                && 'Table'[Email Datetime] = _maxemailtime
        )
    )
nDepo = SUMX(GROUPBY('Table','Table'[Order ID],'Table'[Depos]),[Temp_Depo])

>Obtener el valor de UPD_Depo

Temp_UPD_Depo = 
VAR _selordid =
    SELECTEDVALUE ( 'Table'[Order ID] )
VAR _seldepo =
    SELECTEDVALUE ( 'Table'[Depos] )
VAR _minemailtime =
    CALCULATE (
        MIN ( 'Table'[Email Datetime] ),
        FILTER ( ALLSELECTED ( 'Table' ), 'Table'[Order ID] = _selordid )
    )
VAR _mindepo =
    CALCULATE (
        SUM ( 'Table'[Value] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Order ID] = _selordid
                && 'Table'[Depos] = _seldepo
                && 'Table'[Email Datetime] = _minemailtime
        )
    )
RETURN
    IF ( ISBLANK ( [Temp_Depo] ), BLANK (), [Temp_Depo] - _mindepo )
UPD_Depo = SUMX(GROUPBY('Table','Table'[Order ID],'Table'[Depos]),[Temp_UPD_Depo])

yingyinr_2-1635322015860.png

Pero el valor UPD_Depo que obtengo no es el mismo que el tuyo... ¿Es UPD_Depo el valor de la última fecha de correo, el valor de la fecha de correo más antigua? Por ejemplo, si el identificador de pedido es ID210081409, el valor más reciente de Depo_1 es 672y el valor de la fecha y hora de correo más antiguas es 560, el resultado final debe ser 672-560 =112, pero ¿por qué su valor es 0? Si mi comprensión es incorrecta, por favor ayúdame a corregir y proporcionar más explicaciones sobre la lógica de UPD_Depo cálculo. Gracias.

yingyinr_3-1635322238403.png

Your desired outputSu salida deseada

My gotten valueMi valor obtenido

Saludos

View solution in original post

¡Esto es genial!
Muchas gracias por su ayuda.
Funciona perfectamente bien de la manera en que lo hiciste con la diferencia del último y el primer correo electrónico.
Solo quería saber si puedo repetir todas las etiquetas de elementos en los encabezados de fila en Matrix Visual

Repeat all Item Labels.png
Saludos
Alex

Syndicate_Admin
Administrator
Administrator

@adelmonte , Cree una nueva columna como indicador y utilíselo

Crear primero una nueva hora de fecha de correo electrónico

hora de fecha de correo electrónico = [fecha de correo electrónico] + [hora de correo electrónico]

Bandera =

if( [email date time] = maxx(filter(Table, [Order Id] = earlier([Order Id])) [email date time] ),1,0)

filtro para 1 en visual o medida

Helpful resources

Announcements
Power BI December 2021 Update_carousel 768x460.jpg

Check it Out!

Click here to read more about the December 2021 Updates!

Jan 2022 Dev Camp 768x460 copy.png

Power BI Dev Camp- January 27th, 2022

Mark your calendars and join us for our next Power BI Dev Camp!

UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!