Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
tsupani
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
v-robertq-msft
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.

v-robertq-msft
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

v-robertq-msft
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.).

amitchandak
Super User
Super User

@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)))

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors