Diferencia de tiempo entre filas con condición

Un usuario Pregunto ✅

johnny_green

Hola,

Tengo un archivo csv de datos sin procesar que registra el tiempo de acceso en un quiosco. ¿Hay alguna fórmula que pueda hacer por debajo de la lógica?

– Diferencia horaria entre hileras. (por ejemplo, Fila 2 – Fila 3 = Visualización de resultados en la Columna 4)

– Si la diferencia, digamos mayor a 12 horas. Salida «nula» en la columna 4

Gracias a todos por la gran ayuda.

Pic2.png

Johnny

Dearwatson

Esto puede complicarse.

Para resolver esto, normalmente hago una «autounión», estos son los pasos:

1. Combine las 2 columnas con un separador de espacios y cambie el tipo a una columna DATETIME .. también ordénela Ascendente .. (La más antigua en la parte superior) La necesitará más adelante.

Capture.PNG

2. Cree un duplicado de la consulta … de hecho haga dos … normalmente haré referencia a la consulta original DOS VECES y luego deshabilitaré la carga en la consulta original; esto significa que puedo volver atrás y cambiar el original fácilmente si quiero sin romper cosas..

Capture.PNG

3. cree una columna de índice en las nuevas consultas … el primer índice debe comenzar con 0 y luego el segundo comienza con 1. ahora tiene 2 consultas con un índice DESPLAZAMIENTO por 1 … ver captura de pantalla:

Índice a partir de 0

Capture.PNG

Índice que comienza en 1:

Capture2.PNG

4. Ahora seleccione la consulta con el índice que comienza con 0 – esta es su consulta principal ahora … usa esto para «Combinar consultas» con la otra por el campo de índice …

Capture.PNG

5. Expanda la fecha y hora de la consulta combinada y esto le dará el valor de ayer para todos los registros excepto el primero.

6. Luego haz la ecuación simple para obtener la diferencia …

Capture2.PNG

Estoy seguro de que hay una manera más genial … Creo que puedes hacer un DAX elegante con EARLIER, etc. para hacer esto también, pero prefiero este método ya que me brinda un mejor linaje de datos … ya que puedo trabajar problemas más fácilmente.

Salud

Greg

Hola @johnny_green,

Además de la solución que @dearwatson publicó, también puede usar la siguiente solución.

1. Combine la columna2 y la columna3 en Power Query. Agregue una columna de índice en Power Query de acuerdo con @dearwatson publicado.

2. Cree una columna calculada utilizando la siguiente fórmula.

Column4 = IF(DATEDIFF(LOOKUPVALUE(Test[Merged],Test[Index],Test[Index]-1),Test[Merged],MINUTE)>720,BLANK(),DATEDIFF(LOOKUPVALUE(Test[Merged],Test[Index],Test[Index]-1),Test[Merged],MINUTE))

Consulte el resultado esperado.

2.PNG

Atentamente,
Angelia

Hola @johnny_green,

Además de la solución que @dearwatson publicó, también puede usar la siguiente solución.

1. Combine la columna2 y la columna3 en Power Query. Agregue una columna de índice en Power Query de acuerdo con @dearwatson publicado.

2. Cree una columna calculada utilizando la siguiente fórmula.

Column4 = IF(DATEDIFF(LOOKUPVALUE(Test[Merged],Test[Index],Test[Index]-1),Test[Merged],MINUTE)>720,BLANK(),DATEDIFF(LOOKUPVALUE(Test[Merged],Test[Index],Test[Index]-1),Test[Merged],MINUTE))

Consulte el resultado esperado.

2.PNG

Atentamente,
Angelia

Dearwatson

Esto puede complicarse.

Para resolver esto, normalmente hago una «autounión», estos son los pasos:

1. Combine las 2 columnas con un separador de espacios y cambie el tipo a una columna DATETIME .. también ordénela Ascendente .. (La más antigua en la parte superior) La necesitará más adelante.

Capture.PNG

2. Cree un duplicado de la consulta … de hecho haga dos … normalmente haré referencia a la consulta original DOS VECES y luego deshabilitaré la carga en la consulta original; esto significa que puedo volver atrás y cambiar el original fácilmente si quiero sin romper cosas..

Capture.PNG

3. cree una columna de índice en las nuevas consultas … el primer índice debe comenzar con 0 y luego el segundo comienza con 1. ahora tiene 2 consultas con un índice DESPLAZAMIENTO por 1 … ver captura de pantalla:

Índice a partir de 0

Capture.PNG

Índice que comienza en 1:

Capture2.PNG

4. Ahora seleccione la consulta con el índice que comienza con 0 – esta es su consulta principal ahora … usa esto para «Combinar consultas» con la otra por el campo de índice …

Capture.PNG

5. Expanda la fecha y hora de la consulta combinada y esto le dará el valor de ayer para todos los registros excepto el primero.

6. Luego haz la ecuación simple para obtener la diferencia …

Capture2.PNG

Estoy seguro de que hay una manera más genial … Creo que puedes hacer un DAX elegante con EARLIER, etc. para hacer esto también, pero prefiero este método ya que me brinda un mejor linaje de datos … ya que puedo trabajar problemas más fácilmente.

Salud

Greg

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *