Transcripción del video
Hola. Hoy voy a estar respondiendo a la pregunta que me he visto Gustavo en el curso de Power BI y la pregunta es la siguiente “Cálculo de días laborales”.
Entonces dice “Hola, tengo una duda ¿Cómo puedo calcular los días laborales en un periodo?, por ejemplo, cuantos días laborales pasaron del primero de enero al 28 de febrero. Agradezco su apoyo”.
Como te decía, le respondí más abajo, Pero vamos a ver cómo lo podemos hacer. Y ahora vamos a ver. Aquí tengo una visualización de tabla, sencilla donde nomás tengo el año y el mes de mi Tabla Calendario.
Entonces le comentaba que este problema lo podemos dividir en dos. Lo podemos dividir en los días laborales de la semana. Por ejemplo, Supongamos que esta empresa trabaja el lunes a viernes. Entonces no trabajan sábados y domingos y además los días feriados, como por ejemplo el primero de enero de cada año. Después tenemos, otros días festivos que ya depende y varía dependiendo del del país obviamente.
Entonces, ¿cómo podemos resolver este problema?
Lo primero que vamos a hacer es nos vamos a ir a la tabla calendario y vamos a agregar una nueva columna. Y en esta columna, primero vamos a calcular los días de laborales de la semana. Le voy a llamar días laborales de la semana que va a ser prácticamente de lunes a viernes. Entonces aquí tenemos una columna. Aquí tenemos una por una que dice el día de la semana Si te fijas, dice tres, cuatro, cinco, seis, siete y luego uno, dos, tres, cuatro hasta el siete. Y así. Y se repite esto para todos los días de nuestra tabla calendario.
Bueno, esto si va a significar el lunes es el uno, el martes es el dos y así hasta el sábado va a ser el seis y el domingo a hacer el siete. Entonces, con esa información vamos a agregar un condicional IF, donde vamos a poner esto que ya conocemos. Entonces tenemos Si el día de la semana es igual a 6 o Si el día de la semana es igual a siete. Vamos a ponerle que no es un día laboral porque es algo Domingo y si no es ninguno de esos, le vamos a poner que sí.
Cerramos paréntesis y ahí vamos a tener nuestra primer con una columna calculada y está trabajando como nosotros esperamos.
Ahora el tema de los días feriados es un poco diferente, no lo podemos hacer así directamente. Para eso. Lo que le proponía es que podríamos trabajar con una tabla que esté separada de Power BI, por ejemplo, que la tengo un Excel. Pero podría ser una base de datos de Access o en una base de datos, en SQL, cualquier otro administrador de bases de datos.
Entonces esta tabla va a mostrar comentarios, que estos comentarios va a significar que ese día no se trabajó, por ejemplo, el primero de enero del 2020, pues es inicio de año. Entonces no se trabajó, además de que, si le ponemos los comentarios, después cuando estamos haciendo los análisis, vamos a poder identificar en caso de que se ahí haya habido algún comportamiento extraño.
Vamos a poder ver que ese día pues por ejemplo hubo para de operaciones. Entonces esta empresa tuvo un paro de operaciones el día 6 de febrero del 2020 y el día 7 de febrero del 2020. Entonces todo estamos poniendo como un comentario. Y así, en caso de que se tenga que analizar más a fondo lo que está pasando ya, cuando veas el comportamiento en Power BI pues vas a poder ver lo que pasó con estos comentarios.
Entonces eso es lo que le estoy proponiendo. Ahora hay que conectar esta tabla a nuestro modelo de datos. Vamos a conectar esa tabla con el comentario. Esta tabla la voy a tener que relacionar con nuestra tabla calendario.
Fíjate como tenemos relacionadas esas dos columnas. Es una relación de uno a uno y en este caso tiene un filtro en doble sentido dar una dirección del filtro en doble sentido. Entonces me voy a ir aquí a esta la pestaña de datos y vamos a agregar una nueva columna. Esta nueva columna lo único que va a ser es va a arrastrar esta información, el comentario, entonces aquí vamos a poner días no trabajados.
Utilizamos la función RELATED y todo lo que tenga un comentario va a significar que ese día no se trabajó. Aquí tenemos que el primero de enero del 2020 fue inicio de año nos de trabajo y así tenemos también el paro de operaciones. Y si nos vamos más abajo, vamos a verlo.
Ahora estas son las dos columnas ya tenemos el problema dividido en dos en días laborales de la semana y en días no trabajados. Y ahora vamos a agregar una nueva columna donde vamos a poner la información de estas dos columnas y vamos a calcular si ese fue un día laboral o no.
Entonces a esto le vamos a llamar Día laboral. Aquí ponemos el condicional y luego a el condicional IF. Voy a escribir días laborales de la semana. Si esto es igual a Si, ya que hay que analizar si esto es igual a si fue un día laboral de la semana, pero también tenemos que identificar si esto fue un blanco o no.
Se tienen que cumplir las dos condiciones para que esto sea un día laboral. Que esto sea un sí y aquí vamos a valorar con la función ISBLANK para esta columna que esta columna sean días no trabajados. Entonces, si se cumplen esas dos condiciones aquí vamos a poner que “Si” y si no la vamos a poner que “No” y vamos a ver el resultado.
Fíjate lo que tenemos para el primero de enero, fue un miércoles, pero fue inicio de año. O sea, fue un día laboral de la semana normalm, pero como fue inicio de año, no va a ser día laboral porque no se trabaja el primero de enero Y así para el día después, para el siguiente día que fue el dos de enero, tres tres de enero y así. Y si te fijas aquí los fines de semana? Pues me está poniendo que no. Y así entonces ya tenemos aquí todos los días laborales.
Pero ahora eso no es todo. Ahora tenemos que contabilizar esos. Si lo que tenemos que contabilizar son los “Si”, entonces aquí vamos a agregar una nueva medida, como un contador condicional, utilizando la función CALCULATE. Entonces aquí vamos a ponerle días laborales. Vamos a poner COUNT de días laborales. Vamos a poner que el día laboral tiene que ser igual a sí. Entonces cierro este paréntesis, cerramos el paréntesis de CALCULATE .
Ahora puedo arrastrar esto y fíjate como nos está poniendo esto y como Gustavo me estaba preguntando por Enero y Febrero, pues fueron veintidós días de enero y dieciocho días de Febrero.
Aquí se están considerando los días de paro de operaciones de febrero. Ahora estas columnas que tenemos aquí, por ejemplo, de día laboral, las podríamos ocultar. Le podría poner Hide. Y esto es para que no se vaya a confundir el momento de que estemos arrastrando campos a nuestras visualizaciones.
Fíjate cómo ahora se ven más limpios nuestros campos de la tala calendario.
Si tienes alguna otra manera que creas que es mejor, lo puedes poner como comentarios. Y también sé que descargar este archivo solamente sigue el link que se encuentra como como comentario. Eso es todo para esta ocasión. Y nos vemos en la próxima. Hasta luego.