Miguel Escobar Publicada diciembre 7, 2018

Fechas recurrentes con Power BI / Power Query para Excel

Power BIPower BIPower QueryPower Query

Imagina este escenario, eres un médico que tiene múltiples citas con pacientes a diario. A veces, necesitas programar citas de seguimiento con tus pacientes solo para asegurarte de que todo va según lo planeado y, básicamente, hacer un chequeo.

Registras estas citas en una hoja de cálculo sencilla como la siguiente:

Initial
Appointment
Patient
Name
Follow
up Appointments Needed
Frequency
(every x days)
11-Jan-18Audie Livengood314
28-Oct-17Curt Gatz27

Traducciones:

  • Initial Appointment  = cita inicial
  • Patient Name = Nombre de paciente
  • Follow up Appointments Needed = Citas de Seguimiento necesarias
  • Frequency (every x days)  = Frecuencia (cada x días)

Donde, por ejemplo, la primera fila me dice que el paciente de nombre ‘Audie Livengood’ tuvo una cita inicial el 11 de enero de 2018 y necesita citas de seguimiento cada 14 días, para un total de 3 citas de seguimiento.

Deseas calcular cómo se vería tu agenda según las citas que hagas y el número de citas de seguimiento que necesitas en promedio por paciente, por lo que deseas utilizar Power Query para calcular una tabla como la siguiente:              

Initial
Appointment
Patient
Name
Follow
Up Appointments Dates
1/11/2018Audie Livengood1/25/2018
1/11/2018Audie Livengood2/8/2018
1/11/2018Audie Livengood2/22/2018
1/11/2018Audie Livengood3/8/2018
10/28/2017Curt Gatz11/4/2017
10/28/2017Curt Gatz11/11/2017

¿Puedes hacer esto con Power Query? ¡Sí! Claro que sí.

Paso 1: Carga la tabla de citas en Power Query

Puedes conectarte a los datos como quieras. En nuestro caso, usaremos la sencilla operación «Desde una tabla» para poder cargar esos datos dentro del ‘Editor de Query’:

image

y una de las cosas de las que debes asegurarte es que una vez que estés dentro del Editor de Query la columna ‘Initial Appointment’ esté configurada con un formato de ‘Fecha’, ya que en algunos casos Power Query podría usar automáticamente el formato de Fecha/Hora en lugar de solo la Fecha.

Paso 2: Crea una nueva columna personalizada

Y aquí viene la magia. Debemos dirigirnos a la opción ‘Agregar columna’, hacer clic en el botón ‘Columna personalizada’ y usar la siguiente fórmula:

image

=List.Dates( 
Date.AddDays([Initial Appointment],[#"Frequency (every x days)"]),
[Follow up Appointments Needed],
Duration.From([#"Frequency (every x days)"]) 
)

Aquí usamos la función List.Dates que requiere 3 parámetros:

  • Fecha inicial
    • en este caso, estamos calculando la fecha inicial en base a lo que sería la primera cita de seguimiento. Para hacer eso, simplemente usamos la función Date.AddDays que agrega un número de días a una fecha, así que usamos la fecha que tenemos en [Initial Appointment] y la cantidad de días que obtenemos de la columna [Frequency]
  • Conteo
    • El producto de List.Dates es una lista de fechas. Este parámetro se usa para determinar cuántas fechas/elementos debe tener la lista. Simplemente podemos usar el valor que tenemos en la columna [Follow Up Appointments Needed] ya que ya tiene el número total de fechas que necesitamos tener.
  • Paso
    • Aquí es donde entra el offset. Quizás pensarías que al crear una lista de fechas, esas fechas NECESITAN estar contiguas, pero la verdad es que no necesitan estarlo. Puedes tener un offset basado en días, como vemos en este caso. En esta fórmula le indicamos a List.Dates que nos presente una lista de fechas que tenga un offset basado en el valor que vemos en la columna [Frequency], pero como el valor dentro de esa columna es un número, usamos en Duration.From para convertirlo en un valor de duración.

Paso 3: Expande la columna [Follow Up Dates]

image

Usamos la opción ‘Expandir a nuevas filas’ y el resultado final se verá así:

image

Antes de pulsar ‘Cerrar y cargar’, asegúrate de configurar el tipo de datos a Fecha para esta nueva columna. Luego, puedes cargar estos datos en una nueva tabla dentro de Excel y comenzar a hacer tu análisis.

Paso 4: Analizando tus datos

Todo este artículo se basa en uno de los videos que creé para Power Query Academy. El resultado final se ve algo así:

image

Ken y yo somos los médicos y estamos tratando de averiguar cuántos pacientes tenemos diariamente para asegurarnos de que no estemos dando más citas de las que podemos atender. Por supuesto, todos estos datos son ficticios, pero tienen una aplicación en la vida real.

¿Quieres aprender sobre otros escenarios similares a este? Lee una publicación actualizada aquí.

Power BIPower BIPower QueryPower Query
Subscribe
Notify of
guest
1 Comentar
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Osiel

excelente articulo Miguel, muchas gracias. 🙂