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 una Table_A, que realiza un seguimiento de datetime de los cambios de estado.
FechaTime | identificación | entrada | salida |
29/10/2020 14:25 | 1001 | 1 | 0 |
01/12/2020 15:30 | 1002 | 1 | 0 |
05/02/2021 12:00 | 1001 | 0 | 1 |
15/04/2021 21:45 | 1002 | 0 | 1 |
Quiero calcular la cantidad de tiempo entre Entrada y Salida para cada ID (TimeSpent).
FechaTime | identificación | entrada | salida | Tiempo gastado |
29/10/2020 14:25 | 1001 | 1 | 0 | nulo |
01/12/2020 15:30 | 1002 | 1 | 0 | nulo |
05/02/2021 12:00 | 1001 | 0 | 1 | 99 |
15/04/2021 21:45 | 1002 | 0 | 1 | 135 |
Algo como esto
TimeSpent =
DATEDIFF(
FILTER('TableA'[DateTime], Entry = 1),
FILTER('TableA'[DateTime], Exit = 1),
Day
)
Recibo el siguiente mensaje de error "La expresión hace referencia a varias columnas. Varias columnas no se pueden convertir en un valor escalar."
Dudo mucho que FILTER sea la forma correcta de identificar casos para el cálculo... He intentado CALCULATE pero eso tampoco funcionó.
¿Alguna idea?
Problemas similares:
https://community.powerbi.com/t5/Desktop/DateDiff-with-Filter-based-on-specific-value/m-p/1366481#M5...
https://community.powerbi.com/t5/Desktop/using-datediff-with-filters/m-p/528938#M247760
https://community.powerbi.com/t5/DAX-Commands-and-Tips/DATEDIFF-with-filter/m-p/769728#M3623
Solved! Go to Solution.
@moosepng, prueba una medida como
averageX(values(Table[ID]), calculate(datediff(minx(filter(Table, Table[Entry] =1), [DateTime]),maxx(filter(Table, Table[exit] =1), [DateTime]),minute)))
Gracias a los dos por volver conmigo. Probaré las soluciones y te volveré 🙂
Ahí, @moosepng
Por favor, compruebe la siguiente imagen y el enlace del archivo pbix de ejemplo abajo.
Hola, mi nombre es Jihwan Kim.
Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.
Linkedin: linkedin.com/in/jihwankim1975/
Twitter: twitter.com/Jihwan_JHKIM
¡gracias!
descargado el pbix. y la solución funciona para los datos de ejemplo. Sin embargo, devolvió valores null para mi conjunto de datos real.
debe ser el if()? podría ser que mis ID son texto no numérico?
Ahí, @moosepng
Gracias por sus comentarios.
en mi ejemplo, ID es un formato numérico.
Si su columna id es un formato de texto, intente escribir algo como a continuación.
"1" "2" ...
Gracias.
Hola, mi nombre es Jihwan Kim.
Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.
Linkedin: linkedin.com/in/jihwankim1975/
Twitter: twitter.com/Jihwan_JHKIM
@moosepng, prueba una medida como
averageX(values(Table[ID]), calculate(datediff(minx(filter(Table, Table[Entry] =1), [DateTime]),maxx(filter(Table, Table[exit] =1), [DateTime]),minute)))
Hola Amitchandak,
¿Es posible filtrar esta medida [TimeSpent] por una tabla de fecha 'Fecha'?
Deberá especificar en la medida que el filtro aplica a exit datetime. O posiblemente ignorar la fecha menor con algo como ...
FILTER(ALL('Date'[DateTime]),'Date'[DateTime]<=MAX('Date'[DateTime]))
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |