Como posso encontrar valores duplicados em uma coluna que delimita os resultados por intervalos em uma coluna diferente?

Como posso encontrar valores duplicados em uma coluna que delimita os resultados por intervalos em uma coluna diferente?
     A          B            C
1  RANGES     VALUES   FORMULA NEEDED  
2    1          x           yes
3    1          x           yes
4    2          x           no
5    3                      no
6    3          y           yes
7    3          y           yes
8    4          x           no
9    5          z           no
10   5          y           no

Então, quero identificar duplicatas em VALUES, delimitando os resultados por valores em RANGES. Gostaria que o resultado fosse como na coluna FÓRMULA NECESSÁRIA.

O que preciso são os valores duplicados da coluna VALUES. Mais especificamente, preciso ver se o que encontro na coluna VALUES é uma duplicata, usando (isso é importante) o intervalo de duplicatas da coluna RANGES como delimitador. Espero que isso tenha feito sentido.

Portanto, se: - x estiver duplicado nas linhas numeradas 1, isso é um sim. - y é duplicado nas linhas numeradas 3, mesmo com valores em branco ou valores adicionais como x inseridos lá, isso ainda é um sim.

Esta é minha tentativa fracassada:

=IF(AND(A2=A1,B2=B1),"yes","no")

Responder1

Você precisa usar VBA.

Então o que você precisa fazer é ler os valores da coluna A + B em um array.
Digamos que temos umvariedadenomeado C, então C(1) será A2 + B2 = "1x"; C(2) será A3 + B3 = "1x"; C(3): A4 + B4 = “2x”; etc.
Você faz um loop for para ler todos os valores que você precisa para C (i).

Depois de fazer isso, basta pesquisar no Google excel vba how to find duplicate values in an array
e tenho certeza de que haverá muitas soluções para isso.

Depois de fazer isso, você provavelmente obterá um array que armazena valores em outro ou no mesmo array, por exemplo, em booleanos (verdadeiro/falso)

Então você apenas executa outro loop for nele, que será algo como:
for i = 1 to NumberOfRows if C(i) = true then Cells(i, "C").Value = "true" next i

Claro que existem mais soluções possíveis, mas é assim que eu faria.
Se você tiver dúvidas, não hesite em perguntar!

informação relacionada