Mesclar 2 planilhas do Excel contendo atualizações em linhas e colunas

1

Eu tenho 2 planilhas e preciso mesclar e atualizar a combinação de dados de ambos.

Spreadsheet A
userid, name, phone1, phone2, city
1, mister T, 123 123, 123 124, paris
2, mister A, , 123 124, tanger
3, mister B, 123 153,, tanger
5, mister D, 213 123, 123 435, london

Spreadsheet B
userid, name, phone1, phone2
1, mister T, 123 123, 123 124
2, mister A, 193 124 , 
3, mister B, 123 154,123 153
4, mister C, 123 183, 183 184
6, mister Y, 123 883, 183 884 


The resulting merge should be
userid, name, phone1, phone2
1, mister T, 123 123, 123 124, paris [No change, both are the same]
2, mister A, 193 124, 123 124, tanger [row get updated merging both spreadsheet]
3, mister B, 123 153, 123 153, tanger [phone1 get updatse with A as A wins, missing info gets merged]
[userid 4 gets remove as it doesn't exist in A]
5, mister D, 213 123, 123 435, london [new row gets added from A]

As entradas de B que não existem em A, devem ser removidas como uma questão de fato, A é considerado o mestre para conflitos.

No total, isso não é um simples copiar e colar nem uma mesclagem regular. Alguém pode oferecer assistência?

Obrigado!

PS: pensando nisso, eu entendo o acesso talvez mais poderoso. Então, se você pode pensar em uma solução onde eu possa importar esses csv em um banco de dados ou bancos de dados e as consultas corretas para mesclar os csv, isso funcionaria para mim também.

    
por KitkatNeko 14.01.2016 / 21:58

1 resposta

0

A primeira linha "userid" é o identificador persistente? Assumindo, sim. Pode acontecer que o nome mude e o identificador permaneça? Assumindo, sim. É possível que pessoas diferentes tenham o mesmo identificador? Assumindo, não.

Para que você não precise mesclar pessoas de ambas as planilhas, simplesmente ignore pessoas da planilha B que não estão presentes na planilha A. Em outras palavras, você mantém a lista de pessoas na planilha A e atualiza apenas suas propriedades também estão presentes na planilha B.

Então a tarefa se torna bastante direta. A planilha resultante tem uma correspondência de um para um para a planilha A e você pode usar o VLOOKUP para encontrar as entradas correspondentes na planilha B e, em seguida, usar IF e ISBLANK para atualizar os valores.

Supondo que as duas planilhas contêm dados na Planilha1, são salvas em arquivos diferentes e abertas no Excel, e uma nova planilha é criada.

Preencha a primeira linha com os mesmos títulos da planilha A.

Em seguida, insira as seguintes fórmulas:

Célula A2:

='[Spreadsheet A.xlsx]Sheet1'!A2

Célula B2:

=IF(ISBLANK('[Spreadsheet A.xlsx]Sheet1'!B2);VLOOKUP($A2;'[Spreadsheet B.xlsx]Sheet1'!$A:$E;COLUMN());'[Spreadsheet A.xlsx]Sheet1'!B2)

Usando a alça de preenchimento, copie a fórmula B2 para todas as células à direita. Depois disso, selecione a segunda linha e use a alça de preenchimento para copiar as fórmulas resultantes para as linhas subsequentes abaixo. As linhas que excedem o número de entradas na planilha A serão preenchidas com # N / A. Se desejar, outro IF pode ser adicionado para substituir erros a espaços em branco.

    
por 15.01.2016 / 13:52