Converter tabela da posicão Vertical para Horizontal (vice-versa)

Olá amigos leitores. Curtiram bastantes as festas de fim de ano? Espero que sim, pois agora começa tudo outra vez. Com o ano novo vem também novas responsabilidades e conquistas. Por isso, desejo a todos nós que possamos ser vitoriosos em tudo que nos propormos a realizar. E que Deus nos ajude bastante!
Mas… terminadas as festividades…. voltemos a realidade… TRABALHO!!! (rs)
Bem, para começarmos este ano com o pé direito, vamos aprender como realizar uma tarefa simples e que muitas vezes precisamos executar mas por falta de informação, quebramos a cabeça e acabamos fazendo todo o trabalho de forma manual.
Suponha que você tenha uma tabelinha do resumo das vendas mensais de suas lojas. Essa tabela está disposta na posição horizontal em sua planilha.


Isto é apenas um exemplo, uma tabelinha bem pequena. Se por qualquer motivo você precisar mudar o seu layout, mudar sua disposição na planilha. Ela tem seu layout na horizontal, mostrando os meses na primeira linha e os valores mensais de cada loja em uma linha distinta. E você necessita desta tabela na posição vertical.

 

O que fazer? Reescrever todos os dados novamente? Copiar e colar célula por célula tomando o devido cuidado de realocá-las em suas novas posições por coluna e não por linha? Lembre-se que neste exemplo a tabela é apenas ilustrativa. Imagine uma tabela real mesmo, com 10.000 linhas e 100 colunas, por exemplo. Calma!!! Não precisa se desesperar. Vou lhe ensinar o caminho das pedras.
Vou mostrar primeiramente com realizar essa tarefa através da fórmula TRANSPOR. Ela é útil caso você necessite trabalhar com suas informações em códigos mais complexos ou combinando com outras fórmulas.

Apresentando a solução

A fórmula TRANSPOR necessita apenas de um parâmetro que é o intervalo onde está contida a tabela que desejamos alterar o posicionamento. Supondo que você tenha um intervalo de 13 colunas e 4 linhas (B5:N8). A primeira providência que você tem a fazer é selecionar, de maneira inversa, o local onde deseja exibir o resultado (B14:E26), ou seja, trocando a quantidade de colunas pela quantidade de linhas e vice-versa. Assim:
 

Intervalo Original Intervalo Transposto
Numero de Colunas 13 4
Numero de Linhas 4 13

 
O novo intervalo teria, então, 4 colunas e 13 linhas, o inverso da tabela original. Para conseguirmos este resultado, faça o seguinte.
(Se quiser, você pode fazer o download do arquivo de exemplo para acompanhar passo a passo. O link para baixar está no final do artigo)
 

 
Selecione a área onde deseja que a tabela invertida seja visualizada. No nosso exemplo, selecione o intervalo B14:E26. Em seguida, digite na barra de fórmula:
=TRANSPOR(B5:N8)
E NÃO pressione <ENTER>. Pressione CTRL+SHIFT+ENTER pois está é uma fórmula matricial e retornará como resultado uma matriz de dados que, automaticamente, será ajustada as linhas e colunas selecionadas.
Note que o intervalo informado será o mesmo para todas as células de destino, visto que a própria fórmula se encarregará de distribuir seus resultados de forma correta.
Pronto. Só isso. Simples né! Dessa forma nós invertemos uma tabela que estava com um layout na horizontal e convertemos seus dados para serem exibidos de forma vertical. Para fazer o contrário, siga os mesmos procedimentos. Com cuidado para inverter o número de colunas pelo número de linhas na nova disposição da tabela e vice-versa.
Conforme eu disse anteriormente, esta é uma solução ideal para ser usada em combinação com outras funções. Existe uma maneira de se obter estes resultados através de um atalho no próprio excel. Veja.
Selecione a planilha que deseja inverter, clique em copiar (CTRL+C). Em seguida, selecione apenas a primeira célula onde deseja que seja colada a tabela invertida e clique na opção Transpor do botão Colar presente na barra de ferramentas padrão. Veja a imagem.

Algo parecido pode ser percebido neste outro artigo.
Pronto. Bem mais simples ainda né? Muito legal!!!
Bem amigos leitores, é isso. Mais uma vez desejo-lhes que neste Ano de 2009 sejamos, todos, muito felizes.
 
Um abraço.
Termos Aprendidos neste artigo:

Transpor Retorna um intervalo vertical de células como um intervalo horizontal ou vice-versa. A função TRANSPOR precisa ser inserida como uma fórmula de matriz em um intervalo com o mesmo número de linhas e colunas, respectivamente, das existentes em uma matriz. Use TRANSPOR para deslocar a orientação vertical e horizontal de uma matriz em uma planilha.SintaxeTRANSPOR(matriz)Matriz  é uma matriz ou um intervalo de células em uma planilha que se deseja transpor. A transposição de uma matriz é criada utilizando-se a primeira linha da matriz como a primeira coluna da nova matriz, a segunda linha da matriz como a segunda coluna da nova matriz, e assim por diante.

21 comentários em “Converter tabela da posicão Vertical para Horizontal (vice-versa)”

    • O bom da programação é que podemos obter resultados de diversas formas e cada uma de acordo com nossas necessidades específicas. Que bom a minha dica foi útil para você.
      Volte mais vezes.
      Um abraço

      Responder
  1. Eu tenho uma célula célula especifica para a entrada de um valor em milimetros, e desejo após inserir o valor que seja feita a conversão em polegada.
    Tenho 5 campos de entrada.
    Por favor, se alguém tiver alguma dica será muito bem vinda.
    Obrigado

    Responder
  2. ola,
    estou precisando transpor varios campos de vertical para horizontal, só que o que ocorre e que nesta linha horinzontal tenho valores em colunas que precisam ser listados separadamente,ex:
    cliente1 venc1 valor1 venc2 valor2
    jose 30/3 300,00 30/4 300,00
    e preciso
    jose 30/3 300,00
    jose 30/4 300,00
    sera que com esssa função eu consigo?

    Responder
    • Alex, obrigado pro visitar meu blog.
      Sugiro a você uma ação bem simples.
      Insira uma nova coluna entre valor1 e venc2 e escreva “cliente2” na primeira linha, somente para fisn de identificação. Copie a coluna 1 (cliente1) e cole os dados nesta nova coluna (cliente2).
      Agora você tem duas colunas com os nomes dos clientes.
      Faça assim: Selecione os dados das colunas cliente2, venc2 e valor2, clique em recortar, e cole após a última linha escrita em cliente1.
      Depois é só classificar pela coluna A (Cliente1) e pronto.
      Fica da maneira que você pediu.
      Um abraço.

      Responder
  3. Ola, será que podem me ajudar ?
    Preciso tranpor uma planilha da vertical para horizontal, mas ocorre o seguinte:
    A planilha tem +ou- 3500 linhas e 2 colunas, segue um exemplo:
    Razão Social:  xxxxxxxxxxxx
    Nome Fantasia:  xxxxxxxxxxxx
    Cidade:  xxxxxxxxxxx
    Estado:  xx
    Telefone:  xxxxxxxxx
    Fax:  xxxxxxxxx
    Site:  xxxxxxx
    Razão Social:  xxxxxxxxxxxx
    Nome Fantasia:  xxxxxxxxxxxx
    Cidade:  xxxxxxxxxxx
    Estado:  xx
    Telefone:  xxxxxxxx
    Fax:  xxxxxxxx
    Site:  xxxxxxx
    preciso que fique como o exemplo abaixo:
    R. Social Nome Fantasia Cidade  Estado  Telefone Fax  Site 
    xxxxxx xxxxxxxxxxx xxxxx xxxx xxxxx xxxx xxxx
    xxxxxx xxxxxxxxxxx xxxxx xxxx xxxxx xxxx xxxx
    As Formulas acima não deram certo.
    Preciso que cada intervalo de 7 linhas da segunda coluna seja transposta para 1 linha.
    Há como fazer isso ?
    Obrigago pela atenção…
    Att,
    Robson

    Responder
    • Olá Robson.
      O que você deseja fazer pode ser obtido através da manipulação de código no ambiente VBA. Não há fórmulas prontas para resolver isso.
      Sugestão:
      Faça uma rotina com dois loops:
      – um para percorrer as linhas na tabela de origem e;
      – outro para escrever na tabela destino, incrementando um contador das novas colunas, onde exista também duas variáveis condicionais para reiniciar as colunas e as linhas a cada 7 linhas.
      Foi mais ou menos o que eu imaginei.
      Se quiser, posso fazer pra vc depois, mande a planilha pelo link Orçamento. Faço um preço camarada pra vc.
      Abração

      Responder
    • Te mandei uma resposta com uma planilha explicativa pro seu email, ok.
      Explicando aos demais leitores.
      Sempre que for transpor, deves modificar tambem a matriz…ou seja….
      Se na tabela original tens 5 linhas e 100 colunas Na tabela destino deverás ter 100 linhas e 5 colunas.
      Resumindo. Neste caso, a fórmula da transposição deve estar escrita em 100 linhas e 5 colunas, ok?!

      Responder

Deixe um comentário