---
schema_version: "1"
id: cbbe6829f8c9455b87a8aa26509fb5f1b60aaf050171da2949cc70325b9a406c
title: Pivotar datos de columnas a filas
collection: tableau
version: next
locale: es-es
portal_url: https://docs.salesforce.com/tableau/next/es-es/pro/desktop/pivot.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/es-es/pivot.htm
source_site: help.tableau.com
content_type: documentation
content_hash: f748274ac8de04ad0a255aac51de414980fa5480d79e2222407e577ceb3b00e1
description: Pivot data from crosstab columns to rows, including via custom SQL.
---
[Saltar al contenido principal](#main-content)

# Pivotar datos de columnas a filas

En ocasiones, el análisis de datos almacenados en formato de tabulación cruzada puede resultar complejo en Tableau. A la hora de trabajar con Microsoft Excel, archivos de texto, Hojas de cálculo de Google y fuentes de datos en formato PDF, puede convertir el formato de tabulación cruzada de los datos en un formato en columnas. Si trabaja con otras fuentes de datos, puede crear una [Pivotar mediante SQL personalizado (Tableau Desktop)](#Pivot).

Supongamos, por ejemplo, que tiene especificado el número de dispositivos vendidos por trimestre a tres proveedores distintos en tres campos diferentes. Puede pivotar los datos para que el proveedor se especifique en un campo y el número de dispositivos vendidos en otro.

![El contenido pasó de columnas a filas.](/tableau/next/es-es/pro/desktop/es-es/Img/qs_pivot_example.png)

## Pivotar los datos

Una vez que haya configurado la fuente de datos, seleccione dos o más columnas en la cuadrícula. Haga clic en la flecha desplegable que se muestra junto al nombre de la columna y seleccione Pivotar. Se crearán dos nuevas columnas, "Nombres de campos de tabla dinámica" y "Valores de campos de tabla dinámica", que se agregarán a la fuente de datos. Las columnas nuevas sustituyen a las columnas originales que se hayan seleccionado para crear la tabla dinámica.

![Menú contextual en un campo con opción a un campo de tabla dinámica.](/tableau/next/es-es/pro/desktop/es-es/Img/qs_pivot_command.png)

## Añadir datos a la tabla dinámica

Para añadir más datos a la tabla dinámica seleccione otra columna, haga clic en la flecha desplegable que hay junto al nombre de la columna y seleccione Agregar datos a tabla dinámica. Antes de comenzar el análisis, compruebe que las columnas y los valores de la tabla dinámica tienen el aspecto deseado.

![Menú contextual en un campo con opción para agregar datos a la tabla dinámica.](/tableau/next/es-es/pro/desktop/es-es/Img/qs_pivot_add.png)

Para quitar una tabla dinámica, haga clic en la flecha desplegable que se muestra junto al nombre de la columna de tabla dinámica y seleccione Quitar tabla dinámica.

## Solución de problemas con pivotes

- **Los campos en rojo de la vista y los campos con signos de exclamación en el panel Datos**: como los campos originales se reemplazan con los nuevos campos pivote, ya no funcionarán las referencias a los campos originales en la vista. Como consecuencia, los campos se mostrarán en rojo en la vista, o bien aparecerá un signo de exclamación rojo junto al campo en el panel Datos.
- **Valores nulos en la cuadrícula:** si se quitan todos los campos originales que se usaron en el pivote (por ejemplo, en una actualización de extractos), se mostrarán valores nulos en los campos dinámicos.
- **Sin opción de tabla dinámica**: la tabla dinámica aparece al seleccionar dos o más columnas en una única fuente de datos de Microsoft Excel, archivo de texto, Hojas de cálculo de Google y .pdf. Si usa otra fuente de datos en Tableau Desktop, puede usar SQL personalizado para una tabla dinámica.

## Pivotar mediante SQL personalizado (Tableau Desktop)

También puede usar SQL personalizado para crear una tabla dinámica de sus datos, incluso si no trabaja con fuentes de datos de Excel, archivos de texto, Hojas de cálculo de Google y .pdf. Si utiliza el operador UNION ALL en una consulta personalizada de SQL, puede tomar valores de distintas columnas y colocarlas en una columna nueva.

Por ejemplo, supongamos que tiene la tabla **Contest**.

**Contest**

| Runner | Start Time | End Time |
| --- | --- | --- |
| Amanda | 03/09/2016 15:04 | 03/09/2016 15:25 |
| Oscar | 03/09/2016 15:04 | 03/09/2016 15:21 |
| William | 03/09/2016 15:04 | 03/09/2016 15:16 |

Para optimizar el análisis de estos datos en Tableau, puede utilizar la siguiente consulta personalizada de SQL para pivotar las columnas "Start Time" y "End Time" para que los valores estén en una sola columna.

Select \[Runner\]

, 'Start' as \[Action\]

, \[Start Time\] as \[Time\]

From \[Contest\]

Union ALL

Select \[Runner\]

, 'End' as \[Action\]

, \[End Time\] as \[Time\]

From \[Contest\]

La consulta personalizada de SQL anterior hace lo siguiente:

- Pivota el encabezado de columna **Start Time** en el valor de cadena **Start** y añade el valor a una columna nueva, denominada **Action**.
- Pivota el encabezado de columna **End Time** en el valor de cadena **End** y añade el valor a una columna nueva, denominada **Action**.
- Pivota las columnas **Start Time** y **End Time** para que los valores estén en una columna nueva, denominada **Time**.

En la siguiente tabla se muestran los resultados de esta consulta de SQL personalizada.

<table style="width: 80%;mc-table-style: url('Resources/TableStyles/Basic-Border-Light.css');" class="TableStyle-Basic-Border" cellspacing="0"><colgroup><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"><col class="TableStyle-Basic-Border-Column-Column1"></colgroup><thead><tr class="TableStyle-Basic-Border-Head-Header1"><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">Runner</th><th class="TableStyle-Basic-Border-HeadE-Column1-Header1">Action</th><th class="TableStyle-Basic-Border-HeadD-Column1-Header1">Time</th></tr></thead><tbody><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Amanda</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1"><p>Inicio</p></td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">03/09/2016 15:04</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Oscar</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Inicio</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">03/09/2016 15:04</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">William</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Inicio</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">03/09/2016 15:04</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Amanda</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">End</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">03/09/2016 15:25</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">Oscar</td><td class="TableStyle-Basic-Border-BodyE-Column1-Body1">End</td><td class="TableStyle-Basic-Border-BodyD-Column1-Body1">03/09/2016 15:21</td></tr><tr class="TableStyle-Basic-Border-Body-Body1"><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">William</td><td class="TableStyle-Basic-Border-BodyB-Column1-Body1">End</td><td class="TableStyle-Basic-Border-BodyA-Column1-Body1">03/09/2016 15:16</td></tr></tbody></table>

### Para pivotar datos mediante el SQL personalizado

1. Conéctese a los datos.
2. Haga doble clic en la opción Nueva personalización de SQL en el panel izquierdo. Para obtener más información, consulte [Conectarse a una consulta de SQL personalizada](https://help.tableau.com/v0.0/pro/desktop/es-es/customsql.htm).
3. En el cuadro de diálogo Editar SQL personalizado, copie y pegue la siguiente consulta personalizada de SQL y reemplace el contenido por información de su tabla:
    
    Select \[_Static Column_\]
    
    , '_New Value (from Column Header 1)_' as \[_New Column Header_\]
    
    , \[_Pivot Column Values 1_\] as \[_New Values_\]
    
    From \[_Table_\]
    
    Union ALL
    
    Select \[_Static Column_\]
    
    , '_New Value (from Column Header 2_' as \[_New Column Header_\]
    
    , \[_Pivot Column Values 2_\] as \[_New Values_\]
    
    From \[_Table_\]
    
    Union ALL
    
    Select \[_Static Column_\]
    
    , '_New Value (from Column Header 3_' as \[_New Column Header_\]
    
    , \[_Pivot Column Values 3_\] as \[_New Values_\]
    
    From \[_Table_\]
    
    Donde se aplica lo siguiente:
    
    - _Columna estática_: una lista de valores delimitados por coma con las columnas de _Tabla_, dimensiones y medidas, que no se deben incluir en el pivote.
    - _Nuevo valor (de los encabezados de columna 1-3)_: nombres nuevos que se asignan a los encabezados de columna originales, que se utilizan como valores de fila en el pivote.
    - _Valores de columna pivote 1-3_: columnas cuyos valores deben pivotarse en una sola columna.
    - _Nuevo encabezado de columna_: el nombre de la nueva columna que contiene los nuevos valores de fila de _Nuevo valor (de los encabezados de columna 1-3)_.
    - _Nuevos valores_: el nombre de la nueva columna que contiene los valores originales de _Valores de columna pivote 1-3_.
    - _Tabla_: la tabla a la que se ha conectado.
4. Haga clic en Aceptar.