Qualche post indietro ho suggerito come eliminare le stringhe di testo scritte due volte in un file di testo, utilizzando la console o un emulatore di terminale. Lo stesso risultato si può ottenere con LibreOffice calc se non si vogliono utilizzare i comandi unix. Come nel precedente post, supponiamo di avere un elenco di stringhe di testo in un file di testo. Una per riga. Potremmo avere una lista di nomi, oppure una lista di indirizzi email o numeri di telefono. Vediamo come fare….
Apriamo il file di testo con calc, nella finestra di importazione selezioniamo: separato da virgola.

Il risultato sarà di ottenere una stringa per ogni riga della colonna A di calc.
Esaminiamo il primo caso, quello cioè di trovare duplicati nella stessa colonna. Ordiniamo alfabeticamente la colonna con i nomi (non è indispensabile e serve solo per vedere meglio il risultato alla fine). La formula che ci permette di trovare i duplicati è la seguente: =CONTA.SE($A$1:$A$3000;A1)
Scriviamo questa formula nella prima riga della colonna B. Con la maniglia della cella (posta in basso a destra) che appare come un quadratino nero, estendiamo la formula per tutte le righe della colonna B, in numero uguale alle righe della colonna A che contengono i dati.
Vediamo cosa fa la formula: esamina il contenuto delle righe della colonna A, se non ci sono duplicati restituisce il valore 1, se ci sono duplicati restituisce un valore superiore a seconda di quanti sono i duplicati. È attendibile fino a 3.000 righe (se le avete di più, modificate il valore 3000). Come si vede sotto nella schermata, il numero 1 è accanto ai valori non duplicati e il numero 2 è accanto ai valori duplicati 2 volte, il numero 3 è accanto ai valori duplicati 3 volte … e così via. In questo caso per una più facile eliminazione dei duplicati, conviene copiare la colonna B nella colonna C, però con il comando “incolla speciale” selezionando solo i numeri. Poi ordinare alfabeticamente la colonna C.

Esaminiamo il secondo caso, quello cioè in cui si deve trovare duplicati raffrontando due colonne.
Copiamo la lista 1 nella colonna A e la lista 2 nella colonna B (si può usare anche il copia e incolla direttamente da un file di testo aperto con un editor). Nella prima riga della colonna C scriviamo la formula: =SE(VAL.ERRORE(CERCA.VERT(B1;$A$1:$A$5000;1;0));B1;"Duplicato")
Come nel primo caso, estendiamo le celle della colonna C per tutte le righe dell’elenco più lungo. La schermata sotto mostra il risultato.

Vediamo cosa fa la formula: confronta il contenuto della colonna A con quello della colonna B. Se nella colonna A c’è un valore uguale ad un valore della colonna B, restituisce come risultato la stringa “duplicato”. Se non c’è nessun valore uguale, restituisce come risultato il valore della colonna B che gli sta accanto. la formula è valida per 5000 righe. Se le righe sono di più, modificare il valore 5000 all’occorrenza.




