2012-05-04 16:20:11 +0000 2012-05-04 16:20:11 +0000
123
123

Como posso juntar duas folhas de trabalho em Excel como o faria em SQL?

Tenho duas folhas de trabalho em dois ficheiros Excel diferentes. Ambas contêm uma lista de nomes, números de identificação e dados associados. Uma é uma lista principal que inclui campos demográficos gerais e a outra é uma lista que inclui apenas nome e id, e um endereço. Esta lista foi separada da lista principal por outro escritório.

Quero utilizar a 2ª lista para filtrar a primeira. Adicionalmente, quero que os resultados incluam outros campos da folha de trabalho principal juntamente com os campos de endereço da segunda folha de trabalho. Sei como o poderia fazer muito facilmente com uma base de dados interna, mas sou menos claro em como o fazer de forma eficiente no Excel. Como posso aderir a duas folhas de trabalho em Excel? Pontos bónus por mostrar como fazer junções externas também, e eu preferia muito saber como o fazer sem precisar de uma macro.

Respostas (10)

158
158
158
2012-05-07 09:37:24 +0000

Para 2007+ utilize Data > From Other Sources > From Microsoft Query:

  1. escolha Excel File e seleccione o seu 1º excel
  2. escolha colunas (se não vir nenhuma lista de colunas, certifique-se de verificar Options > System Tables)
  3. vá para Data > Connections > [escolha a conexão recém-criada] > Properties > Definition > Command text

Agora pode editar este Command text como SQL. Não tenho a certeza qual a sintaxe que é suprimida, mas tentei as uniões implícitas, “inner join”, “left join” e uniões que funcionam todas. Aqui está um exemplo de consulta:

SELECT *
FROM `C:\Users\Peter\Documents\Excel-to-excel\Source_1.xlsx`.`Sheet1$` a
LEFT JOIN `C:\Users\Peter\Documents\Excel-to-excel\Source_2.xlsx`.`Sheet1$` b
ON a.col2 = b.col2
11
11
11
2013-12-09 18:20:43 +0000

Apoie a resposta aceite. Só quero enfatizar em “escolher colunas (se não vir nenhuma lista de colunas, não se esqueça de verificar Opções > Tabelas do Sistema)”

Uma vez seleccionado o ficheiro excel, é muito provável que veja o prompt this data source contains no visible tables, e os separadores e colunas disponíveis não são nenhumas. Microsoft admitiu que é um bug que os tabs nos ficheiros excel são tratados como “System Tables”, e a opção para “System Tables” não está seleccionada por defeito. Então não entre em pânico neste passo, basta clicar em “option” e marcar “System Tables”, depois vê as colunas disponíveis.

9
9
9
2012-05-04 16:22:05 +0000

O VLOOOKUP e o HLOOKUP podem ser utilizados para procurar chaves primárias correspondentes (armazenadas vertical ou horizontalmente) e retornar valores das colunas/linhas de “atributo”.

7
7
7
2017-05-17 14:09:42 +0000

Pode utilizar o Microsoft Power Query, disponível para versões mais recentes do Excel (semelhante à resposta aceite, mas muito mais simples e fácil). O Power Query junta-se a ‘merges’.

A forma mais fácil é ter as suas 2 folhas de Excel como tabelas Excel. Depois, no Excel, vá para o separador da fita do Power Query e clique no botão ‘From Excel’. Depois de ter importado ambas as tabelas para o Power Query, seleccione uma e clique em ‘Merge’.

4
4
4
2016-02-12 11:00:43 +0000

Embora eu ache a resposta do Aprillion usando Microsoft Query excelente, inspirou-me a usar Microsoft Access para juntar as datasheets que achei muito mais fáceis.

É claro que precisa de ter o MS Access instalado.

Passos:

  • Criar uma nova base de dados Access (ou usar um scratch DB).
  • Usar Get External Data para importar os seus dados Excel como novas tabelas.
  • Utilize o Relationships para mostrar como as suas tabelas são unidas.
  • Defina o tipo de Relação para corresponder ao que pretende (representando união à esquerda, etc.)
  • Crie uma nova consulta que une as suas tabelas.
  • Utilize o External Data->Export to Excel para gerar os seus resultados.

  • Não teria conseguido fazer isso sem a grande resposta do Aprillion.

3
3
3
2014-07-04 22:25:25 +0000

No XLTools.net criámos uma boa alternativa para o MS Query trabalhar especialmente com consultas SQL contra tabelas Excel. Chama-se XLTools SQL Queries . É muito mais fácil de usar do que o MS Query e funciona muito bem se precisar apenas de criar e executar SQL - sem VBA, sem manipulações complexas com o MS Query…

Com esta ferramenta pode criar qualquer consulta SQL contra tabelas da(s) pasta(s) de trabalho do Excel usando o editor SQL incorporado e executá-la imediatamente com a opção de colocar o resultado numa folha de trabalho nova ou em qualquer outra já existente.

Pode usar praticamente qualquer tipo de join incluindo LEFT OUTER JOIN (apenas o RIGHT OUTER JOIN e FULL OUTER JOIN não são suportados).

Aqui está um exemplo:

3
3
3
2012-05-04 17:29:37 +0000

Não é possível pré-configurar junções ao estilo SQL em tabelas Excel a partir do Excel. Dito isto, existem múltiplas formas de realizar o que está a tentar fazer.

No Excel, como diz o Reuben, as fórmulas que provavelmente funcionarão melhor são VLOOKUP e HLOOKUP. Em ambos os casos, você corresponde em uma única linha e retorna o valor da coluna dada para a esquerda a partir do id encontrado.

Se você quiser apenas adicionar alguns campos extras à segunda lista, então adicione as fórmulas à segunda lista. Se quiser uma tabela de estilo “outer join”, então adicione a fórmula VLOOKUP à primeira lista com ISNA para testar se a pesquisa foi encontrada. Se a Ajuda do Excel não lhe der detalhes suficientes sobre como usar estes na sua instância em particular, informe-nos.

Se preferir usar SQL então ligue os dados ao seu programa de base de dados, crie a sua consulta e exporte os resultados de volta para o Excel. (No Access pode importar folhas de trabalho Excel ou Intervalos Nomeados em forma de Tabela Ligada).

2
2
2
2013-07-16 02:41:41 +0000

Para utilizadores do Excel 2007: Dados > De outras fontes > De Microsoft Query > Navegue até ao ficheiro Excel

De acordo com este artigo , consultar a versão 2003 do XLS pode resultar num erro “Esta fonte de dados não contém tabelas visíveis” porque as suas folhas de trabalho são tratadas como tabela do SISTEMA. Por isso verifique as opções do diálogo “System Tables” (Tabelas do Sistema) no “Query Wizard – Choose Columns” (Escolha as Colunas) quando criar a consulta.

Para definir a sua adesão: Diálogo Consulta Microsoft > Menu Tabela > Junta…

Para retornar dados à sua planilha original do Excel, escolha “Retornar dados à Planilha Excel” no diálogo Consulta Microsoft > Menu Arquivo.

0
0
0
2016-05-25 17:19:06 +0000

Procurando o mesmo problema encontrei RDBMerge , que penso ser uma forma amigável de fundir dados de múltiplas pastas de trabalho Excel, ficheiros csv e xml numa pasta de trabalho sumária.

0
0
0
2012-05-04 16:44:30 +0000

Se está suficientemente familiarizado com bases de dados, pode utilizar o SQL Server para ligar ambas as folhas de trabalho como Servidores Ligados e depois utilizar o T-SQL para fazer o seu trabalho de back-end de dados. Depois, termine ligando o Excel de volta a SQL e puxe os dados para uma tabela (regular ou pivot). Pode também considerar a utilização do Powerpivot; este permitirá a junção entre quaisquer fontes de base de dados - incluindo o Excel utilizado como bases de dados planas.