Como ingresso em duas planilhas no Excel, como faria no SQL?


121

Eu tenho duas planilhas em dois arquivos diferentes do Excel. Ambos contêm uma lista de nomes, números de identificação e dados associados. Uma é uma lista mestra que inclui campos demográficos gerais e a outra é uma lista que inclui apenas nome, ID e endereço. Esta lista foi reduzida da lista principal por outro escritório.

Eu quero usar a segunda lista para filtrar a primeira. Além disso, quero que os resultados incluam outros campos da planilha mestre, juntamente com os campos de endereço da segunda planilha. Eu sei como eu poderia fazer isso muito facilmente com uma associação interna ao banco de dados, mas sou menos claro sobre como fazer isso com eficiência no Excel. Como juntar duas planilhas no Excel? Pontos de bônus por mostrar como fazer junções externas também, e eu preferiria muito saber como fazer isso sem precisar de uma macro.


1
Eu acho o seguinte página muito útil: randomwok.com/excel/how-to-use-index-match
Tommy Bravo

randomwok.com/excel/how-to-use-index-match => especialmente o "lembrete" fácil no final:=INDEX ( Column_I_want_a_return_value_from , ( MATCH ( My_Lookup_Value , Column_I_want_to_Lookup_against , 0 ))
Tommy Bravo

Respostas:


157

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

  1. escolha Excel Filee selecione seu 1º excel
  2. escolha colunas
    (se você não vir nenhuma lista de colunas, verifique Options> System Tables)
  3. ir para a Data> Connections> [escolher a conexão recém-criada]> Properties> Definition>Command text

Agora você pode editar isso Command textcomo SQL. Não tenho certeza de qual sintaxe é suportada, mas tentei junções implícitas, "junção interna", "junção esquerda" e uniões que funcionam. 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

1
Existe uma maneira de evitar codificar o caminho? O caminho relativo funcionaria?
Rekin

25
Como um bônus adicional, o Microsoft Query permite experimentar Controles Comuns de estilo de 16 bits para abrir o arquivo do Excel e caixas de mensagem. Dessa forma, você pode se lembrar de quando era jovem. :-)
Edward Brey

Isso funciona com arquivos CSV? Estou usando o MS Office Professional Plus 2010 e não vejo como seguir a etapa 3 - deixo a caixa de diálogo na etapa 2 suspensa? Não há "escolha sua nova conexão" na minha caixa de diálogo Conexões.
19420 John Freeman

@JohnFreeman porque você tem que escolher uma das opções disponíveis de acordo com suas necessidades (por exemplo, 'Adicionar ...')
Aprillion

3
Observe que você pode obter uma caixa de diálogo dizendo 'Esta fonte de dados não contém tabelas visíveis', seguida pela caixa de diálogo 'Assistente de consulta - Escolha colunas'. É nessa caixa de diálogo que você deseja clicar no botão 'Opções' e marque a caixa de seleção 'Tabelas do sistema' para ver os dados que deseja consultar.
Tola Odejayi

11

Apoie a resposta aceita. Eu só quero enfatizar em "escolher colunas (se você não vir nenhuma lista de colunas, verifique Opções> Tabelas do Sistema)"

Depois de selecionar o arquivo do Excel, muito provavelmente você verá um this data source contains no visible tablesprompt, e as guias e colunas disponíveis não serão. A Microsoft admitiu que é um erro que as guias nos arquivos do Excel sejam tratadas como "Tabelas do Sistema" e a opção "Tabelas do Sistema" não está selecionada por padrão. Portanto, não entre em pânico nesta etapa, basta clicar em "opção" e selecionar "Tabelas do sistema", para ver as colunas disponíveis.


8

VLOOKUP e HLOOKUP podem ser usados ​​para procurar chaves primárias correspondentes (armazenadas verticalmente ou horizontalmente) e retornar valores de colunas / linhas de 'atributo'.


muito útil para lençóis no mesmo livro (mas i encontrar ÍNDICE + Match funções ainda mais uteis), um pouco mais complicado quando atualizar dados de livros externos fechados ...
Aprillion

7

Você pode usar o Microsoft Power Query, disponível para versões mais recentes do Excel (semelhante à resposta aceita, mas muito mais simples e fácil). O Power Query chama junções 'mesclas'.

A maneira mais fácil é ter suas 2 planilhas do Excel como tabelas do Excel. Em seguida, no Excel, vá para a guia da faixa de opções do Power Query e clique no botão 'Do Excel'. Depois de importar as duas tabelas para o Power Query, selecione uma e clique em 'Mesclar'.


3
Muito mais fácil do que qualquer uma das outras opções propostas. Essa deve ser a resposta! O Power Query está incluído agora no Excel 2016 na guia Dados .
SliverNinja - MSFT

1
Outro recurso que parece não existir no Mac ju
juandesant 7/17/17

4

Embora eu ache excelente a resposta da Aprillion usando o Microsoft Query, ela me inspirou a usar o Microsoft Access para ingressar nas planilhas de dados que achei muito mais fáceis.

Você precisa ter o MS Access instalado, é claro.

Passos:

  • Crie um novo banco de dados do Access (ou use um banco de dados temporário).
  • Use Get External Datapara importar seus dados do Excel como novas tabelas.
  • Use Relationshipspara mostrar como suas tabelas são unidas.
  • Defina o Tipo de relacionamento para corresponder ao que você deseja (representando a junção esquerda, etc.)
  • Crie uma nova consulta que junte suas tabelas.
  • Use External Data->Export to Excelpara gerar seus resultados.

Eu realmente não poderia ter feito isso sem a grande resposta de Aprillion.


Eu nunca usei o acesso antes de hoje, mas isso levou apenas 10 minutos. Copiei / colei as colunas do Excel em 2 tabelas em vez de importar.
jiggunjer 19/08

3

Você não pode pré-formar junções de estilo SQL em tabelas do Excel de dentro do Excel. Dito isto, existem várias maneiras de realizar o que você está tentando fazer.

No Excel, como Reuben diz, as fórmulas que provavelmente funcionarão melhor são VLOOKUPe HLOOKUP. Nos dois casos, você corresponde a uma linha exclusiva e ela retorna o valor da coluna \ linha especificada à esquerda \ abaixo do ID encontrado.

Se você deseja adicionar apenas alguns campos extras à segunda lista, adicione as fórmulas à segunda lista. Se você deseja uma tabela de estilos "junção externa", adicione a VLOOKUPfórmula à primeira lista com ISNApara testar se a pesquisa foi encontrada. Se a Ajuda do Excel não fornecer detalhes suficientes sobre como usá-los em sua instância específica, informe-nos.

Se você preferir usar o SQL, vincule os dados ao seu programa de banco de dados, crie sua consulta e exporte os resultados de volta para o Excel. (No Access, você pode importar planilhas do Excel ou intervalos nomeados como uma tabela vinculada.)


12
na verdade, você pode - é chamado de Microsoft Query
Aprillion

3

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

Com essa ferramenta, você pode criar qualquer consulta SQL em tabelas nas pastas de trabalho do Excel usando o editor SQL incorporado e executá-la imediatamente com a opção de colocar o resultado em uma planilha nova ou existente.

Você pode usar quase qualquer tipo de associação, incluindo JUNÇÃO EXTERNA ESQUERDA (somente JUNÇÃO EXTERNA DIREITA e JUNÇÃO EXTERNA COMPLETA não são suportadas).

Aqui está um exemplo:

XLTools SQL Queries - Query Builder


2

Para usuário do Excel 2007: Dados> De outras fontes> Do Microsoft Query> navegue até o arquivo do Excel

De acordo com este artigo , a consulta do XLS versão 2003 pode resultar em "Esta fonte de dados não contém tabelas visíveis". erro porque suas planilhas são tratadas como tabela do sistema. Portanto, verifique as "Tabelas do sistema" nas opções da caixa de diálogo "Assistente de consulta - escolher colunas" ao criar a consulta.

Para definir sua associação: caixa de diálogo Microsoft Query> menu Tabela> Associações ...

Para retornar dados à sua planilha original do Excel, escolha "Retornar dados à planilha do Excel" na caixa de diálogo Microsoft Query> menu Arquivo.


0

Se você estiver familiarizado o suficiente com bancos de dados, poderá usar o SQL Server para conectar ambas as planilhas como Servidores Vinculados e, em seguida, usar o T-SQL para fazer o trabalho de dados de back-end. Em seguida, termine conectando o Excel de volta ao SQL e puxe os dados para uma tabela (regular ou dinâmica). Você também pode considerar usar o Powerpivot; permitirá junções entre quaisquer fontes de banco de dados, incluindo o Excel usado como bancos de dados simples.


2
Você está certo, mas a pergunta inicial é baseada no uso de uma planilha (ou duas) para executar uma função de banco de dados; portanto, não tenho certeza de nenhuma maneira realmente eficiente de realizar a tarefa.
DAV

0

Procurando pelo mesmo problema, deparei-me com o RDBMerge , que acho uma maneira fácil de mesclar dados de várias pastas de trabalho do Excel, arquivos csv e xml em uma pasta de trabalho de resumo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.