Convertir desde-hasta en filas (otro modo, con operador de listas y con ejemplos)

Hace algún tiempo publiqué un post Transformar columnas desde-hasta en filas, en el que mediante funciones convertíamos rangos fecha desde-hasta en columnas en tantas filas como dias en el periodo. En el presente post vamos a ver otro modo más sencillo que nos proporcionará el mismo resultado, y dos casos de ejemplo en los que recientemente lo he puesto en práctica.

Se basa en el uso del operador de lista. El siguiente código M devuelve una lista:

let
Source = {1,2, 3, 4}
in
Source

Este operador admite la posiblidad de un desde-hasta, separando por “..”. Así el siguiente código nos devolverá el mismo resultado:

let
Source = {1..4}
in
Source

Con números nos dará la secuencia entre ambos.

Si lo hacemos con textos puede que obtengamos resultados imprevisibles o errores, pero sí podríamos generar un abecedario:

Aplicarlo a tablas de proyecto

Vamos a ver la siguiente tabla:

Si añadimos una columna personalizada especificando nombre columna inicio..final:

Obtendremos una columna tipo lista:

Que bastará expandir como nuevas filas (New Rows):

Y obtendremos el resultado buscado:

En el caso de fechas podemos hacer lo mismo, aunque antes habrá que convertirlas a número y aplicar la misma operativa:

Al expandir la lista obtendremos números, que tendremos que convertir de nuevo a fecha:

Ejemplo de casos de aplicación

Presupuesto anual convertido a meses

Recientemente me pasaron una Excel con importes anuales del presupuesto de una cuenta de Pérdidas y ganancias. Con este sistema podemos hacer fácilmente la división lineal de estos importes entre meses (o dias) y poder comparar con datos reales, adaptando la granularidad del presupuesto al dato real.

Los datos de origen eran los siguientes:

El objetivo es convertir meses y asignar el valor presupuesto al primer dia del mes.

Añadiremos un columna lista con 12 elementos (tantos como meses):

{1..12}

También añadiremos una columna que divida el importe anual entre 12:

Tras expandir la lista podremos crear una columna fecha usando columnas ejercicio, lista y dia 1:

Tras cambiar tipo de dato y quitar columnas innecesarias tendremos nuestro presupuesto preparado para relacionar en nuestro modelo:

En un hotel: Calendario de apertura con disponibilidad de habitaciones

La tabla de partida era algo similar a la siguiente:

El resultado final aplicando los explicado anteriormente:

Que relacionando adecuadamente en le modelo va a permitir sacar fácilmente rátios, como el de ocupación.

En el mismo hotel: Calendario con temporadas y precios

En este caso, como el anterior sacamos la tarifa diaria según día de la temporada, y hacer comparaciones con precios reales de venta será casi trivial:

En muchos casos el precio de fin de semana o festivos es superior:

Con unos pasos adicionales en los que identifiquemos el día de la semana y un simple condicional podremos sustituir la tarifa del día con el precio que corresponda.

Ya habéis visto lo sencillo del proceso y el ahorro de tiempo que aplicarlo puede suponer.

Espero que te sea de utilidad y que puedas ponerlo en práctica.

Te puede interesar...

2 comentarios en «Convertir desde-hasta en filas (otro modo, con operador de listas y con ejemplos)»

  1. Hola Santiago,
    Que buen ejemplo.
    Por cierto me encanto tu charla en la Virtual Conf 2021.
    Con estos ejemplos bajas al mundo terrenal… el movimiento se demuestra andando y esto es lo que haces desde mi punto de vista, con estos artículos…. poner ejemplos prácticos.
    Gracias por compartir.

    1. Hola Arnau, muchas gracias por tus comentarios, que me animan enormemente a continuar con esta labor divulgativa. Siempre procuro basar los post en casos reales, esos que no me permiten dedicar todo el tiempo que desearía a publicar más… También agradezco mucho que recuerdes la charla, en la que procuré aportar un punto de vista más enfocado en ser imaginativos al buscar soluciones, que en mostrar técnicas puras. Un poco arriesgado para mi estreno, pero parece que gustó.
      Ya informaré más detalladamente, pero te adelanto que en marzo de 2022 daré otra charla en el Power BI summit organizado por Radacad (https://globalpowerbisummit.com/). En este caso el mío será un tema muy de “nicho” (Dynamics Business Central 365 y power BI), pero invito a ver el cartel, que tiene agenda muy interesante con ponentes muy conocidos y además, por primera vez también en español.
      Un cordial saludo y hasta pronto!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.