cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Helper III
Helper III

calcular la tasa de ocupación en función de la hora de inicio y finalización

Hola a todos

Actualmente estoy trabajando en una solución para obtener información sobre la tasa de ocupación de nuestras salas de reuniones, basada en la hora de inicio y finalización. Mi desafío es que si solo estoy usando mi fecha de inicio, mi reserva solo cuenta en esa hora específica. Si una reserva es de más de una hora, la siguiente hora parece estar disponible.

datos (ejemplo simple) es el siguiente:

HabitaciónFechahora de inicioen time
1.3901/05/202010:00:0012:00:00
1.4001/05/202011:00:0013:00:00
1.4201/05/202009:00:0015:00:00

el resultado debe ser el siguiente:

horacantidad de reservas en este período de tiempo
09:00:001
10:00:002
11:00:003
12:00:002
13:00:001
14:00:001
15:00:001

¿Cómo debo tener en cuenta la hora de finalización también en mi medida para saber que la habitación está reservada si la hora de finalización no es exceded?

Gracias de antemano por una respuesta!

saludos

Joep

1 ACCEPTED SOLUTION
Super User III
Super User III

¿Tiene una tabla de fecha/hora separada? Si no es así, deberá crear uno con cada hora listada para cada día. Si necesita ayuda con esto, responda y puedo proporcionar más detalles. Suponiendo que ya tiene la tabla de fecha y hora:

Utilice la siguiente fórmula para agregar una columna a la tabla de fechas:

Ocupación ?
COUNTROWS (
FILTRO (
Reuniones
Y (
Reuniones[Hora de inicio] <-DimTime[Hora],
Reuniones[Hora de finalización] > DimTime[Tiempo]
)
)
)

¿Este post ha resuelto tu problema? Por favor, márquelo como una solución para que otros puedan encontrarlo rápidamente y para que la comunidad sepa que su problema ha sido resuelto.


Si has encontrado este post útil, por favor, dale a Kudos.

Trabajo como instructor y consultor para Microsoft 365, especializado en Power BI y Power Query.

https://sites.google.com/site/allisonkennedycv


Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos.


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

View solution in original post

9 REPLIES 9
Super User III
Super User III

@joep78 No puedo enviar un mensaje privado en este momento, por lo que en respuesta a su consulta para poder filtrar los datos de ocupación por ubicación de la sala de reuniones, etc:

Tendrá que crearlo como una medida, no como una columna.

He creado columnas 'clave' en el Editor de Power Query para cada uno de los campos de fecha y hora simplemente porque encuentro que Power BI hace cosas divertidas con el tipo de datos DateTime al intentar relacionarlas entre sí.

En el Editor de Power Query, las columnas de clave se pueden crear mediante Agregar columna > Columna personalizada y la fórmula:

•DateTime.ToText([Fecha de finalización],"yyyyMMddHHmm")

reemplace [Fecha de finalización] por las columnas DateTime en la fecha y hora de inicio y finalización en la tabla de reuniones y también para datetime en la tabla datetime.

Cierre y cargue los cambios y, a continuación, en el informe, cree las siguientes MEDIDAS:

Ocupado s CALCULATE(COUNT(Meetings[Room]),FILTER(Meetings,Meetings[StartKey]<-SELECTEDVALUE('Time'[Key])
&&Reuniones[EndKey]>SELECTEDVALUE('Time'[Key])
))
Ocupación diaria promedio: CALCULATE(AVERAGEX('Time',[Occupied]))
La medida [Ocupada] solo funcionará si incluye la fecha y hora exactas en la visualización de la tabla/matriz, por lo que [Ocupación diaria media] le permite resumir los datos en todos los días o solo en días específicos de la semana.
Dado que es una medida, los filtros que pongaen en Ubicación, Nivel, etc. deben llevar a través de la tabla/matriz en la que utilice la medida.
¿Tiene sentido? Dale felicitaciones si funciona.

Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos.


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

El problema ahora con la medida Ocupado es que solo muestra un valor durante la hora de inicio, pero no hay valor entre la hora de inicio y la hora de finalización. en caso de que una reserva comience a las 08:00 AM hasta las 02:00 PM, ahora sólo está ocupada a las 08:00 AM y no ocupada las próximas horas hasta las 02:00 PM. mi medida ahora es la siguiente (basado en mis nombres originales de tabla / columna):

Ocupado s CALCULATE(COUNT(BaseOrder[SpaceRef]),FILTER(BaseOrder,BaseOrder[StartKey]<-SELECTEDVALUE('DimDate'[Key])
&&BaseOrder[EndKey]>'SELECTEDVALUE('DimDate'[Key])
))

Esto sucede debido a la relación entre la tabla de tiempo y reuniones. Intente colocar la tabla BaseOrder dentro de un ALL() para ignorar esa relación para este cálculo de la siguiente manera:

Ocupado s CALCULATE(COUNT(BaseOrder[SpaceRef]),FILTER(ALL(BaseOrder),BaseOrder[StartKey]<-SELECTEDVALUE('DimDate'[Key])
&&BaseOrder[EndKey]>'SELECTEDVALUE('DimDate'[Key])
))

Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos.


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

Super User II
Super User II

Hola @joep78 ,

¿puede explicar por qué la habitación 1.42 se marcará como reservada a las 3:00 PM, al menos creo que esta es la habitación que es responsable de la marca de reserva a las 15:00:00.

Desde el final habría deducido que esta habitación estará disponible a partir de las 3:00 PM en adelante.

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

Hola Tom,

error de datos de la mañana del domingo, 15:00 no debería tener ninguna reserva abierta de hecho. Gracias por el comentario.

Super User III
Super User III

¿Tiene una tabla de fecha/hora separada? Si no es así, deberá crear uno con cada hora listada para cada día. Si necesita ayuda con esto, responda y puedo proporcionar más detalles. Suponiendo que ya tiene la tabla de fecha y hora:

Utilice la siguiente fórmula para agregar una columna a la tabla de fechas:

Ocupación ?
COUNTROWS (
FILTRO (
Reuniones
Y (
Reuniones[Hora de inicio] <-DimTime[Hora],
Reuniones[Hora de finalización] > DimTime[Tiempo]
)
)
)

¿Este post ha resuelto tu problema? Por favor, márquelo como una solución para que otros puedan encontrarlo rápidamente y para que la comunidad sepa que su problema ha sido resuelto.


Si has encontrado este post útil, por favor, dale a Kudos.

Trabajo como instructor y consultor para Microsoft 365, especializado en Power BI y Power Query.

https://sites.google.com/site/allisonkennedycv


Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos.


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

View solution in original post

¡Gracias, añadiendo el Tiempo a la tabla DimDate y su columna resolvió mi problema! ¡Gracias!

Hola Allison,

Tengo una tabla DimDate pero no [tiempo] dentro. ¿Hay una manera fácil de agregar esto a esta tabla DimDate. Navegador de Internet no fue útil, así que tal vez usted es capaz de ayudarme con esto?

Aquí hay uno para empezar, he añadido Día de la semana, Hora y hora, pero puede agregar / eliminar cualquiera de esas columnas. También puede cambiar las fechas de inicio y finalización. Los he puesto a partir del 1 de enero de 2020 hasta ahora, siendo el ahora dinámico:

Dejar
startDate : #datetime(2020, 1, 01, 00, 00, 00),
endDate - DateTime.LocalNow(),
Fechas: List.DateTimes(startDate, Duration.Days(endDate - startDate)*24, #duration (0,1,0,0)),
"Converted to Table" á Table.FromList(Dates, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
"Columnas renombradas" - Table.RenameColumns("Converted to Table","Column1", "Date Time"-),
"Tipo modificado" ? Table.TransformColumnTypes("Columnas renombradas", "Hora de fecha", tipo datetime, tipo datetime, tipo datetime, tipo datetime,
"Día insertado de la semana" - Tabla.AddColumn('Tipo cambiado',''Tipo de la semana',', cada Date.DayOfWeek([Fecha]), Int64.Type),
"Hora insertada" - Tabla.AddColumn("Día insertado de la semana", "Hora", cada hora([Hora de la fecha]), Int64.Type),
"Hora insertada" - Tabla.AddColumn ("Hora insertada", "Hora", cada DateTime.Time([Hora de la fecha]), hora de tipo)
En
"Tiempo insertado"

Pegue ese código en el Editor avanzado de una nueva consulta en el Editor de Power Query.

A continuación, solo tendrá que combinar la fecha y la hora de inicio en la tabla Reuniones como [Fecha de inicio] y combinar la fecha y hora de finalización en la tabla de reuniones como [Fecha de finalización] (puede hacerlo en el Editor de consultas en la pestaña Agregar columna).

Utilice esta fórmula en DAX como una columna calculada para la tabla Tiempo (igual que la fórmula de mi publicación anterior pero con nombres de columna actualizados):

Ocupación: COUNTROWS(FILTER(Meetings,AND(Meetings[Start Date]<-Time[Date Time],Meetings[End Date]>-Time[Date Time]))

Una vez más, hágamelo saber si necesita aclaraciones sobre cualquiera de los anteriores.

Nota: Esta es una tabla de tabla de tiempo, NO una tabla de fechas. Este vínculo podría ayudar a explicar por qué no es una tabla de fechas. https://docs.microsoft.com/en-us/power-bi/desktop-date-tables


Has this post solved your problem? Please mark it as a solution so that others can find it quickly and to let the community know your problem has been solved. 


If you found this post helpful, please give Kudos.


I work as a trainer and consultant for Microsoft 365, specialising in Power BI and Power Query. 


www.excelwithallison.com

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Microsoft Ignite

Microsoft Ignite with Arun Ulag

Featured Session: Drive Data Culture with Power BI- Vision, Strategy & Roadmap. Register here https://myignite.microsoft.com #MSIgnite #PowerPlatform #Power BI ​

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.