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.
Tengo la tabla que contiene la información sobre Inicio de sesión y cierre de sesión que mi cliente inicia sesión en nuestro sistema.
Fecha | Hora | Usuario | Tipo |
1.06.2020 | 0:05:38 | A | Sesión |
1.06.2020 | 0:06:40 | B | Sesión |
1.06.2020 | 6:20:21 | C | Sesión |
1.06.2020 | 8:21:10 | A | Cerrar sesión |
1.06.2020 | 8:22:10 | D | Sesión |
1.06.2020 | 9:25:00 | B | Cerrar sesión |
1.06.2020 | 10:40:41 | A | Sesión |
1.06.2020 | 10:41:11 | C | Cerrar sesión |
1.06.2020 | 11:01:50 | D | Cerrar sesión |
1.06.2020 | 12:21:02 | A | Cerrar sesión |
Así que ahora me gustaría rastrear su tiempo en el sistema que cuánto tiempo pasaron? Necesito calcular el tiempo como el usuario A Inicio de sesión 2 veces y tiempo pasado en el sistema XXX horas XXX minutos.
Creo que puedo usar la columna de tiempo para calcular entre type(logon y logout) para el mismo usuario, pero no sé qué DAX puedo usar?
Si alguien me habla del Dax, gracias a todos tus expertos.
Hola @saranp780,
Puede utilizar la siguiente fórmula DAX para crear una nueva tabla calculada para resumen de tiempos de registro y duración total:
Summary =
VAR temp =
ADDCOLUMNS (
'Table',
"Duration", IF (
[Type] = "Logon",
DATEDIFF (
[Time],
CALCULATE (
MIN ( 'Table'[Time] ),
FILTER (
'Table',
[Date] = AVERAGE ( 'Table'[Date] )
&& [User] = EARLIER ( 'Table'[User] )
&& [Type] <> EARLIER ( 'Table'[Type] )
&& [Time] > EARLIER ( 'Table'[Time] )
)
),
SECOND
)
)
)
RETURN
ADDCOLUMNS (
SUMMARIZE (
temp,
[Date],
[User],
"Count", COUNTX (
FILTER (
temp,
[Date] = EARLIER ( 'Table'[Date] )
&& [User] = EARLIER ( 'Table'[User] )
),
[Duration]
),
"TotalSeconds", SUMX (
FILTER (
temp,
[Date] = EARLIER ( 'Table'[Date] )
&& [User] = EARLIER ( 'Table'[User] )
),
[Duration]
)
),
"Duration",
VAR _hour =
ROUNDUP ( [TotalSeconds] / 3600, 0 )
VAR _minute =
ROUNDUP ( MOD ( [TotalSeconds], 3600 ) / 60, 0 )
RETURN
_hour & ":" & _minute & ":"
& ROUNDUP ( MOD ( MOD ( [TotalSeconds], 3600 ), 60 ), 0 )
)
saludos
Xiaoxin Sheng
@v-shex-msft Ya lo intenté, pero se redondeó como el usuario A como calculé en Excel:
9:55:53 pero en esta fórmula 10:56:55
Hola @saranp780,
¿Puede compartir un archivo de muestra con algunos datos ficticios para probar? (no adjunte datos confidenciales)
saludos
Xiaoxin Sheng
@saranp780 , pruebe una nueva columna
Columna: if( [Type],3) á "Logoff" ,datediff( Maxx(FILTER(Sheet1,[User]-EARLIER(Sheet1[User]) && [Date time] <EARLIER([date time]) && ([Type]) ? "start" ),[Timestamp]),[Timestamp],MINUTE),BLANK())
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 |