Guía Definitiva a Anular de Dinamización de Otras Columnas en Power Query con Lenguaje M y Funciones Personalizadas.
En este taller virtual ejecutado en directo los días: 30, 31 de agosto y 1 de septiembre, recorre la operación de Anulación de Dinamización de Otras Columnas o ADOC para acortar, estudiando desde sus aspectos básicos, pasando por un entendimiento de su ejecución interna o mecánica, ademas, de resaltar detalles que generalmente se dejan implícitos, todo ello para resolver escenarios más complejos: Patrones a lo largo de las columnas (abultados) y Patrones de tablas dinámicas con múltiples niveles que agrupan filas (rótulos) y múltiples niveles que agrupan columnas (encabezados), para al final crear una función personalizada que resuelva el caso genérico NxM, función que por cierto ya hace parte de Power Query Zone: Table.PivotNxMToTabular.
Episodio 1, Anulación de Dinamización y Formato Abultado
El primer episodio del taller virtual: Guía Definitiva a Anular Dinamización en Power Query, estudiamos los fundamentos de la operación Anulación de Dinamización, concretamente la variante que deriva del comando Anulación de Dinamización de Otras Columnas (A.D.O.C) siendo el centro de estudio de todo el taller, operación la cual internamente el Mashup Engine traduce en la función: Table.UnpivotOtherColumns, adicionalmente, resaltamos detalles, aunque sutiles, de vital importancia.
Estos puntos en anulación de dinamización se suelen dejar implícitos, por lo que nadie los comenta, sin embargo, salen relucir en escenarios más complejos, tal es el caso de formato abultado con agujeros, donde si no los tenemos presente puede llevar confusiones y demora en la resolución de los casos, por ello en esta publicación hacemos hincapié en estas sutilezas, asimismo ejecutamos la forma de solucionarlo y el porque es su importante tenerlo cristalino.
Episodio 2, Formato Tabla Dinámica Complejo o NxM
En este segundo episodio nos adentramos en el estudio de un formato que tiene etiquetas para agrupar conjuntos de filas en múltiples niveles y lo propio en filas, es decir, existen etiquetas que agrupan conjuntos de filas en múltiples niveles, por ejemplo:
Iniciamos con un el caso más simple: 2×1, para luego detallar que sucede en un caso 2×2, para finalmente tomar un caso 3×3 y derivar un algoritmo que se pueda utilizar de forma genérica en cualquier escenario NxM, creando un receta para utilizar a «ojos cerrados», es más, se pone a prueba con el caso hipotético 5×3 de la imagen anterior.
Episodio 3, Creando Función Personalizada par Formato NxM
Para culminar el taller, aprovechamos las bondades de la interfaz junto con exploraciones de la funciones del lenguaje M para crear una función personalizada que resuelva el formato de tabla dinámica NxM y no tener que hacer el pasos a paso.
A tener en cuenta: Anular dinamización es una operación que se puede llegar plegar, es decir, se puede dejar este trabajo pesado para que lo ejecute el origen de datos al que nos conectamos y así tener un mejor rendimiento, no obstante, si el origen permite el plegado de consultas, bien sea que por que no cuenta con un lenguaje de consultas o no es soportada por Power BI, entonces, la operación de anulación de dinamización, sin importar la variante, debe cargar y mantener todos los datos en memoria para ejecutar la evaluación/transformación.
— Miguel Caballero