Como comparar duas planilhas do Excel?

8

Gostaria de comparar duas planilhas do Excel

Ambos têm as mesmas colunas, na mesma ordem, mas não as mesmas linhas.

Eu tenho uma planilha com 1.000 linhas e 50 colunas, incluindo um ID exclusivo para cada linha e dados pessoais (endereço, número de telefone etc.).

Quero compará-lo com a mesma base extraída há um ano.

Meu objetivo é conhecer todas as alterações (por exemplo, alguém que mudou de endereço).

Eu tentei com planilha (como explicado aqui: Compare dois arquivos do Excel ), mas não funciona porque no meu "novo" arquivo tenho novas linhas e tenho algumas linhas no arquivo antigo que não estão nas novas.

A planilha é comparada com o número da linha do Excel. É possível comparar com a primeira coluna (ID exclusivo)?

Aqui está um exemplo muito simplificado: https://filebin.net/g4w98251y9mfwug6

Existem duas planilhas representando minhas duas planilhas.

Como você pode ver, ambos têm as mesmas colunas, mas:

  • Existem linhas nas duas folhas sem alterações (todas as linhas são iguais)
  • Existem linhas nas duas folhas, mas há alterações (em laranja no meu exemplo)
  • Existem linhas que estão apenas na planilha de dezembro (não preciso identificar essas linhas)
  • Existem linhas que estão apenas na planilha de janeiro (em laranja no meu exemplo)

A cor laranja é exatamente o que eu quero, mas neste exemplo eu posso fazê-lo manualmente: comparando dezembro e janeiro. Nas planilhas reais, não posso fazê-lo manualmente, pois há muitas alterações, dados, linhas, colunas etc., e farei isso mensalmente.

Existe apenas uma coluna que nunca pode mudar: a coluna A.

CILUEA
fonte
Para sua informação, as pessoas não gostam de baixar arquivos, especialmente quando postadas por usuários desconhecidos. Não estou dizendo que você não deve fazer upload de arquivos e postar links para eles, mas tente fazer com que sua pergunta seja autônoma - deve ser possível entendê-la sem olhar para os arquivos. Na verdade, acredito que sua pergunta está correta; Consegui responder sem olhar para o arquivo. Mas, é claro, as perguntas (especialmente as do Excel) são mais claras com dados de amostra. ... (continua)
Scott
11
(Continua) ... Preferimos que você publique uma representação textual de seus dados, como foi feito aqui e aqui ; use o site Formatar texto como tabela ou o site Gerador de tabelas de texto sem formatação, se desejar. Sugiro que os dados que usei na minha resposta tenham a quantidade certa: uma linha em cada uma das quatro categorias que você identificou na pergunta.
Scott
Existe uma boa ferramenta de comparação do Excel por aí. Pode comparar 2 arquivos do Excel e fazer logoff das diferenças. Você também pode experimentar o Araxis Merge, embora não seja gratuito.
Kromster

Respostas:

4

É conveniente que sua planilha use 50 colunas, porque isso significa que as colunas 51 e 52 estão disponíveis. Seu problema é facilmente resolvido com o uso de uma "coluna auxiliar", que podemos colocar na coluna  AZ(que é a coluna 52). Eu vou assumir que a linha 1 em cada uma de suas folhas contém cabeçalhos (as palavrasID , Name, Address, etc.), assim você não precisa comparar os (desde suas colunas estão na mesma ordem em ambas as folhas). Também assumirei que o ID(identificador exclusivo) está na coluna  A. (Caso contrário, a resposta se torna um pouco mais complicada, mas ainda assim bastante fácil.) Na célula  AZ2(a coluna disponível, na primeira linha usada para dados), digite

=B2&C2&D2&…&X2&Y2&Z2&AA2&AB2&AC3&…&AX2

listando todas as células de  B2através  AX2&é o operador de concatenação de texto; portanto, se B2contém Andye C2contém New York, B2&C2será avaliado como AndyNew York. Da mesma forma, a fórmula acima concatenará todos os dados de uma linha (excluindo o ID), fornecendo um resultado que pode ser algo como isto:

AndyNew York1342 Wall StreetInvestment BankerElizabeth2 diploma de faculdadeUCLA…

A fórmula é longa e complicada de digitar, mas você só precisa fazer uma vez (mas veja a nota abaixo antes de fazê-lo). Eu mostrei isso AX2porque a coluna  AXé a coluna 50. Naturalmente, a fórmula deve cobrir todas as colunas de dados que não sejam ID. Mais especificamente, deve incluir todas as colunas de dados que você deseja comparar. Se você tem uma coluna para a idade da pessoa, isso será (automaticamente?) Diferente para todos, todos os anos, e você não deseja que isso seja relatado. E, claro, a coluna auxiliar, que contém a fórmula de concatenação, deve estar em algum lugar à direita da última coluna de dados.

Agora selecione a célula  AZ2e arraste / preencha todas as 1000 linhas. E faça isso nas duas planilhas.

Finalmente, na planilha em que você deseja que as alterações sejam destacadas (acho que, pelo que você diz, que é a planilha mais recente), selecione todas as células que deseja destacar. Eu não sei se isso é apenas coluna  A, ou apenas coluna  B, ou a linha inteira (ou seja, Aatravés  AX). Selecione essas células nas linhas 2 a 1000 (ou onde quer que seus dados possam chegar) e vá para “Formatação condicional” → “Nova regra…”, selecione “Use uma fórmula para determinar quais células formatar” e digite

=IFERROR(VLOOKUP($A2,'December 2017'!$A$2:$AZ$1000,52,FALSE), "") <> $AZ2

na caixa "Formatar valores em que esta fórmula é verdadeira". Isso pega o IDvalor da linha atual da planilha atual ("janeiro de 2018") (na célula  $A2), procura-o na coluna  Ada planilha anterior ("dezembro de 2017"), obtém o valor dos dados concatenados dessa linha e o compara para o valor de dados concatenados nesta linha. (É claro que AZé a coluna auxiliar, 52é o número da coluna da coluna auxiliar e 1000é a última linha da planilha “Dezembro de 2017” que contém dados - ou um pouco mais altos; por exemplo, você pode entrar em 1200vez de se preocupar em ser exato.) Em seguida, clique em “Formatar” e especifique a formatação condicional que deseja (por exemplo, preenchimento de laranja).

Eu fiz um exemplo com apenas algumas linhas e apenas algumas colunas de dados, com a coluna auxiliar na coluna  H:

folha mês / ano anterior (dezembro de 2017)

folha mês / ano atual (janeiro de 2018), com as alterações destacadas em laranja

Observe que a linha de Andy é laranja, porque ele se mudou de Nova York para Los Angeles, e a linha de Debra é laranja, porque ela é uma nova entrada.

Nota:   Se uma linha pode ter valores como thee reactem duas colunas consecutivas, e isso pode mudar no ano seguinte para theree act, isso não seria relatado como uma diferença, porque estamos apenas comparando o valor concatenado e que ( thereact) é o mesmo nas duas folhas. Se você estiver preocupado com isso, escolha um caractere que provavelmente nunca estará nos seus dados (por exemplo, |) e insira-o entre os campos. Portanto, sua coluna auxiliar conteria

=B2&"|"&C2&"|"&D2&"|"&…&"|"&X2&"|"&Y2&"|"&Z2&"|"&AA2&"|"&AB2&"|"&AC3&"|"&…&"|"&AX2

resultando em dados que podem ser assim:

Andy | Nova York | 1342 Wall Street | Banqueiro de investimentos | Elizabeth | 2 | gato | diploma universitário | UCLA |…

e a alteração será relatada porque the|react ≠  there|act. Você provavelmente deveria estar preocupado com isso, mas, com base no que suas colunas realmente são, você pode ter motivos para ter certeza de que isso nunca será um problema.

Depois de conseguir isso, você pode ocultar as colunas auxiliares.

Scott
fonte
1

Vá para a guia Exibir e clique em Nova janela. Vá para a nova janela e clique lado a lado. Você pode sincronizar a rolagem clicando em Rolagem Síncrona. Verifique a imagem em anexo: Folhas do Excel lado a lado

A rolagem síncrona oferece a vantagem de rolar diferentes planilhas simultaneamente. Se você alternar o botão, você poderá visualizar os dois juntos e rolar apenas uma planilha.

Cetza Nido
fonte
Eu tenho mais de 1 000 linhas em cada planilha ... 50 colunas .. alguns dados são muito difíceis de comparar pela visualização (dados bancários, número de telefone, datas ...) É muito longo para continuar assim e há um risco de erro / omissão terei que fazer isso mensalmente .. Não há solução mais rápida? :(
CILUEA
Na mesma exibição, você pode aplicar filtros às colunas. Adicione fórmulas de pesquisa em qualquer uma das planilhas.
Cetza Nido
Não quero aplicar filtros às colunas ... Tenho duas planilhas (uma linha = um funcionário) e quero destacar os dados alterados (endereço, telefone ..) de cada funcionário, entre a planilha antiga (última mês) e a nova planilha (este mês) Eu não posso fazê-lo manualmente cada mês .. é de mais de 1 000 linhas em cada planilha e 50 colunas
CILUEA
Você pode usar a pesquisa OR index + match formula junto com a formatação condicional. É possível compartilhar sua planilha com alguns dados de amostra?
Cetza Nido
Eu editei meu post com um exemplo e mais explicações .. Obrigado!
CILUEA
1

Ok, então você pode fazer uma de duas coisas.

1.- A solução OOTB é ir para "Dados" -> "Ferramentas de dados" -> "Excluir (esta é a tradução direta do espanhol) duplicadas". Dessa forma, é necessário anexar as duas tabelas e você terá apenas os dados que foram alterados e apenas únicos. Portanto, para filtrar o uso CountIfde seus uniqueids, desmarque o que foi contado como 1. Encomende por uniqueId e você verá claramente o que foi alterado.

2.-Use esta fórmula

IF(Index("rangetoreturn";Match("CellofUniqueID";"Rangeofuniqueidtolookinto";0))<>"OneOftheCellthatcontainsthesameasRangeToReturn";"Info Has Changed";"InfoHasNotChanged")

Esta fórmula pode ser draged para a direita e para baixo. Portanto, você obterá uma tabela com a condição if, com a mesma quantidade de linhas da tabela "CellofUniqueID". A posição de "As informações foram alteradas" indicará qual célula na outra tabela alterou seu conteúdo. Portanto, use esta fórmula em uma nova planilha e crie uma nova tabela. Em seguida, veja os filtros e desmarque "InfoHasNotChanged" (ou qualquer outra palavra que você deseja usar).

"rangetoreturn" e "Rangeofuniqueidtolookinto" são de uma tabela (ou planilha) e "CellofUniqueID" é da outra tabela.

Felicidades

dmb
fonte
Obrigado ! A primeira solução pode ser a mais fácil, mas não funciona: (ou talvez eu não tenha entendido bem?) A opção "excluir duplicado" excluirá algumas linhas, e quero manter todas as linhas nas duas folhas. Além disso, apenas tem uma coluna na planilha com dados exclusivos. Todas as outras colunas têm muitas linhas com os mesmos dados (por exemplo, duas pessoas com a mesma data de nascimento ou a mesma idade).
CILUEA
Opção 2: o que é retorno ou intervalo de retorno de um recurso único / OneOftheCell que contém as mesmas medidas de retorno a retornar?
CILUEA
@CILUEA para a opção 2, "rangeofreturn", que é o intervalo de informações que você deseja trazer de volta. "Rangeofuniqueidtolookinto" que é literalmente o intervalo de uniqueids onde você procurará seu ID exclusivo. "Uma vez que as células contêm as mesmas variações de retorno", essas são as informações que você comparará com a que você está trazendo de volta; portanto, se for diferente, será informado. Infelizmente, não há uma resposta confortável, a menos que você conheça um pouco do VBA, o que não parece ser o caso.
Dmb
@CILUEA para a opção 1, você precisa criar uma nova tabela a partir das duas tabelas. Em seguida, exclua duplicatas. Você também pode usar CountIfe filtrar por 2 ocorrências. Quando houver 1 ocorrência, as informações não foram alteradas. Por fim, faça o pedido pelo seu ID exclusivo. Também jogue uma bandeira em uma nova coluna, para que você saiba de qual tabela suas informações vieram. Agora você pode ver claramente quais são as diferenças
DMB
@ Scott "Out of the Box" ... Cometi um erro lá, deveria ser OOTB, desculpe inglês não é minha primeira língua.
Dmb 25/01