cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
New Member

Utilización de la sala por día y hora

Hola. Estoy buscando ayuda para encontrar una manera de calcular la utilización (%) por día y hora que se pueden mostrar en una tabla de matriz. 🙂 El número total de habitaciones disponibles puede ser necesario para calcular la utilización.

Conjunto de datos de ejemplo:

Habitación

Día de la reunión

Hora de inicio

Hora de finalización

CA0008

W

11:00 AM

12:15 PM

CA0008

Tr

9:35 AM

10:50 AM

CA0008

Tr

11:00 AM

12:15 PM

CA0008

T

3:00 PM

4:50 PM

CA0008

R

4:15 PM

5:30 PM

CA0008

Mw

3:00 PM

4:15 PM

CB0115

Tr

11:00 AM

12:15 PM

CB0115

Tr

1:00 PM

2:15 PM

CB0115

R

3:00 PM

5:50 PM

CB0220

Tr

10:00 AM

10:50 AM

CB0220

Tr

4:00 PM

5:30 PM

CB0220

Tr

4:00 PM

5:30 PM

CB0220

MWF

8:00 AM

8:50 AM

CC0030

Tr

1:00 PM

2:50 PM

CC0030

Mw

11:00 AM

12:50 PM

CC0132

T

2:00 PM

4:50 PM

CD0133

Tr

2:00 PM

3:15 PM

CD0133

Mw

2:00 PM

3:15 PM

CD0133

M

9:00 AM

11:50 AM

Tabla de matriz de muestra:

Día/Hora

8 AM

9 AM

10 AM

11 AM

12 PM

1 PM

2 PM

3 PM

4 PM

M

T

W

T

F

¡Apreciamos cualquier orientación y asistencia!

Concierto

6 REPLIES 6
Community Support
Community Support

Hola, @tsupani

De acuerdo con el resultado esperado, creo que lo que se puede lograr en Power BI es la parte de datos, este es el resultado que puedo lograr:

v-robertq-msft_0-1606890477922.png

Además, no creo que los datos detallados (número de habitación y período de tiempo) también se puedan mostrar en Power BI Matrix, le sugiero que acepte esta respuesta como solución y abra un nuevo caso para hacer esta pregunta para que más exportaciones puedan investigar si esto se puede lograr en Power BI.

Este es mi archivo pbix de prueba de acuerdo con su resultado esperado (Mis pasos son similares a los pasos que mencioné antes):

https://qiuyunus-my.sharepoint.com/:u:/g/personal/xiaoxin_qiuyunus_onmicrosoft_com/EWGlCWdBiS1Nqvigi...

Saludos

Equipo de apoyo a la comunidad _Robert Qin

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Community Support
Community Support

Hola, @tsupani

De acuerdo con su descripción, puedo entender su requisito claramente, y usted puede seguir mis pasos y averiguar si es exactamente lo que desea:

  1. Vaya al editor de consultas de energía, abra el editor avanzadoy detenga este código:
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("hZJNDoMgEIWvYli7eMNIYtlpm+5IjGniwnj/axSo4KA2LGZCwsd788O6qucAoFetWnwQWaAZXDhqS6aZnNpaAX1mnx6WzQ7BmshfobqUDw7MFJguCJ2ROV783rbKWL4ibjnJCKcRRKZaT0llpVtmLsyMrHmE1sgyOMyKERVUJ5T4j1KFccvb5z679dLsCTDuOhNlJ8Zd119QxHrfmb7f2csjnMwOhuUYExPNakz8aLkcSo1tXw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Room = _t, #"Meeting Day" = _t, #"Start Time" = _t, #"End Time" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Time", type time}, {"End Time", type time}}),
    #"Split Column by Position" = Table.SplitColumn(#"Changed Type", "Meeting Day", Splitter.SplitTextByRepeatedLengths(1), {"Meeting Day.1", "Meeting Day.2", "Meeting Day.3"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Position",{{"Room", type text}, {"Meeting Day.1", type text}, {"Meeting Day.2", type text}, {"Meeting Day.3", type text}}),
    #"Unpivoted Only Selected Columns" = Table.Unpivot(#"Changed Type1", {"Meeting Day.1", "Meeting Day.2", "Meeting Day.3"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Only Selected Columns",{"Attribute"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Value", "Meeting Day"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Room", "Meeting Day", "Start Time", "End Time"})
in
#"Reordered Columns"

  1. Cree una tabla calculada y transforme [Hora de inicio] y [Hora de finalización] en el tipo de tiempo:
Time =

var _hour=GENERATESERIES(8,16,1)

return SELECTCOLUMNS(_hour,"Start Time",TIME([Value],1,0),"End Time",TIME([Value]+1,0,0),"Time period",TIME([Value],1,0)&" - "&TIME([Value]+1,0,0))

v-robertq-msft_0-1606812756542.png

  1. Cree una medida y cambie el tipo de medida a "Porcentaje":
utilization =
var _allrooms=
CALCULATE(DISTINCTCOUNT('Table'[Room]),ALL('Table'))
var _usedrooms=
CALCULATE(
    COUNT('Table'[Room]),
    FILTER(ALLSELECTED('Table'),
    [Start Time]<=MAX('Time'[Start Time])&&[End Time]>=MAX('Time'[End Time])&&[Meeting Day]=MAX('Table'[Meeting Day])))
var _utilization=
DIVIDE(_usedrooms,_allrooms)
return
IF(_utilization=BLANK(),0,_utilization)

  1. Cree una Matriz y coloque columnas como esta:

v-robertq-msft_1-1606812756562.png

Y puedes conseguir lo que quieras.

Puede descargar mi archivo pbix de prueba aquí

Saludos

Equipo de apoyo a la comunidad _Robert Qin

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @v-robertq-msft. Le agradezco su ayuda. Todavía no puedo obtener la tabla de matriz correcta, ya que la mayoría de las clases están programadas en diferentes patrones (TR, MWF, MW, etc.). Para la tabla de matriz, espero ver el patrón de programación por día (M, T, W, R y F) en cada intervalo de horas.

Permítanme aclarar esto con un poco más de detalle.

Datos de muestra:

CA0008, 8:00 AM - 8:50 AM, MWF

CB0220, 8:00 AM - 8:50 AM, MW

CC0030, 8:00 AM - 8:50 AM, MW

CA0008, 8:00 AM- 8:50 AM, TR

CB0220, 8:00 AM - 8:50 AM, T

Utilización (Número total de habitaciones ocupadas/número total de habitaciones disponibles)*100

Nota: Número total de habitaciones disponibles - 10

Tabla de matriz esperada:

Expected Matrix Table.JPG

¡Muchas gracias por su tiempo y ayuda!

Concierto

Community Support
Community Support

Hola, @tsupani

  1. Según el resultado esperado, desea crear una matriz para calcular la utilización (%) por día y hora, puedes seguir mis pasos:
  2. Cree una columna calculada [Tiempo] y, a continuación, cambie la columna [Tiempo] a Tipo de tiempo:
Time =

var _hour=GENERATESERIES(8,16,1)

return SELECTCOLUMNS(_hour,"Time",TIME([Value],0,0))

v-robertq-msft_0-1606804155586.png

  1. Cree una medida en la tabla principal:
utilization =

var _allrooms=

CALCULATE(DISTINCTCOUNT('Table'[Room]),ALL('Table'))

var _usedrooms=

CALCULATE(

    COUNT('Table'[Room]),

    FILTER(ALLSELECTED('Table'),

    [Start Time]<=MAX('Time'[Time])&&[End Time]>=MAX('Time'[Time])&&[Meeting Day]=MAX('Table'[Meeting Day])))

var _utilization=

DIVIDE(_usedrooms,_allrooms)

return

IF(_utilization=BLANK(),0,_utilization)
  1. Cambie el formato de medida a "Porcentaje" y cree una Matriz y coloque columnas como esta:

v-robertq-msft_1-1606804155599.png

Y puedes conseguir lo que quieras.

Puede descargar mi archivo pbix de prueba aquí

Saludos

Equipo de apoyo a la comunidad _Robert Qin

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por tomarse el tiempo para averiguar la solución. 🙂

Siento no haber sido claro sobre mi comunicación en el primer post. La solución propuesta parece moverse en la dirección correcta, pero aún así no cumple ciertos requisitos. En particular, espero ver la utilización por día (incluyendo M, T, W, R y F) en lugar de los patrones del día de la reunión (por ejemplo, M, MW, MWF, etc.) y por hora de 8 AM - 4 PM (por ejemplo, 8:01 am - 9:00 am, 9:01 am - 10:00 am, etc.).

Super User IV
Super User IV

@tsupani, en primer lugar, necesita un cubo por hora. Vea si la tabla de tiempo o una combinación con una tabla de tiempo puede ayudar

https://kohera.be/blog/power-bi/how-to-create-a-time-table-in-power-bi-in-a-few-simple-steps/

entonces esta medida debería funcionar

divide(distinctcount(Table[Room]), calculate(distinctcount(Table[Room]), allselected(Table)))



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

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.