Eu acho que tenho uma abordagem melhor. Eu digo pense porque isso seria melhor se você tivesse muitos dados ou se eles fossem distribuídos em várias planilhas (ou até em pastas de trabalho). Também é uma boa abordagem porque a macro abaixo pode ser usada para muitas outras finalidades ao tentar encontrar dados correspondentes (ou, conforme o caso, dados não correspondentes).
Em resumo, essa macro permite que você encontre dados correspondentes entre dois intervalos, na mesma planilha ou em planilhas. Eu colei o código de macro na parte inferior desta resposta. Eu assumo neste estágio que você saberá o que fazer com isso. Eu também suponho que você está usando uma versão do Excel que é executada no Windows.
Resumo das etapas da macro
- Quando você executa a macro, ele pede para você selecionar o intervalo de células
contendo os dados que você está procurando. Por exemplo, assumindo em
sua primeira planilha você tem todos os endereços de e-mail na coluna C
de C2 a C101, você selecionaria esse intervalo.
- Em seguida, a macro solicitará que você selecione o intervalo que deseja
investigar. Basta escolher o intervalo que contém os endereços de email
para o seu segundo evento.
- A macro solicitará que você especifique um 'comentário' para a macro
para usar para indicar que encontrou um item correspondente. Você pode especificar
qualquer coisa aqui, como "Encontrado", "Sim", etc.
- Finalmente, a macro solicitará que você insira uma letra da coluna. Isto é o
coluna que a macro irá colocar o seu 'comentário' do
passo anterior em.
Por exemplo
Vamos supor que você tenha cinco planilhas idênticas em sua planilha, cada planilha para cada lista de presença. Vamos supor que as Colunas A a F sejam preenchidas em cada planilha e que seja a Coluna C que contém os endereços de email. Vamos supor também que você tenha 100 participantes, para que os endereços de e-mail apareçam de C2 a C101 em cada planilha.
Execute a macro.
No Passo 1 , selecione o intervalo C2: C101 na sua primeira planilha. No Passo 2 , selecione o intervalo C2: C101 na sua planilha segundo . No Passo 3 , digite "Sim" como seu comentário. E para o Passo 4 digite a letra G (só porque é a primeira coluna vazia baseada no meu exemplo, mas no seu caso provavelmente será outra letra da coluna).
Quando a macro é executada, a coluna G da sua primeira planilha terá o texto "Sim" em qualquer linha em que o endereço de e-mail também foi encontrado na segunda lista de participantes.
Agora, no seu caso, você precisaria executar a macro novamente. Siga as etapas acima, exceto que, desta vez na Etapa 2, selecione o intervalo C2: C101 na terceira planilha e, na Etapa 4, selecione a próxima coluna após a selecionada anteriormente. No meu cenário, agora seria a coluna H.
Quando a macro é executada, a coluna H da sua primeira planilha terá o texto "Sim" em qualquer linha em que o endereço de e-mail também foi encontrado na terceira lista de participantes.
Agora você começará a ver o que está acontecendo. No momento em que você repetir essas etapas para cobrir todas as suas listas de presença, você terá quatro colunas contendo o texto "Sim", quando relevante. Agora você pode classificar / filtrar seus dados para que apenas as linhas que contêm "Sim" em todas essas colunas sejam exibidas. Estes são os que participaram de todos os eventos.
Finalmente, antes de usar qualquer macro, faça um backup dos seus arquivos do Excel para que você tenha uma cópia limpa!
Sub FindMatchingData()
'This macro and Excel Add-In was designed by Monomeeth to allow users an easy
'way to find matching data between two ranges, either within the same worksheet or
'across worksheets within the same workbook.
Dim MySearchRange As Range
Dim c As Range
Dim findC As Variant
Set MyRange = Application.InputBox( _
Prompt:="Select the range of cells containing the data you are looking for:", Type:=8)
Set MySearchRange = Application.InputBox( _
Prompt:="Select the range you wish to investigate:", Type:=8)
Response = InputBox(Prompt:="Specify the comment you wish to appear to indicate the data was found:")
MyOutputColumn = Application.InputBox( _
Prompt:="Enter the alphabetical column letter(s) to specify the column you want the message to appear in.")
Set Sht = MyRange.Parent
For Each c In MyRange
If Not c Is Nothing Then
Set findC = MySearchRange.Find(c.Value, LookIn:=xlValues)
If Not findC Is Nothing Then
Sht.Range(MyOutputColumn & c.Row).Cells.Value = Response
End If
End If
Next
Excel.Application.SendKeys Keys:="^{HOME}", Wait:=True
DoEvents
MsgBox "Investigation completed."
End Sub