Ir para o conteúdo principal

Como converter uma tabela de estilo de matriz em três colunas no Excel?

Supondo que você tenha uma tabela em estilo de matriz que contém cabeçalhos de coluna e cabeçalhos de linha, e agora você gostaria de converter esta tabela de estilo em uma tabela de três colunas, ela também é chamada de tabela de lista como mostrado a seguir, você tem alguma boa maneira de resolver isso problema no Excel?

Converter tabela de estilo de matriz para listar com Tabela Dinâmica

Converter tabela de estilo de matriz para listar com código VBA

Converta tabela de estilo de matriz em lista com o Kutools para Excel

doc converter matriz para lista 1


No Excel, não há um recurso direto para convertermos a tabela de estilo de matriz em uma tabela de três colunas, mas, se você estiver familiarizado com a Tabela Dinâmica, pode ser um favor. Execute as seguintes etapas:

1. Ative a planilha que deseja usar e segure Alt + D, e depois pressione P no teclado, na saída Assistente de Tabela Dinâmica e Gráfico Dinâmico diálogo, selecione Vários intervalos de consolidação sob a Onde estão os dados que você deseja analisar seção e, em seguida, escolha Tabela Dinâmica sob a Que tipo de relatório você deseja criar seção, veja a captura de tela:

doc converter matriz para lista 2

2. Então clique Próximo botão, no Etapa 2a de 3 assistente, selecione o Vou criar os campos da página opção, veja a captura de tela:

doc converter matriz para lista 3

3. Continue clicando Próximo botão, no Etapa 2b de 3 assistente, clique em doc converter matriz para lista 5 botão para selecionar o intervalo de dados que deseja converter e clique em Adicionar botão para adicionar o intervalo de dados ao Todos os intervalos caixa de lista, veja a captura de tela:

doc converter matriz para lista 4

4. E clique em Próximo botão, em Passo 3 de 3 assistente, selecione um local para a tabela dinâmica como você deseja.

doc converter matriz para lista 6

5. Então clique Acabamento botão, uma tabela dinâmica foi criada de uma vez, consulte a captura de tela:

doc converter matriz para lista 7

6. Na tabela dinâmica, clique duas vezes na célula de interseção do Total Geral, neste caso, darei um clique duplo na célula F22, e isso gerará uma tabela de três colunas, conforme a imagem mostrada a seguir:

doc converter matriz para lista 8

7. E, finalmente, você pode converter o formato da tabela para o intervalo normal selecionando a tabela e, em seguida, escolha mesa > Converter para intervalo no menu de contexto, veja a captura de tela:

doc converter matriz para lista 9


Se você não gostar do primeiro método, o seguinte código VBA também pode ajudá-lo.

1. pressione Alt + F11 para exibir o Microsoft Visual Basic para Aplicações janela.

2. Na janela, clique em inserção > Módulo para mostrar uma nova janela do módulo, copie e cole o seguinte código VBA na janela do módulo.

Código VBA: Converter tabela de estilo de matriz para listar

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. Então aperte F5 para executar este código e uma caixa de prompt aparece para permitir que você selecione os rótulos das colunas dos dados, veja a captura de tela:

doc converter matriz para lista 10

4. E, em seguida, clique em OK botão, na próxima caixa de prompt, selecione os rótulos de linha, veja a captura de tela:

doc converter matriz para lista 11

5. Continue clicando OKe selecione o intervalo de dados excluindo os cabeçalhos de coluna e linha na caixa de prompt, consulte a captura de tela:

doc converter matriz para lista 12

6. E, em seguida, clique em OK, nesta caixa de diálogo, selecione uma célula onde deseja localizar o resultado. Veja a imagem:

doc converter matriz para lista 13

7. Finalmente, clique em OK, e você obterá uma tabela de três colunas de uma vez.


Ambos os métodos acima são um tanto problemáticos, aqui, vou apresentar uma maneira fácil - Kutools for Excel, Com o seu Dimensões da tabela de transposição recurso, você pode converter rapidamente entre uma matriz de células e uma tabela de lista.

Kutools for Excel : com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias

Depois de instalar Kutools for Excel, siga as seguintes etapas:

1. Clique Kutools > Variação > Dimensões da tabela de transposição, veja a captura de tela:

2. No Dimensões da tabela de transposição caixa de diálogo:

(1.) Escolha Tabela cruzada para listar opção abaixo Tipo de transposição.

(2.) Em seguida, clique em doc converter matriz para lista 5 botão abaixo Faixa de fonte para selecionar o intervalo de dados que você deseja converter.

(3.) Em seguida, clique doc converter matriz para lista 5 botão abaixo Faixa de resultados para selecionar uma célula onde deseja colocar o resultado.

doc converter matriz para lista 15

3. E, em seguida, clique em OK botão, e você obterá o seguinte resultado, incluindo a formatação original da célula:

doc converter matriz para lista 16

Com este utilitário, você também converter tabela de lista plana em tabela cruzada bidimensional.

Para saber mais sobre este recurso Dimensões da tabela de transposição.

Baixe e teste grátis Kutools para Excel agora!


Kutools for Excel: com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias. Baixe e teste grátis agora!

Melhores ferramentas de produtividade de escritório

🤖 Assistente de IA do Kutools: Revolucionar a análise de dados com base em: Execução Inteligente   |  Gerar Código  |  Crie fórmulas personalizadas  |  Analise dados e gere gráficos  |  Invocar funções do Kutools...
Recursos mais comuns: Encontre, destaque ou identifique duplicatas   |  Excluir linhas em branco   |  Combine colunas ou células sem perder dados   |   Rodada sem Fórmula ...
Super pesquisa: VLookup de múltiplos critérios    VLookup de múltiplos valores  |   VLookup em várias planilhas   |   Pesquisa Difusa ....
Lista suspensa avançada: Crie rapidamente uma lista suspensa   |  Lista suspensa de dependentes   |  Lista suspensa de seleção múltipla ....
Gerenciador de colunas: Adicione um número específico de colunas  |  Mover colunas  |  Alternar status de visibilidade de colunas ocultas  |  Compare intervalos e colunas ...
Recursos em destaque: Foco da Grade   |  Vista de Design   |   Grande Barra de Fórmula    Gerenciador de pastas de trabalho e planilhas   |  Biblioteca (Auto texto)   |  Data Picker   |  Combinar planilhas   |  Criptografar/Descriptografar Células    Enviar e-mails por lista   |  Super Filtro   |   Filtro Especial (filtro negrito/itálico/tachado...) ...
15 principais conjuntos de ferramentas12 Texto Ferramentas (Adicionar texto, Remover Personagens, ...)   |   50+ de cores Tipos (Gráfico de Gantt, ...)   |   Mais de 40 práticos Fórmulas (Calcule a idade com base no aniversário, ...)   |   19 Inclusão Ferramentas (Insira o código QR, Inserir imagem do caminho, ...)   |   12 Conversão Ferramentas (Números para Palavras, Conversão de moedas, ...)   |   7 Unir e dividir Ferramentas (Combinar linhas avançadas, Dividir células, ...)   |   ... e mais

Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo.  Clique aqui para obter o recurso que você mais precisa...

Descrição


Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
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