10711 Letture
Excel: come trovare le voci che sono in una colonna ma non nell'altra

Excel: come trovare le voci che sono in una colonna ma non nell'altra

Un nuovo esempio pratico: un foglio elettronico viene utilizzato per facilitare e rendere praticamente istantanea ricerca di voci specifiche all'interno di elenchi composti anche da migliaia di elementi.

Continuiamo con la nostra serie di guide all'uso di Excel e LibreOffice Calc. Come avete potuto rendervi conto nei precedenti articoli, abbiamo voluto concentrarci sulle funzionalità poco conosciute ma allo stesso tempo più utili dei fogli elettronici.

Questa volta focalizziamo la nostra attenzione su un caso di utilizzo piuttosto comune: come scoprire le differenze tra un elenco e l'altro mettendo in evidenza quali voci sono presenti in una lista ma non nell'altra.

Quando si ha a che fare con lunghe liste contenenti centinaia o migliaia di elementi, può risultare necessario scoprire quali voci appaiono di un elenco ma non nell'altro. Alcuni pensano di ricorrere a software come WinMerge o similari che consentono di scovare le differenze nel contenuto dei file di testo. Non è però questa la strada giusta perché alcune liste possono essere molto dinamiche e contenere gli elementi in un ordine non ben preciso.

Microsoft Excel e LibreOffice Calc rappresentano quindi la soluzione migliore anche per questo tipo di esigenze.


Trovare gli elementi presenti in una colonna di Excel ma non in un'altra

Si supponga di avere un foglio di lavoro con due colonne contenenti altrettanti elenchi e migliaia di voci. Come fare per sapere quali voci della prima colonna sono presenti anche nella seconda?

Per risolvere il problema è sufficiente usare una semplice formula. Basta cioè portarsi nella stessa riga in cui sono conservati i valori delle due liste e selezionare la cella vuota in corrispondenza, per esempio, della terza colonna.

Qui si dovrà inserire la seguente formula:

=VAL.ERRORE(CONFRONTA(A2;$B$2:$B$10000;0))

La formula usa la funzione CONFRONTA per cercare quanto contenuto nella stringa A1 all'interno dell'elenco presente nella colonna B tra la riga 2 e la riga 10.000 (effettuare ovviamente le opportune variazioni).
Il valore 0 in chiusura indica che si sta cercando una corrispondenza esatta tra il valore contenuto nella cella A2 e una delle voci nella colonna B, all'interno dell'intervallo specificato.

La funzione VAL.ERRORE consente di ottenere il valore falso quando la voce viene trovata e vero quando non viene trovata.
Aggiungendo anche la funzione NON è possibile invertire la logica, in caso di necessità:


=NON(VAL.ERRORE(CONFRONTA(A2;$B$2:$B$10000;0)))

Se si volesse ottenere i valori trovati e celle vuote in corrispondenza di quelli che non sono stati trovati, basta portarsi nella colonna seguente e usare un'altrettanto semplice formula:

=SE(C2;A2;"")

Excel mostrerà il valore contenuto nella colonna A2 (stringa cercata) se e solo se la cella contenente la formula vista in precedenza mostra il valore vero. In caso contrario, la cella rimane vuota (doppi apici senza alcuna stringa specificata).

Utilizzando i suggerimenti dell'articolo Excel e LibreOffice: come spostarsi all'inizio e alla fine di righe e colonne, le due formule potranno essere rapidamente applicate su entrambe le colonne anche nel caso in cui si dovesse lavorare su fogli elettronici con migliaia di righe.

A questo punto, cliccando sull'intestazione della colonna contenente i valori si potrà copiarli (CTRL+C/CTRL+V) in un editor di testo come Notepad++.

Portandosi nel menu Edit, Line Operations quindi cliccando su Remove empty lines (containing blank characters) si potranno istantaneamente rimuovere le righe vuote.

Riteniamo questo tipo di esempi piuttosto utili perché anche nel caso in cui non soddisfacessero una specifica esigenza, si potrà trarne spunto e riadattarli in molteplici situazioni e scenari.
Le stesse considerazioni e le stesse funzioni viste nel caso di Excel sono applicabili da parte degli utenti di LibreOffice Calc.


Excel: come trovare le voci che sono in una colonna ma non nell'altra