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.
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
Resultado deseado
Hoja de cálculo de Google:
https://bit.ly/3m9PdVa
Solved! Go to Solution.
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
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")
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])
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.
Saludos
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
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")
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])
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.
Saludos
¡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
Saludos
Alex
@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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |