Come individuare i valori duplicati in Microsoft Excel

Spesso accade che mi venga chiesto aiuto nell’individuare i valori duplicati in un elenco. L’ultima volta è accaduto pochi giorni fa. Il cliente aveva un elenco Excel con diverse migliaia di righe. Il sistema da cui l’aveva estratto in alcuni casi aveva generato dei valori duplicati. Non esisteva la certezza che le righe fossero del tutto duplicate. In tal caso, infatti, sarebbe stato sufficiente eliminare i duplicati usando la funzionalità di Excel (Dati – Rimuovi duplicati). Nel nostro caso, tuttavia, era possibile che una cella della riga con ID ripetuto avesse valori differenti, come illustra lo screenshot seguente:

Controllare i doppioni in Excel

Come si vede, la colonna A, che contiene l’ID, può avere dei valori duplicati (e infatti duplicati in tal caso sono anche first_name e last_name). Tuttavia, non è uguale la colonna D, ip_address. L’ID 1 ha due differenti ip_address. In questa situazione non posso meccanicamente eliminare una delle due righe: dovrò passarle in rassegna e valutare la scelta da adottare. Ecco che risulta utile la colonna status, che mi segnala le righe in cui c’è un’anomalia da gestire manualmente.
Il procedimento è il seguente:

1) ordino le righe in base alla colonna ID.
2) scrivo una formula in cui utilizzo le funzioni logiche E e SE.

La funzione E utilizza la seguente sintassi:

E(logico1; logico2; logico3...)

La funzione E restituisce Vero se tutti gli argomenti restituiscono VERO.
Supponiamo che A1 contenga la data 10/05/2014.
La formula E(Anno(A1)=2014;Mese(A1)=5)  restituisce VERO: è vero che l’anno della data è 2014 ed è vero che il mese della data è 5. (Tutti gli argomenti restituiscono Vero)

Nel nostro caso possiamo procedere così: se è vero che A2 = A3 e al tempo stesso è vero che D2 <> D3, abbiamo un problema. Significherebbe, infatti, che a ID uguale corrisponde un diverso ip_address.
La formula in D2 è la seguente:

=SE(E(A2=A3;D2<>D3);"controllare";"")

In tal modo ottengo nella colonna D un valore che mi segnala le righe in cui compare un ID che ha diversi ip_address.