Saltar al contenido principal

¿Cómo convertir una tabla de estilo matricial a tres columnas en Excel?

Suponiendo que tiene una tabla de estilo matricial que contiene encabezados de columna y encabezados de fila, y ahora le gustaría convertir esta tabla de estilo en una tabla de tres columnas, también se llama tabla de lista como se muestra en la siguiente captura de pantalla, ¿tiene alguna buena manera de resolver esto? problema en Excel?

Convierta una tabla de estilo matricial en una lista con tabla dinámica

Convierta la tabla de estilo de matriz en una lista con código VBA

Convierta la tabla de estilo de matriz en una lista con Kutools para Excel

doc convertir matriz a lista 1


En Excel, no existe una función directa para convertir la tabla de estilo matricial en una tabla de tres columnas, pero, si está familiarizado con la tabla dinámica, puede que le haga un favor. Siga los siguientes pasos:

1. Active la hoja de trabajo que desea usar, luego mantenga presionado Alt + Dy luego presione P en el teclado, en el emergente Asistente para tablas dinámicas y gráficos dinámicos diálogo, seleccionar Múltiples rangos de consolidación bajo el ¿Dónde están los datos que quieres analizar? sección, y luego elija Tabla dinámica bajo el ¿Qué tipo de informe desea crear? sección, ver captura de pantalla:

doc convertir matriz a lista 2

2. Luego haga clic Siguiente botón, en el Paso 2a de 3 asistente, seleccione el Crearé los campos de la página opción, ver captura de pantalla:

doc convertir matriz a lista 3

3. Sigue haciendo clic Siguiente botón, en el Paso 2b de 3 asistente, clic doc convertir matriz a lista 5 para seleccionar el rango de datos que desea convertir y luego haga clic en Añada para agregar el rango de datos al Todos los rangos cuadro de lista, ver captura de pantalla:

doc convertir matriz a lista 4

4. Y haga clic en Siguiente botón, en Paso 3 de 3 asistente, seleccione una ubicación para la tabla dinámica que desee.

doc convertir matriz a lista 6

5. Luego haga clic Acabado botón, se ha creado una tabla dinámica a la vez, vea la captura de pantalla:

doc convertir matriz a lista 7

6. En la tabla dinámica, haga doble clic en la celda de intersección del Gran Total, en este caso, haré doble clic en la celda F22 y generará una tabla de tres columnas como se muestra en la siguiente captura de pantalla:

doc convertir matriz a lista 8

7. Y finalmente, puede convertir el formato de la tabla al rango normal seleccionando la tabla y luego elegir Mesa > Convertir a rango en el menú contextual, vea la captura de pantalla:

doc convertir matriz a lista 9


Si no le gusta el primer método, el siguiente código VBA también puede ayudarlo.

1. prensa Alt + F11 para mostrar el Microsoft Visual Basic para aplicaciones ventana.

2. En la ventana, haga clic en recuadro > Módulo para mostrar una nueva ventana del módulo, luego copie y pegue el siguiente código VBA en la ventana del módulo.

Código de VBA: convierta la tabla de estilo de matriz en una lista

Sub ConvertTable()
'Update 20150512
Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
xTitleId = "KutoolsforExcel"
Set cRng = Application.InputBox("Select your Column labels", xTitleId, Type:=8)
Set rRng = Application.InputBox("Select Your Row Labels", xTitleId, Type:=8)
Set Rng = Application.InputBox("Select your data", xTitleId, Type:=8)
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
    For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
        outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
        outRng.Cells(k, 2) = xWs.Cells(xRow, j)
        outRng.Cells(k, 3) = xWs.Cells(i, j)
        k = k + 1
    Next j
Next i
End Sub

3. Entonces presione F5 para ejecutar este código, y aparece un cuadro de aviso que le permite seleccionar las etiquetas de columna de los datos, vea la captura de pantalla:

doc convertir matriz a lista 10

4. Y luego haz clic OK , en el siguiente cuadro de aviso, seleccione las etiquetas de fila, vea la captura de pantalla:

doc convertir matriz a lista 11

5. Sigue haciendo clic OK, luego seleccione el rango de datos excluyendo los encabezados de columna y fila en el cuadro de aviso, vea la captura de pantalla:

doc convertir matriz a lista 12

6. Y luego haz clic OK, en este cuadro de diálogo, seleccione una celda en la que desee ubicar el resultado. Ver captura de pantalla:

doc convertir matriz a lista 13

7. Por último, haz clic OKy obtendrá una tabla de tres columnas a la vez.


Ambos métodos anteriores son algo problemáticos, aquí, les presentaré una manera fácil: Kutools for Excel, Con su Dimensiones de la mesa de transposición función, puede convertir rápidamente entre una matriz de celdas y una tabla de lista.

Kutools for Excel : con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días

Después de instalar Kutools for Excel, siga los siguientes pasos:

1. Hacer clic Kutools > Gama de Colores > Dimensiones de la mesa de transposición, ver captura de pantalla:

2. En la Dimensiones de la mesa de transposición caja de diálogo:

(1.) Elija Tabla cruzada para listar opción bajo Tipo de transposición.

(2.) Y luego haga clic en doc convertir matriz a lista 5 Botón debajo Rango de fuente para seleccionar el rango de datos que desea convertir.

(3.) Luego haga clic en doc convertir matriz a lista 5 Botón debajo Rango de resultados para seleccionar una celda donde desea colocar el resultado.

doc convertir matriz a lista 15

3. Y luego haz clic OK botón, y obtendrá el siguiente resultado que incluye el formato de celda original:

doc convertir matriz a lista 16

Con esta utilidad, también convertir tabla de lista plana en tabla cruzada bidimensional.

Para saber más sobre esta función Transponer dimensiones de tabla.

¡Descargue y pruebe Kutools para Excel ahora!


Kutools for Excel: con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días. ¡Descarga y prueba gratis ahora!

Las mejores herramientas de productividad de oficina

🤖 Asistente de IA de Kutools: Revolucionar el análisis de datos basado en: Ejecución inteligente   |  Generar codigo  |  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos  |  Invocar funciones de Kutools...
Características populares: Buscar, resaltar o identificar duplicados   |  Eliminar filas en blanco   |  Combine columnas o celdas sin perder datos   |   Ronda sin fórmula ...
Super búsqueda: Búsqueda virtual de criterios múltiples    Búsqueda V de valores múltiples  |   VLookup en varias hojas   |   Búsqueda difusa ....
Lista desplegable avanzada: Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple ....
Administrador de columnas: Agregar un número específico de columnas  |  Mover columnas  |  Toggle Estado de visibilidad de columnas ocultas  |  Comparar rangos y columnas ...
Características destacadas: Enfoque de cuadrícula   |  Vista de diseño   |   Gran barra de fórmulas    Administrador de hojas y libros de trabajo   |  Biblioteca de Recursos (Texto automático)   |  Selector de fechas   |  Combinar hojas de trabajo   |  Cifrar/descifrar celdas    Enviar correos electrónicos por lista   |  Súper filtro   |   Filtro especial (filtro negrita/cursiva/tachado...) ...
Los 15 mejores conjuntos de herramientas12 Texto Herramientas (Añadir texto, Quitar caracteres, ...)   |   50+ Tabla Tipos (Diagrama de Gantt, ...)   |   40+ Práctico Fórmulas (Calcular la edad según el cumpleaños, ...)   |   19 Inserción Herramientas (Insertar código QR, Insertar imagen desde la ruta, ...)   |   12 Conversión Herramientas (Números a palabras, Conversión de Moneda, ...)   |   7 Fusionar y dividir Herramientas (Filas combinadas avanzadas, Células partidas, ...)   |   ... y más

Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo.  Haga clic aquí para obtener la función que más necesita...

Descripción


Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
Comments (10)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thanks for the tips. It's greatly saved my time and manual efforts.
This comment was minimized by the moderator on the site
Anybody know how to do this in a mac?
This comment was minimized by the moderator on the site
Sub ConvertTable_UseThis()

Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
Dim xRng As Range, cRow As Integer, cCol As Integer


xTitleId = "Convert Table"
Set xRng = Application.Selection
Set xRng = Application.InputBox("Please select range:", "Number Range", Selection.Address, , , , , 8)
cRow = xRng.Rows.Count
cCol = xRng.Columns.Count


Set cRng = Range(xRng.Cells(1, 2), xRng.Cells(1, cCol))
Set rRng = Range(xRng.Cells(2, 1), xRng.Cells(cRow, 1))
Set Rng = Range(xRng.Cells(2, 2), xRng.Cells(cRow, cCol))
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
outRng.Cells(k, 2) = xWs.Cells(xRow, j)
outRng.Cells(k, 3) = xWs.Cells(i, j)
k = k + 1
Next j
Next i
End Sub
This comment was minimized by the moderator on the site
For the VBA Code, one seems to really need this:xColumns = cRng.Column
xRow = rRng.Row
This comment was minimized by the moderator on the site
do you have a code with a tweak where the leftmost column of a selection is column labels and the topmost row of a selection is row labels?

Thanks in advance,
This comment was minimized by the moderator on the site
Sub ConvertTable_UseThis()

Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
Dim xRng As Range, cRow As Integer, cCol As Integer


xTitleId = "Convert Table"
Set xRng = Application.Selection
Set xRng = Application.InputBox("Please select range:", "Number Range", Selection.Address, , , , , 8)
cRow = xRng.Rows.Count
cCol = xRng.Columns.Count


Set cRng = Range(xRng.Cells(1, 2), xRng.Cells(1, cCol))
Set rRng = Range(xRng.Cells(2, 1), xRng.Cells(cRow, 1))
Set Rng = Range(xRng.Cells(2, 2), xRng.Cells(cRow, cCol))
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
outRng.Cells(k, 2) = xWs.Cells(xRow, j)
outRng.Cells(k, 3) = xWs.Cells(i, j)
k = k + 1
Next j
Next i
End Sub
This comment was minimized by the moderator on the site
Thanks a Ton, really appreciate the way you have explained. very useful
This comment was minimized by the moderator on the site
Thanks alot for this useful tool
This comment was minimized by the moderator on the site
Thanks, this was exactly what I was looking for. Awesome:)
This comment was minimized by the moderator on the site
what if i have 4 or more column?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations