Ayuda de la línea de tiempo: sistema de reserva de habitaciones de hotel

Un usuario Pregunto ✅

karimk

¡Hola!

Tengo uno difícil. ¿Es posible de alguna manera hacer un gráfico similar a una línea de tiempo para mostrar cómo está ocupado mi edificio durante el año? Consideraciones:

-Un eje muestra meses y semanas

-Otro eje muestra mis edificios, por piso

-La línea de tiempo «llenando» serían los equipos que ocupan cada piso

-Puedo tener puntos en blanco donde nadie usaría ese espacio

-Preferiblemente, el nombre del ocupante se mostraría en la barra que llena la línea de tiempo, pero podríamos tener una tabla separada para eso.

Un ejemplo hecho en Excel:

ejemplo genoma.PNG

¿Algunas ideas?

Muchísimas gracias.

MFelix

En respuesta a karimk

Hola @karimk,

Ansewring en la pregunta 1 y en el problema que tiene, he cometido un error en la fórmula donde pusimos Calendario[Week] debiera ser [Week_Year] a continuación se muestra la medida corregida que hice la copia antes de finalizar mi fórmula, lo siento

Ocupation_Dates = 
VAR Week_number =
    MAX ( 'Calendar'[Week_Year] )
RETURN
    CALCULATE (
        MIN ( occupation[PRODUCTION] ),
        occupation[Start_Week] <= Week_number,
        occupation[End_week] >= Week_number
    )

Entonces, esto resuelve su problema de valores en blanco en la matriz y responde a su primera pregunta, la columna Week_Year es cómo defino el inicio y la parada en los valores de la matriz

Proceso de Thougt:

La medida se basa en el contexto por lo que al agregar las columnas (fechas) y las Filas (edificios) todos los cálculos se realizarán con el «cruce» de la información de filas y columnas.

La variable Número de semana realiza una validación de contexto dentro de la matriz y devuelve ese número de semana de columna por año

En el cálculo, elijo el valor de producción en el año / mes / semana elegido y en el edificio. Entonces, en base a eso, lo que hace la fórmula es comparar el número de semana en la columna y verificar si la semana de inicio es más alta que eso y la semana de finalización es más baja, por lo que en base a eso se devuelven los valores de la producción.

Saludos,

MFelix

MFelix

En respuesta a karimk

Hola @karimk,

Puede hacer esto con la URL de la imagen; sin embargo, la parte del nombre no estará disponible. Las imágenes URL solo se pueden mostrar con URL y no con fórmulas compuestas.

Saludos,

MFelix

MFelix

Hola @karimk,

Puede probar y usar la matriz visual, no tiene un ejemplo de conjunto de datos completo, pero el resultado final se vería así:

grid.png

Si quieres más explicaciones sobre cómo lograr esto, si me das una muestra de datos, puedo intentar hacerte una pequeña guía.

Saludos,

MFelix

karimk

En respuesta a MFelix

Muchas gracias por la respuesta. Esa foto que subiste parece la dirección correcta. ¿Sería posible colorear celdas específicas en la matriz? Como: AA es rojo, BB es azul, etc.

Estoy subiendo una foto de una hoja de cálculo simple con un ejemplo de datos que debería convertirse en la foto que mostraste. No sé cómo subir un archivo Excel aquí.

¡Gracias!

MFelix

En respuesta a karimk

Hola @karimk,

He dado mi primera respuesta basada en eso, pero no estoy seguro de cómo tiene sus datos, ¿puede hacer una copia y pegar de parte de la tabla en una publicación o enviar un enlace onedrive / google drive / wetranfer para tener una mejor comprensión de sus datos? .

Saludos,

MFelix

karimk

En respuesta a MFelix

Oye. Pruebe el archivo Escel en el enlace siguiente.

https://www.dropbox.com/sh/czvw71jmrn7l2so/AADKdLqbpLJxHPtWtsqv1-gZa?dl=0

¡Muchos gracias!

MFelix

En respuesta a karimk

Hola @karimk,

Disculpe la demora en la respuesta, utilice el siguiente esquema:

Cree una tabla de calendario (consulte este enlace para obtener una tabla más compleja) Solo agrego una nueva tabla con la siguiente sintaxis:

Calendar = CALENDAR("01/01/2017","31/12/2018")

En la fecha del calendario agregue las siguientes columnas:

Week = WEEKNUM('Calendar'[Date])

Week_year = YEAR('Calendar'[Date])&FORMAT(WEEKNUM('Calendar'[Date]),"00")

En su tabla de ocupaciones, cree las siguientes columnas:

Start_Week = YEAR(occupation[START DATE])&FORMAT(WEEKNUM(occupation[START DATE]),"00")

End_week = YEAR(occupation[END DATE])&FORMAT(WEEKNUM(occupation[END DATE]),"00")

Esto le dará la estrella y la semana final de cada línea en su tabla para completar su matriz.

También agregue esta medida:

Ocupation_Dates = 
VAR Week_number =
    MAX ( 'Calendar'[Week] )
RETURN
    CALCULATE (
        MIN ( occupation[PRODUCTION] ),
        occupation[Start_Week] <= Week_number,
        occupation[End_week] >= Week_number
    )

Ahora que ha configurado su tabla, vaya y cree una matriz visual (para simplificar, usé solo el último dígito de la producción para que la matriz pueda ser visible en su totalidad):

Matriz visual:

Filas:

  • Tabla de ocupación – Edificio
  • Tabla de ocupación – Piso

Columnas

  • Tabla de calendario – Fecha (Jerarquía – Año)
  • Tabla de calendario – Semana

Valores

  • Tabla de ocupaciones – Occupations_Dates (medida)

Opción en la matriz:

Encabezados de fila:

  • Diseño escalonado: desactivado
  • Profundice en filas y columnas hasta el final.

En la imagen a continuación, puede ver la tabla final y también cómo creo la tabla con la configuración anterior:

ocupacion.gif

Espero que este sea el resultado que necesitas.

Saludos,

MFelix

karimk

En respuesta a MFelix

MFelix, esto se ve brillante. ¡¡Muchas gracias por tu ayuda!!

Lamentablemente todavía no he podido reproducirlo. Mi problema parece estar en la medida, especialmente con «<= Week_number" y "=> Week_number».

Lo que sucede es que la matriz muestra valores en blanco.

A continuación se muestra una foto de cómo escribí la medida. ¿Es correcto?

medida de matriz.PNG

Si no escribo «<= Week_number" y "=> Week_number», la matriz mostrará valores, pero, obviamente, son incorrectos.

En la imagen de abajo, la matriz superior tiene una medida sin sintaxis «<= Week_number". En la matriz inferior, la medida tiene el Sintaxis «<= Week_number".

matriz en blanco.PNG

A continuación se muestran los enlaces de Dropbox para el archivo PowerBI y la base de datos actualizada. Usaré ID en lugar de texto para los nombres de producción. Esto me ayudará a utilizar el formato condicional.

https://www.dropbox.com/s/jhut185fvc4dn42/TIMELINE%20MFELIX.pbix?dl=0

https://www.dropbox.com/s/sxw9my19rkahx6u/TIMELINE%20TEST.xlsx?dl=0

Además de todo esto, tengo algunas preguntas, que si tuvieras tiempo para responder sería increíble:

1) ¿Dónde se usó la columna Week_year en todo esto?

2) ¿Cuál es el proceso de pensamiento detrás de la medida que creó?

3) ¿Qué debo hacer si quiero mostrar al mismo tiempo el año, el mes y las semanas, en lugar del formato actual de año y semanas?

Muchas gracias. Si estoy pidiendo demasiado, no se preocupe. Intentaré resolver esto de otra manera. Ya has ayudado mucho.

MFelix

En respuesta a karimk

Hola @karimk,

Ansewring en la pregunta 1 y en el problema que tiene, he cometido un error en la fórmula donde pusimos Calendario[Week] debiera ser [Week_Year] a continuación se muestra la medida corregida que hice la copia antes de finalizar mi fórmula, lo siento

Ocupation_Dates = 
VAR Week_number =
    MAX ( 'Calendar'[Week_Year] )
RETURN
    CALCULATE (
        MIN ( occupation[PRODUCTION] ),
        occupation[Start_Week] <= Week_number,
        occupation[End_week] >= Week_number
    )

Entonces, esto resuelve su problema de valores en blanco en la matriz y responde a su primera pregunta, la columna Week_Year es cómo defino el inicio y la parada en los valores de la matriz

Proceso de Thougt:

Las medidas se basan en el contexto, por lo que al agregar las columnas (fechas) y las Filas (edificios) todos los cálculos se realizarán con el «cruce» de la información de filas y columnas.

La variable Número de semana realiza una validación de contexto dentro de la matriz y devuelve ese número de semana de columna por año

En el cálculo, elijo el valor de producción en el año / mes / semana elegido y en el edificio. Entonces, en base a eso, lo que hace la fórmula es comparar el número de semana en la columna y verificar si la semana de inicio es más alta que eso y la semana de finalización es más baja, por lo que en base a eso se devuelven los valores de la producción.

Saludos,

MFelix

karimk

En respuesta a MFelix

¡Lo resolviste! ¡¡¡Muchísimas gracias!!!

Lo único que me falta ahora, pero creo que es una cuestión de funcionalidad de Power BI, es tener más opciones de coloración. con formato condicional.

Ejemplo:

SI el Nombre de producción es cualquier valor entre 1800 y 2299 -> Rojo. Si está entre 1000 y 1799 -> Gris. Si está entre 3000 y 4000 -> morado.

Bien. ¡Gracias!

MFelix

En respuesta a karimk

Hola @karimk,

no sé si esto resuelve su problema, pero siempre puede vincular un unichar a su código y luego usarlo en su medida y tendrá un número de producción y un símbolo conectado a sus datos:

Occupation with symbol: =
SWITCH (
    TRUE (),
    occupation[Ocupation_Dates] = BLANK (), BLANK (),
    [Ocupation_Dates] >= 1
        && [Ocupation_Dates] <= 2, occupation[Ocupation_Dates] & UNICHAR ( 9971 ),
    [Ocupation_Dates] >= 3
        && [Ocupation_Dates] <= 4, occupation[Ocupation_Dates] & UNICHAR ( 9977 ),
    occupation[Ocupation_Dates] & UNICHAR ( 9978 )
)

Nuevamente, para esto utilicé el último número en la columna Producción para hacerlo más fácil.

unicode.png

Para obtener los caracteres UNICODE, vaya a este enlace y use el código HTML para cada carácter que necesite.

Solo trato de pensar fuera de la caja, no surja si esto es lo que quieres.

Saludos,

MFelix

karimk

En respuesta a MFelix

¿Funcionaría este enfoque Unicode si la producción fuera un texto, en lugar de un número?

MFelix

En respuesta a karimk

Seguro que acabo de colocar un número para facilitar que necesites ajustar la fórmula a tu solicitud.

¿Tiene una muestra de los valores que desea incluir?

Puedo hacer un cambio rápido a la fórmula.

Saludos,

MFelix

karimk

En respuesta a MFelix

Hola,

El enlace de Dropbox a continuación tiene un archivo de Excel con una base de datos de muestra.

https://www.dropbox.com/s/j3c0y69gebrpwzz/TIMELINE%20TEST3.xlsx?dl=0

Básicamente, me gustaría poner un Unicode de color al lado de cada nombre de «PRODUCCIÓN» en la línea de tiempo, basado en su «GÊNERO».

La relación GÊNERO-color está en la hoja «UNICODE REF».

La imagen Unicode debería ser lo más neutra posible (un rectángulo, por ejemplo).

es posible?

Muchas gracias por seguir ayudando.

MFelix

En respuesta a karimk

Hola @karimk

Pruebe esta medida, nuevamente puede elegir el carácter Unicode en el enlace.

Occupation with symbol: =
SWITCH (
    TRUE (),
    occupation[Ocupation_Dates] = BLANK (), BLANK (),
    VALUES ( occupation[GÊNERO] ) = "Dramaturgia Diária", occupation[Ocupation_Dates] & UNICHAR ( 9650 ),
    VALUES ( occupation[GÊNERO] ) = "Dramaturgia Semanal", occupation[Ocupation_Dates] & UNICHAR ( 9724 ),
    VALUES ( occupation[GÊNERO] ) = "Escritorial", occupation[Ocupation_Dates] & UNICHAR ( 9670 ),
    VALUES ( occupation[GÊNERO] ) = "Variedades Diária", occupation[Ocupation_Dates] & UNICHAR ( 9677 ),
    VALUES ( occupation[GÊNERO] ) = "Variedades Noite", occupation[Ocupation_Dates] & UNICHAR ( 9608 ),
    occupation[Ocupation_Dates]
)

Saludos,

MFelix

karimk

En respuesta a MFelix

Hola. Muchas gracias.

No puedo obtener unicodes de colores. Parece que sí porque tengo Windows 7. Estoy buscando otras opciones.

¿Es posible hacer el mismo tipo de medida que hizo, pero en lugar de Unicode, una imagen de una URL?

MFelix

En respuesta a karimk

Hola @karimk,

Puede hacer esto con la URL de la imagen; sin embargo, la parte del nombre no estará disponible. Las imágenes URL solo se pueden mostrar con URL y no con fórmulas compuestas.

Saludos,

MFelix

karimk

En respuesta a MFelix

Y ahora una evolución de la solución que me diste:

¿Es posible también dar un «valor» a los espacios en blanco de tiempo (sin valor de producción)? Mi objetivo es filtrar una fecha específica y hacer que me muestre todos los espacios en blanco, así puedo estar seguro de dónde puedo ubicar una producción.

MFelix

En respuesta a karimk

No estoy seguro de si esto es lo que necesita, pero si cambia esta parte de la fórmula, obtendrá un «valor» en lugar de un valor en blanco:

Occupation with symbol: =
SWITCH (
    TRUE (),
    occupation[Ocupation_Dates] = BLANK (), "VACANT",
    VALUES ( occupation[GÊNERO] ) = "Dramaturgia Diária", occupation[Ocupation_Dates] & UNICHAR ( 9650 ),
    VALUES ( occupation[GÊNERO] ) = "Dramaturgia Semanal", occupation[Ocupation_Dates] & UNICHAR ( 9724 ),
    VALUES ( occupation[GÊNERO] ) = "Escritorial", occupation[Ocupation_Dates] & UNICHAR ( 9670 ),
    VALUES ( occupation[GÊNERO] ) = "Variedades Diária", occupation[Ocupation_Dates] & UNICHAR ( 9677 ),
    VALUES ( occupation[GÊNERO] ) = "Variedades Noite", occupation[Ocupation_Dates] & UNICHAR ( 9608 ),
    occupation[Ocupation_Dates]
)

Saludos,

MFelix

MFelix

En respuesta a karimk

Hola @karimk,

La opción condicional solo funciona con números y no con texto, por lo que si mantiene la PRODUCCIÓN1, no devolverá la opción condicional y no funciona con 3 opciones.

Saludos
MFelix

karimk

En respuesta a karimk

Solo quiero decir que resolví mi pregunta 3) desde la parte inferior de mi respuesta.

TomMartens

En respuesta a karimk

Oye, sube el archivo de Excel a onedrive o dropbox y solo comparte el enlace. Esto le ahorrará a la gente mucho tiempo y también evitará errores tipográficos.

Saludos

Tomás

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *