Contagem de células duplicadas (valores, texto e vazio) quando você compara duas colunas

1

Eu tenho duas planilhas com as seguintes estruturas de dados:

sheet a) Id   Name  abn  address    sheet b) Id  Name abn  address
         1    AA    123  ac                  25  ad   124  ab
         015  Ac    125  aw                  02  aa   123  ac
         26   3m         az                  8   aap  234  df
         32   im    98   op                  17  aj        aw
         230  aap   234  df                  15  3m   160  az

O que preciso encontrar são valores duplicados da folha b contra a folha a.

Eu tentei countif, match, vlookup, e indexfunções, mas ainda não estou feliz com o resultado. Precisa de posição porque a duplicata é repetida mais de 3 vezes, encontre a id exata da posição para aquela duplicata. Como faço para encontrar valores duplicados de duas folhas diferentes?

Nikola Karcev
fonte
Espere, estou confuso, você está tentando encontrar valores duplicados ou locais ou apenas o número de duplicatas?
James Mertz
Sua pergunta é muito confusa. Você mostra quatro colunas, mas nenhuma linha sheet acorresponde a nenhuma linha sheet bem todas as quatro colunas - então, é necessário mostrar todas elas? Você está procurando por todos os valores duplicados, como a.Name[3]= 3m= b.Name[5], a.Name[5]= aap= b.Name[3], a.Name[1]= AA= b.Name[2]= aa(sem distinção entre maiúsculas e minúsculas), a.Id[2]= 015= b.Id[5]= 15(ignorar zeros iniciais), a.abn[1]= 123= b.abn[2], a.abn[3]= (blank) = b.abn[4]e todas as correspondências na addresscoluna? Ou você está interessado em apenas uma única coluna? … (Continuação)
Scott
(continuação)… Se você está interessado em apenas uma única coluna, (a) por favor diga, e (b) mostre essa coluna primeiro, com talvez uma outra para ilustrar dados associados - não obstrua a questão com irrelevância. Se você estiver interessado em mais de uma coluna, reformule sua pergunta (título) - “compare duas planilhas”, talvez? Mostre-nos como você deseja que o resultado seja. Você quer contar, encontrar posição ou ambos? O que os “3 tempos” têm a ver com a questão? Por favor, dê-nos pelo menos um exemplo de exatamente o que você tentou e por que achou insatisfatório.
Scott

Respostas:

1

Parece que você está bem com algumas duplicatas, mas para mais de 3, você quer vê-las.

Eu montei um UDF chamado "xMatch" que pode te ajudar. É igual a Match, em que retorna a posição de um valor, mas permite que você especifique que deseja encontrar o enésimo valor (por exemplo, a terceira duplicata).

=xMatch("Look for", "Look in this column", "Find the nth one")

Para fazer isso funcionar, você precisará inserir este código em um módulo (eu explico como abaixo se você não estiver familiarizado):

Public Function xMatch(lookup_value As String, column_array As Range, find_nth As Integer)'

Dim aSize As Integer 'Rows in the column_array
Dim Hit() As Long 'Array that keeps track of all match locations
Dim i As Long 'Iterator
Dim z As Long 'Counts zeroes
Dim Pos As Integer 'Position of our desired match in the column array

aSize = column_array.Rows.Count
ReDim Hit(1 To aSize)

'Check each cell in the range for matches
'When a match is found, note it's postion in the Hit array
'If a match isn't found, add another zero to the count
For i = 1 To aSize
 If (InStr(1, column_array(i), lookup_value) > 0) Then
  Hit(i) = 1 * i
 Else
  z = z + 1
 End If
Next i

'Small finds the kth smallest number, but considers ties as seperate numbers
'Consider {1,0,0,2}
'1st smallest number is 0, and the second smallest number is also 0
'So we need to screen out the all the zeros (z) and then find the nth item after that
Pos = WorksheetFunction.Small(Hit, z + find_nth)

xMatch = Pos

End Function

Para colocar esse código, pressione Alt + F11 no arquivo do Excel e ele abrirá o Editor do VBA. Na barra de ferramentas, selecione Inserir e selecione Módulo .

Abra o novo módulo e cole o código!

Agora, quando você digitar "= xMatch (" em uma célula, ele permitirá que você use sua nova fórmula.

Espero que isto ajude!

Aaron Contreras
fonte