Vamos supor que eu tenha alguns dados no Excel (e não em um banco de dados real). Em uma planilha, tenho dados, nos quais uma coluna funciona como o ID, e verifiquei se os valores nessa coluna são únicos. Em outra planilha, também tenho alguns dados, novamente com uma coluna que pode ser usada como um ID e também é único. Se a linha N na Planilha 1 tiver algum valor e a linha M na Planilha 2 tiver o mesmo valor, tenho certeza de que as linhas N e M descrevem o mesmo objeto do mundo real.
O que estou perguntando: como posso obter o equivalente a uma associação externa completa sem gravar nenhuma macro? Fórmulas e todas as funções acessíveis através da faixa de opções estão OK.
Um pequeno exemplo de "reproduzir dados":
Folha 1:
Dostoyevski Russia
Pushkin Russia
Shelley England
Flaubert France
Hugo France
Eichendorff Germany
Byron England
Zola France
Folha 2:
Shelley Percy Bysshe
Eichendorff Josef Freiherr Von
Flaubert Gustave
Byron Lord
Keller Gottfried
Dostoyevski Fyodor
Zola Emile
Balzac Honoré de
Saída desejada (a classificação não é importante):
Dostoyevski Russia Fyodor
Pushkin Russia
Shelley England Percy Bysshe
Flaubert France Gustave
Hugo France
Eichendorff Germany Josef Freiherr von
Byron England Lord
Zola France Emile
Keller Gottfried
Balzac Honoré de
Para todo mundo que está horrorizado com esse cenário: eu sei que esse é o caminho errado para fazê-lo. Se eu tiver alguma escolha, não usaria o Excel para isso. No entanto, existem situações suficientes por aí em que é necessária uma solução pragmática, stat e uma solução melhor (do ponto de vista de TI) não pode ser aplicada.
fonte
Respostas:
Abordagem fácil - operações padrão do Excel
Primeiro, copie / cole as duas colunas principais de ambas as tabelas em uma única planilha nova como uma única coluna.
Use o botão "Remover duplicatas" para obter a lista única de todas as suas chaves exclusivas.
Em seguida, adicione duas colunas (nesse caso), uma para cada uma das suas colunas de dados em cada tabela. Eu recomendo que você use o formato como opção de tabela também, pois torna suas fórmulas muito mais agradáveis. Usando vlookup, use a seguinte fórmula:
Onde
Sheet4!A:B
representa qualquer que seja a tabela de dados da tabela de origem para cada valor respectivo. O IFERROR evita os feios # N / A resultados que aparecem quando o vlookup não é bem-sucedido e, nesse caso, retornam uma célula em branco.Isso fornece sua tabela resultante.
Folha3:
Folha4:
Dados do resultado:
Fórmulas de resultado ( Ctrl+ ~alternará isso):
Consulta SQL integrada
Você também pode fazer isso com a consulta SQL interna. É ... muito menos amigável, mas talvez seja um caso de uso melhor. Isso provavelmente exigirá que você tenha formatado seus dados de "origem" como tabelas.
A parte "criar uma junção de subtração e depois adicioná-la como união" é mais complicada.
Volte para a primeira junção externa que você criou. Edite manualmente o SQL e
Union
ao fundoNão para os fracos de coração. Mas se você deseja uma ótima chance de ver partes do Office não atualizadas, desde que você esteja vivo, é uma ótima chance.
fonte
Como uma solução alternativa, posso sugerir o Power Query ? É um suplemento gratuito do Excel da Microsoft para basicamente executar exatamente esse tipo de coisa. Sua funcionalidade também será incluída diretamente no Excel 2016, portanto, é protegida contra o futuro.
De qualquer forma, com o Power Query, as etapas são bem simples:
O bom disso é que, depois de configurá-lo, se você fizer alterações nas tabelas de dados básicas, basta clicar em Dados> Atualizar tudo e a planilha de resultados do Power Query também será atualizada.
fonte
Uma maneira rápida de semi-simular uma (junção externa) é pegar sua segunda lista e colá-la diretamente abaixo da sua lista principal, ou seja, para que suas (chaves primárias) estejam todas na mesma coluna (primária). Em seguida, classifique a coluna principal, você terminará com uma lista intercalada e fará uma equação IF transposta (o superusuário está atrapalhando a exibição do layout da tabela ..):
listA listB
sam azul tim 32874 tim vermelho mary 5710 chris verde gustav 047 fred azul
mary preto
copiar / colar / classificar, o resultado fica assim: AB chris verde fred azul gustav 047 mary 5710 mary preto sam azul tim 32874 tim vermelho
então fórmula para a célula c1: (c1) = if (A1 = A2, B2)
resultado é assim:
ABC chris green FALSE fred blue FALSE gustav 047 FALSE mary 5710 black mary black FALSE sam azul FALSO tim 32874 vermelho tim vermelho FALSO
Classifique C para se livrar de falsas, etc. Essa é uma versão básica da idéia, apenas expanda-a se mais dados forem necessários. -wag770310
fonte