Compartir a través de


Despivotar columnas

En Power Query, puede transformar columnas en pares de valor de atributo, donde las columnas se convierten en filas.

Diagrama de columnas despivote.

Diagrama que muestra la tabla izquierda con una columna y filas en blanco, y los valores atributos A1, A2 y A3 como encabezados de columna. En esta tabla, la columna A1 contiene los valores V1, V4 y V7. La columna A2 contiene los valores V2, V5 y V8. La columna A3 contiene los valores V3, V6 y V9. Con las columnas sin desagrupar, la tabla derecha del diagrama contiene una columna en blanco y filas en blanco. Una columna Atributos también contiene nueve filas con A1, A2 y A3 repetidos tres veces. Por último, una columna Valores contiene valores V1 a V9.

Por ejemplo, dada una tabla como la siguiente, donde las filas de país y las columnas de fecha crean una matriz de valores, es difícil analizar los datos de forma escalable.

Despivote columnas de ejemplo tabla inicial.

Captura de pantalla de una tabla que contiene una columna País configurada en el tipo de datos Texto y tres columnas con las fechas 1 de junio de 2023, 1 de julio de 2023 y 1 de agosto de 2023 configuradas como el tipo de datos Número entero. La columna País contiene EE. UU. en la fila 1, Canadá en la fila 2 y Panamá en la fila 3.

En su lugar, puede transformar la tabla en una tabla con columnas sin pivotar, como se muestra en la siguiente imagen. En la tabla transformada, es más fácil usar la fecha como atributo para filtrar.

Tabla de objetivos de ejemplo de columnas despivote.

Captura de pantalla de la tabla que contiene una columna País establecida como el tipo de datos Texto, una columna Atributo establecida como el tipo de datos Texto y una columna Valor establecida como el tipo de datos Número entero. La columna País contiene EE. UU. en las tres primeras filas, Canadá en las tres filas siguientes y Panamá en las últimas tres filas. La columna Attribute contiene la fecha del 1 de junio de 2023 en la primera, cuarta y séptima fila. La fecha del 1 de julio de 2023 aparece en la segunda, quinta y octava fila. Por último, la fecha del 1 de agosto de 2023 se encuentra en la tercera, sexta y novena fila.

La clave de esta transformación es que tiene un conjunto de fechas en la tabla que deben formar parte de una sola columna. El valor correspondiente para cada fecha y país debe estar en una columna diferente, creando eficazmente un par atributo-valor.

Power Query siempre crea el par atributo-valor mediante dos columnas:

  • Atributo: el nombre de los encabezados de columna que fueron desdinamizados.
  • Valor: los valores que estaban debajo de cada uno de los encabezados de columna sin invertir.

Hay varios lugares en la interfaz de usuario donde puede encontrar Despivotar columnas. Puede hacer clic con el botón derecho en las columnas que desea anular la dinamización o seleccionar el comando en la pestaña Transformar de la cinta de opciones.

Captura de pantalla de la operación de clic derecho para desagrupar columnas.

Captura de pantalla del comando Anular dinamización de columnas en la pestaña Transformar.

Hay tres maneras de desagrupar columnas de una tabla:

  • Anulación de dinamización de columnas
  • Anulación de dinamización de otras columnas
  • Despivotar solo las columnas seleccionadas

Despivotar columnas

Para el escenario descrito anteriormente, primero debe seleccionar las columnas que desea despivotar. Puede seleccionar Ctrl mientras selecciona tantas columnas como necesite. En este escenario, desea seleccionar todas las columnas excepto la denominada País. Después de seleccionar las columnas, haga clic con el botón derecho en cualquiera de las columnas seleccionadas y, a continuación, seleccione Deshacer tabla dinámica de columnas.

Muestra cómo anular la dinamización de las columnas de fecha de la tabla.

Captura de pantalla de la tabla con las columnas del 1 de junio de 2023, 1 de julio de 2023 y 1 de agosto de 2023 seleccionadas, y el comando Desdinamizar columnas seleccionado en el menú contextual.

El resultado de esa operación produce el resultado que se muestra en la imagen siguiente.

Deshacer columnas en la tabla final.

Consideraciones especiales

Después de crear la consulta a partir de los pasos anteriores, imagine que la tabla inicial se actualiza para que tenga un aspecto similar a la siguiente captura de pantalla.

Despivote las columnas actualizadas de la tabla de origen.

Captura de pantalla de la tabla con las mismas columnas de fecha del país original, 1 de junio de 2023, 1 de julio de 2023 y 1 de agosto de 2023, con la adición de una columna de fecha del 1 de septiembre de 2023. La columna País todavía contiene los valores de Estados Unidos, Canadá y Panamá, pero también se ha agregado Reino Unido a la cuarta fila y México a la quinta fila.

Observe que va a agregar una nueva columna para la fecha 1 de septiembre de 2023 (1/9/1/2023) y dos filas nuevas para los países o regiones del Reino Unido y México.

Si actualiza la consulta, observe que la operación se realiza en la columna actualizada, pero no afecta a la columna que no se seleccionó originalmente (País, en este ejemplo). Este comportamiento significa que también se despivota cualquier nueva columna que haya agregado a la tabla de origen.

En la imagen siguiente se muestra el aspecto de la consulta después de la actualización con la nueva tabla de origen actualizada.

Matriz de columnas sin distorsión en la tabla final actualizada.

Captura de pantalla de la tabla con columnas Country, Attribute y Value. Las cuatro primeras filas de la columna País contienen EE. UU., las cuatro primeras filas contienen Canadá, las terceras cuatro filas contienen Panamá, las cuatro cuartas filas contienen Reino Unido y las quintas cuatro filas contienen México. La columna Attribute contiene las fechas del 1 de junio de 2023, del 1 de julio de 2023 y de agosto de 2023 en las cuatro primeras filas, que se repiten para cada país.

Convertir otras columnas en filas

También puede seleccionar las columnas que no desea dinamizar y dinamizar el resto de las columnas de la tabla. Esta operación es donde Despivotar otras columnas toma relevancia.

Captura de pantalla de la tabla con el menú contextual de columna País seleccionado y el comando Desagrupar otras columnas resaltado.

El resultado de esa operación produce exactamente el mismo resultado que el que obtuvo de las columnas Unpivot.

Despivote otras columnas de la tabla de objetivos de ejemplo.

Captura de pantalla de la tabla que contiene una columna País establecida como el tipo de datos Texto, una columna Atributo establecida como el tipo de datos Texto y una columna Valor establecida como el tipo de datos Número entero. La columna País contiene EE. UU. en las tres primeras filas, Canadá en las tres filas siguientes y Panamá en las últimas tres filas. La columna Attribute contiene la fecha del 1 de junio de 2023 en la primera, cuarta y séptima fila. La fecha del 1 de julio de 2023 está en la segunda, quinta y octava fila. La fecha del 1 de agosto de 2023 aparece en la tercera, sexta y novena fila.

Nota:

Esta transformación es fundamental para las consultas que tienen un número desconocido de columnas. La operación despivota todas las columnas de la tabla, excepto las que seleccionó. Este tipo de transformación es una solución ideal si el origen de datos de tu escenario tiene nuevas columnas de fecha en una actualización de datos, ya que esas nuevas columnas se seleccionan y se reorganizan.

Consideraciones especiales

De forma similar a la operación Despivotar columnas , si la consulta se actualiza y se seleccionan más datos del origen de datos, todas las columnas se despivotan excepto las seleccionadas anteriormente.

Para ilustrar este proceso, supongamos que tiene una nueva tabla como la de la siguiente imagen.

Tabla de origen transpuesta de ejemplo.

Captura de pantalla de la tabla con país, 1 de junio de 2023, 1 de julio de 2023, 1 de agosto de 2023 y 1 de septiembre de 2023, con todas las columnas establecidas en el tipo de datos Text. La columna País contiene, de arriba abajo, Estados Unidos, Canadá, Panamá, Reino Unido y México.

Puede seleccionar la columna País y, a continuación, seleccionar Deshacer dinamización de otra columna, lo que produce el siguiente resultado.

Ejemplo de desagrupar otras columnas de la tabla final actualizada.

Captura de pantalla de la tabla con columnas Country, Attribute y Value. Las columnas Country y Attribute se establecen en el tipo de datos Text. La columna Valor se establece en el tipo de datos Valor completo. Las cuatro primeras filas de la columna País contienen EE. UU., las cuatro primeras filas contienen Canadá, las terceras cuatro filas contienen Panamá, las cuatro cuartas filas contienen Reino Unido y las quintas cuatro filas contienen México. La columna Attribute contiene el 1 de junio de 2023, el 1 de julio de 2023, el 1 de agosto de 2023 y el 1 de septiembre de 2023 en las cuatro primeras filas, que se repiten para cada país.

Despivotar solo las columnas seleccionadas

El propósito de esta última opción es deshacer la pivoteación solo de columnas específicas de tu tabla. Esta opción es importante para escenarios en los que se trabaja con un número desconocido de columnas del origen de datos. Permite despivotar solo las columnas seleccionadas.

Para realizar esta operación, seleccione las columnas que se van a despivotar, que en este ejemplo son todas las columnas excepto la columna País . A continuación, haga clic con el botón derecho en cualquiera de las columnas seleccionadas y seleccione Desagrupar solo las columnas seleccionadas.

Captura de pantalla de la tabla con las columnas de fecha seleccionadas y las columnas no dinámicas solo seleccionadas resaltadas.

Observe cómo esta operación produce la misma salida que los ejemplos anteriores.

Despivote solo las columnas seleccionadas en la tabla final.

Captura de pantalla de la tabla que contiene una columna País establecida como el tipo de datos Texto, una columna Atributo establecida como el tipo de datos Texto y una columna Valor establecida como el tipo de datos Número entero. La columna País contiene EE. UU. en las tres primeras filas, Canadá en las tres filas siguientes y Panamá en las últimas tres filas. La columna Attribute contiene la fecha del 1 de junio de 2023 en la primera, cuarta y séptima fila. La fecha del 1 de julio de 2023 está en la segunda, quinta y octava fila. La fecha del 1 de agosto de 2023 aparece en la tercera, sexta y novena fila.

Consideraciones especiales

Después de realizar una actualización, si la tabla de origen cambia para tener una nueva columna 1/9/2020 y nuevas filas para Reino Unido y México, la salida de la consulta es diferente de los ejemplos anteriores. Supongamos que nuestra tabla de origen, después de una actualización, cambia a la tabla en la imagen siguiente.

Captura de pantalla de la tabla de origen actualizada sin dinamizar solo para las columnas seleccionadas.

La salida de la consulta es similar a la siguiente imagen.

Captura de pantalla de la tabla final actualizada después de desagrupar solo las columnas seleccionadas.

Parece así porque la operación de desagregación se aplicó solo en las columnas 6/1/2020, 7/1/2020 y 8/1/2020, por lo que la columna con el encabezado 9/1/2020 permanece sin cambios.