La función Table.Pivot() del lenguaje M nos ofrece la capacidad de obtener como resultado una tabla que contiene un valor agregado para cada valor único de una columna. Cuando usamos esta función, Power Query agrupa cada valor mediante la agregación que seleccionemos y rota (pivota) los datos de la columna de atributo para convertirlos en encabezados de columna.

Desafortunadamente, Table.Pivot() sólo puede pivotar sobre una columna a la vez, por lo que si necesitamos realizar esta operación sobre más de una columna tenemos que llevar a cabo un sencillo proceso. Imaginemos que disponemos de la siguiente tabla:


Y nos gustaría poder dinamizar la columna History Status utilizando dos columnas de valores, Time y Volume, de manera que obtengamos el siguiente resultado:


Realizar esta transformación es muy sencillo, y solo vamos a necesitar utilizar el interfaz gráfico de Power Query, sin necesidad de escribir código personalizado.

El primer paso consiste en anular la dinamización de las dos columnas de valores sobre las que nos gustaría pivotar la columna de atributo:


El resultado es el siguiente:


A continuación, combinamos las dos columnas de atributos, History Status y la nueva columna creada a partir de los encabezados de las columnas sobre las que hemos realizado la operación:


Finalmente, sobre esta nueva columna realizamos la operación de dinamización y ya tendríamos el resultado que estábamos buscando. De esta forma, podemos dinamizar sobre cualquier número de columnas de valores en Power Query de manera rápida y sencilla: