Comparar listas e adicionar itens ausentes

0

Eu tenho 8 planilhas em uma pasta de trabalho. O primeiro é uma visão geral semanal. Os outros sete são divididos em dias. Cada dia lista alguns nomes de pessoas que entraram no site. Então, segunda-feira pode ter Joe, John e Jack visitando. Estes são os valores em A1, A2 e A3 na folha de segunda-feira. Ter pode ter Joe novamente, depois Ryan e Andrew. Então, eles formariam os valores A1, A2 e A3 da planilha de terça-feira, e assim por diante.

A planilha geral precisa mostrar todos os nomes da semana, mas não duplicar nenhum deles. Portanto, na planilha geral, gostaria de ver algo como:

Joe
John
Jack
Ryan
Andrew

Portanto, nenhum nome é duplicado. Eu gostaria de fazer isso sem macros, se possível. A fórmula que eu comecei a criar ficaria extremamente longa quando você fosse a décima pessoa mais ou menos. Envolveu o =IF(AND( ),IF(AND( ), IF(AND...que foi para cada célula que poderia ter um nome no dia 1 - então eu faria um rap para verificar se havia algo no dia 2, etc. Você pode ver como isso ficaria muito longo.

Qualquer ajuda é apreciada.

EDIT: A fórmula a seguir compara duas listas e coloca somente nomes exclusivos em uma nova lista:

=IFERROR(IFERROR(INDEX(Monday, MATCH(0, COUNTIF($C$1:C1, Monday), 0)),INDEX(List2, MATCH(0, COUNTIF($C$1:C1, List2), 0))), "")

(você precisa pressionar ctrl-shift-enter ao colocá-lo em uma célula para que ele possa trabalhar com intervalos)

mas não entendo o suficiente para adaptá-lo para usá-lo em sete listas. Alguma ideia?

Roclemir
fonte
Isso pode ser feito facilmente com o VBA - percorra as planilhas, adicione os nomes a um objeto Collection. Se você usar o nome como chave, ele rejeitará quaisquer duplicatas. Em seguida, coloque todos os nomes na sua folha semanal. Se você deseja evitar o VBA, copie todos os nomes na planilha semanal e use o Remove Duplicatescomando Ou, dependendo da natureza dos seus dados, considere uma Tabela Dinâmica
Ron Rosenfeld
Obrigado pela resposta. Se eu usar o comando Remover Duplicatas, ele fará isso apenas uma vez. Este documento deve ser dinâmico, para que eu possa adicioná-lo diariamente e atualize a lista à medida que for avançando.
Roclemir 23/02
Bem, você pode executá-lo todos os dias quando atualizar a lista; mesmo uma macro VBA precisaria ser executada ou acionada quando novas informações forem adicionadas.
Ron Rosenfeld
Veja bem, o comprimento da função da planilha é o motivo pelo qual o VBa geralmente é uma escolha melhor! De qualquer forma, é totalmente legal responder sua própria pergunta, mas faça isso em um post diferente. Adicione o seu como resposta e me informe quando o fizer para que eu possa excluir a postagem que forneci.
Dave
O VBA pode ser acionado toda vez que uma célula for alterada no intervalo e depois executada.
Raystafarian 23/02

Respostas:

0

O OP deixou a resposta na pergunta!

=IFERROR( IFERROR( IFERROR( IFERROR( IFERROR( IFERROR( IFERROR( INDEX(ThurNames, MATCH(0, COUNTIF($B$2:B2, ThurNames), 0)), INDEX(FriNames, MATCH(0,COUNTIF($B$2:B2, FriNames), 0))), INDEX(SatNames, MATCH(0, COUNTIF($B$2:B2, SatNames), 0))), INDEX(SunNames, MATCH(0, COUNTIF($B$2:B2, SunNames), 0))), INDEX(MonNames, MATCH(0, COUNTIF($B$2:B2, MonNames), 0))), INDEX(TueNames, MATCH(0, COUNTIF($B$2:B2, TueNames), 0))), INDEX(WedNames, MATCH(0, COUNTIF($B$2:B2, WedNames), 0))), "")

É isso mesmo, 7 instruções iferror aninhadas. Se você usar isso, não se esqueça de pressionar ctrl + shift + enter em vez de apenas entrar quando terminar.

Dave
fonte
Eu deveria colocá-lo em um comentário?
Roclemir 23/02
Não adicione como resposta. Eu irei excluir este aqui
Dave
0

Eu encontrei uma maneira de fazer isso com instruções IFERROR aninhadas. Espero que isso ajude mais pessoas do que apenas eu.

= IFERROR (IFERROR (IFERROR (IFERROR (IFERROR (IFERROR (IFERROR (INDEX (ThurNames, MATCH (0, COUNTIF ($ B $ 2: B2, ThurNames), 0))), INDEX (FriNames, MATCH (0, COUNTIF ($ B $ 2: B2, FriNames), 0))), INDEX (SatNames, MATCH (0, COUNTIF ($ B $ 2: B2, SatNames), 0))), INDEX (SunNames, MATCH (0, COUNTIF ($ B $ 2: B2, SunNames), 0))), INDEX (MonNames, MATCH (0, COUNTIF ($ B $ 2: B2, MonNames), 0))), INDEX (TueNames, MATCH (0, COUNTIF ($ B $ 2: B2, TueNames), 0))), INDEX (WedNames, MATCH (0, COUNTIF ($ B $ 2: B2, WedNames), 0))), "")

NB: Isso é importante, depois de colocar isso na barra de fórmulas - termine pressionando ctrl-shift-enter ou não funcionará.

ctrl-shift-enter informa as fórmulas necessárias para trabalhar em vários intervalos de dados.

Roclemir
fonte