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-18 | Audie Livengood | 3 | 14 |
28-Oct-17 | Curt Gatz | 2 | 7 |
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/2018 | Audie Livengood | 1/25/2018 |
1/11/2018 | Audie Livengood | 2/8/2018 |
1/11/2018 | Audie Livengood | 2/22/2018 |
1/11/2018 | Audie Livengood | 3/8/2018 |
10/28/2017 | Curt Gatz | 11/4/2017 |
10/28/2017 | Curt Gatz | 11/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’:
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:
=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]
Usamos la opción ‘Expandir a nuevas filas’ y el resultado final se verá así:
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í:
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.
excelente articulo Miguel, muchas gracias. 🙂