- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Calcular la diferencia horaria entre dos fechas (excepto el fin de semana)
Hola a todos
¿Alguien sabe cómo puedo calcular en dax la diferencia de horas entre dos fechas / columnas de tiempo (excluyendo las fechas de fin de semana)?
He creado una bandera (T/F) en mi calendario maestro para marcar si una fecha es un fin de semana o no.
Por favor, encuentre debajo de mis datos.
Gracias a todos.
Salud
Kev
Fecha de inicio | Fecha de finalización |
17/03/2021 17:30 | 18/03/2021 16:45 |
18/03/2021 17:00 | 20/03/2021 16:03 |
19/03/2021 17:00 | 22/03/2021 16:00 |
17/03/2021 10:00 | 18/03/2021 16:00 |
18/03/2021 17:00 | 20/03/2021 16:00 |
19/03/2021 17:33 | 22/03/2021 16:50 |
17/03/2021 8:00 | 17/03/2021 8:00 |
18/03/2021 15:00 | 20/03/2021 16:00 |
19/03/2021 17:00 | 22/03/2021 16:55 |
17/03/2021 17:00 | 18/03/2021 17:00 |
18/03/2021 17:00 | 20/03/2021 16:00 |
19/03/2021 17:00 | 22/03/2021 21:00 |
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

No @BigKev,
Prueba en frío los siguientes pasos:
Paso 1: crear tabla de fechas:
Fechas = CALENDAR("2021/1/1","2021/12/31")
Paso 2:crear nueva base de tabla en fechas:
fecha1 =
GENERAR (
CALENDARAUTO (),
VAR aaaa =
AÑO ( [Fecha] )
VAR mmmm =
MES ( [Fecha] )
devolución
ROW (
"Año", aaaa,
"Mes", FORMATO ( [Fecha], "mmmm" ),
"Month2", mmmm,
"Week1", FORMATO ( [Fecha], "dddd" ) ,
"Week2", DÍA LABORABLE ( [Fecha] ),
"Día de la semana", NO ENTRE SEMANA ( [Fecha] ) EN { 1, 7 }
)
)
Paso 3, Crear nueva columna en la tabla principal de la base de datos:
¡Ojalá sea útil para ti!
Mejor consideración
Lucien Wang
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

No @BigKev,
Prueba en frío los siguientes pasos:
Paso 1: crear tabla de fechas:
Fechas = CALENDAR("2021/1/1","2021/12/31")
Paso 2:crear nueva base de tabla en fechas:
fecha1 =
GENERAR (
CALENDARAUTO (),
VAR aaaa =
AÑO ( [Fecha] )
VAR mmmm =
MES ( [Fecha] )
devolución
ROW (
"Año", aaaa,
"Mes", FORMATO ( [Fecha], "mmmm" ),
"Month2", mmmm,
"Week1", FORMATO ( [Fecha], "dddd" ) ,
"Week2", DÍA LABORABLE ( [Fecha] ),
"Día de la semana", NO ENTRE SEMANA ( [Fecha] ) EN { 1, 7 }
)
)
Paso 3, Crear nueva columna en la tabla principal de la base de datos:
¡Ojalá sea útil para ti!
Mejor consideración
Lucien Wang
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Gracias por la pronta respuesta.
No necesito considerar el horario comercial. Sólo necesito calcular el número de horas entre dos fechas (según mis datos anteriores), excluyendo la fecha del fin de semana.
Por ejemplo,
Fecha de inicio Fecha de finalización No. de horas
18/03/2021 8:00 19/03/2021 10:00 26
18/03/2021 8:00 22/03/2021 17:00 55
Como puede ver en la fila uno, las dos fechas son fechas de trabajo. Por lo tanto, la diferencia de una hora entre las dos fechas es de 26 horas.
En la segunda fila, no consideramos 20/03 y 21/03 porque es Sábado y Sol. Por lo tanto, el hoyuelo de la hora es de 55 horas.
¿Sabes cómo puedo calcular estas horas diff?
Salud
Kev
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

@BigKev, Si necesita horario comercial
https://exceleratorbi.com.au/calculating-business-hours-using-dax/
o probar una medida como
Horas de trabajo =
var _dt1 = fecha (año(Tabla[Fecha de inicio]), mes(Tabla[Fecha de inicio]), día (Tabla[Fecha de inicio]))
var _dt2 = fecha(año[Fecha de finalización]), mes(Tabla[Fecha de finalización]), día(Tabla[Fecha de finalización]))
devolución
if(weekday(_dt1,2) <6 , datediff(Table[Fecha de inicio],_dt1+1,hours),0) + COUNTROWS(FILTER(ADDCOLUMNS(CALENDAR(_dt1+1,hours),0) + COUNTROWS(FILTER(ADDCOLUMNS(CALENDAR(_dt1+1,_dt2-1),"WorkDay", if(WEEKDAY([Date],2) <6,1,0)),[WorkDay] =1))*24
+ if( not(weekday(_dt2,2) en {6,7}) , datediff(dt_2 -1 , Tabla[Fecha de finalización], horas),0)

Helpful resources
Join us at the Microsoft Fabric Community Conference
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Power BI Monthly Update - February 2025
Check out the February 2025 Power BI update to learn about new features.

Subject | Author | Posted | |
---|---|---|---|
05-29-2024 12:39 PM | |||
Anonymous
| 05-04-2020 01:59 AM | ||
12-12-2023 07:03 AM | |||
03-17-2021 09:12 AM | |||
06-14-2023 03:12 AM |