Função EMPILHARH no Excel: Como Empilhar Tabelas na Horizontal (com Exemplos)

A função EMPILHARH (HSTACK em inglês) junta duas ou mais tabelas ou intervalos lado a lado, na horizontal: a fórmula =EMPILHARH(matriz1;matriz2;…) encosta uma matriz do lado direito da outra, formando um único bloco de dados combinado.

Você provavelmente já teve dados espalhados em blocos separados que, na verdade, fazem parte da mesma análise — uma lista de vendedores numa área da planilha e as metas de cada um em outra área, ou uma coluna de nomes numa tabela e as notas correspondentes em outra tabela, sem estarem lado a lado prontas para uma tabela dinâmica ou um gráfico.

Juntar essas colunas manualmente, copiando e colando lado a lado, funciona uma vez, mas quebra assim que qualquer uma das listas de origem muda — uma linha nova, um vendedor removido, uma meta atualizada. Se as duas listas não estiverem na mesma ordem ou não crescerem juntas, o resultado colado manualmente fica desalinhado, e não tem mais nenhuma indicação de onde foi o erro.

Neste artigo iremos mostrar como a função EMPILHARH junta intervalos lado a lado com uma fórmula só, o que acontece quando as matrizes têm números diferentes de linhas, e a diferença entre EMPILHARH e EMPILHARV.

DOMINE EXCEL COMIGO

QUERO APRENDER EXCEL

O que a função EMPILHARH faz

EMPILHARH é, assim como a EMPILHARV, uma função de matriz dinâmica do Excel 365. A diferença entre as duas está na direção: enquanto EMPILHARV empilha os intervalos um embaixo do outro, a EMPILHARH os coloca um do lado do outro, lado a lado, formando um bloco só com mais colunas (em vez de mais linhas). O resultado também é uma matriz dinâmica: digite a fórmula numa única célula e o Excel derrama o resultado automaticamente pelas células vizinhas, se atualizando sozinho sempre que os dados de origem mudam.

Sintaxe da função EMPILHARH

A sintaxe é:

=EMPILHARH(matriz1;[matriz2];[matriz3];…)

Onde matriz1 é obrigatório e é o primeiro intervalo a entrar no resultado (mais à esquerda), e matriz2, matriz3 e assim por diante são opcionais, entrando à direita da matriz anterior, na ordem em que forem listados. Cada argumento pode ser um intervalo de células, uma tabela nomeada ou o resultado de outra fórmula. Em inglês, essa função se chama HSTACK (de “horizontal stack”).

Exemplo prático completo

Imagine uma lista de vendedores nas células A2:A5 e, numa área separada da planilha, a meta de cada um nas células D2:D5 (na mesma ordem de linhas). Para juntar as duas listas lado a lado, formando uma única tabela com vendedor e meta, a partir da célula F2 a fórmula é:

=EMPILHARH(A2:A5;D2:D5)

Fórmula em F2 Coluna F (Vendedor) Coluna G (Meta)
=EMPILHARH(A2:A5;D2:D5) Marcos Aurélio R$ 15.000
(derramado) Fernanda Lima R$ 18.500
(derramado) Ricardo Nunes R$ 12.000
(derramado) Juliana Prado R$ 20.000

O resultado sai automaticamente em duas colunas, com o vendedor na primeira e a meta dele na segunda — sem nenhuma fórmula de PROCV ou índice para casar as duas listas, porque a EMPILHARH simplesmente encosta as colunas na ordem em que estão, linha por linha. Isso só funciona corretamente quando as duas listas já estão na mesma ordem; se os vendedores estivessem em ordens diferentes nas duas colunas de origem, o resultado juntaria a linha errada com a meta errada, já que a EMPILHARH não compara nomes, só posições.

Quando as matrizes têm números diferentes de linhas

Se uma das matrizes tiver menos linhas do que a mais alta entre todas, a EMPILHARH completa as linhas que faltam com o erro #N/D na área daquela matriz. Por exemplo, se a lista de metas em D2:D4 tivesse só três vendedores, mas a lista de nomes em A2:A5 tivesse quatro, a fórmula =EMPILHARH(A2:A5;D2:D4) traria #N/D na linha do quarto vendedor, coluna da meta, porque não existe meta correspondente naquela posição.

Para deixar o resultado mais limpo nesses casos, envolva a fórmula numa SEERRO, trocando o erro por um valor mais amigável:

=SEERRO(EMPILHARH(A2:A5;D2:D4);”—”)

Assim, em vez do erro #N/D aparecendo cru na planilha, a célula sem correspondência mostra um traço, deixando claro visualmente que falta um dado ali, sem quebrar a leitura da tabela.

EMPILHARH e EMPILHARV: qual usar

A escolha entre as duas depende só da direção em que os dados precisam se juntar. Use EMPILHARV quando as tabelas têm a mesma estrutura de colunas e você quer alongar a lista para baixo — o caso clássico de juntar vendas de vários meses numa lista única. Use EMPILHARH quando os dados já têm o mesmo número de linhas (a mesma “altura”) e você quer juntar informações complementares lado a lado — como juntar uma lista de nomes com uma lista de metas, ou o resultado de duas fórmulas diferentes que descrevem o mesmo conjunto de itens. As duas funções também podem ser combinadas: é possível usar uma EMPILHARH dentro de uma EMPILHARV (ou vice-versa) para montar estruturas mais complexas, como juntar duas tabelas lado a lado e depois empilhar esse bloco combinado com outro do mesmo formato.

Cuidado com a ordem das linhas

Como a EMPILHARH junta os dados só pela posição (linha 1 com linha 1, linha 2 com linha 2, e assim por diante), ela não verifica se os itens realmente correspondem entre si. Se você precisa juntar duas listas que podem estar em ordens diferentes — por exemplo, vendedores cadastrados em ordem alfabética numa tabela e em ordem de contratação em outra — a EMPILHARH sozinha não é a ferramenta certa; nesse caso, é mais seguro usar PROCX ou PROCV para buscar cada valor pelo nome correspondente, em vez de simplesmente encostar as colunas lado a lado.

Disponibilidade

A função EMPILHARH está disponível no Excel para Microsoft 365 e no Excel 2024 (Windows e Mac), assim como a EMPILHARV, por serem funções de matriz dinâmica lançadas na mesma época. Ela não existe em versões perpétuas mais antigas, como Excel 2019, 2016 ou 2013, nem no Excel 2021 fora do 365, mas está disponível no Excel Online. No Google Sheets, a função equivalente tem o mesmo nome, HSTACK, com sintaxe e comportamento praticamente idênticos.

Perguntas frequentes

O que a fórmula =EMPILHARH(matriz1;matriz2) faz no Excel?

Ela junta duas ou mais tabelas ou intervalos lado a lado, na horizontal, encostando uma matriz à direita da outra e formando um único bloco com mais colunas. É uma função de matriz dinâmica, então o resultado se atualiza sozinho se os dados de origem mudarem.

Qual a diferença entre EMPILHARH e EMPILHARV?

EMPILHARV junta os intervalos na vertical, um embaixo do outro (mais linhas no resultado). EMPILHARH junta os intervalos na horizontal, um do lado do outro (mais colunas no resultado). A escolha depende da direção em que os seus dados precisam se combinar.

O que acontece se as listas que eu quero juntar com EMPILHARH tiverem números diferentes de linhas?

O Excel completa as linhas que faltam na matriz mais curta com o erro #N/D, porque não existe dado correspondente naquela posição. Para evitar que esse erro apareça, envolva a fórmula numa SEERRO, assim: =SEERRO(EMPILHARH(matriz1;matriz2);”—”).

Compartilhe ou Comente

Se você curtiu esse artigo aonde mostramos como usar a função EMPILHARH para juntar tabelas lado a lado, na horizontal, com uma fórmula que se atualiza sozinha, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.

Você já precisou juntar duas listas lado a lado copiando e colando na mão? Prefere combinar EMPILHARH com EMPILHARV para montar estruturas mais complexas na sua planilha? Conta para nós nos comentários!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *