La FUNZIONE =CONFRONTA,  la Funzione =RIF.RIGA  e la Funzione =SE

Utilizzo: controllo inserimento dati doppioni.

Quando si ha la necessità di controllare se un dato che stiamo inserendo NON sia già presente in un determinato elenco, e vorremmo essere avvisati se questo accade, possiamo adoperare delle funzioni di Excel, tre per l'esattezza, da inserire ognuna in tre colonne, le quali, lavorando "a caduta", ci permettono di controllare l'inserimento di dati ed essere avvisati. Le funzioni da usare sono: =CONFRONTA, =RIF.RIGA e  =SE. Diamo prima un occhiata alle funzioni:

  • =CONFRONTA restituisce la posizione del valore confrontato all'interno di matrice, (o di un Range di celle), NON il valore stesso. La formula =CONFRONTA("b";{"a";"b";"c"};0), ad esempio, restituisce 2, la posizione relativa di "b" all'interno della matrice {"a";"b";"c"}.
  • lo 0 (zero) dell'ultima istruzione serve perchè =CONFRONTA troverà il primo valore che corrisponde esattamente al valore cercato. I valori in matrice possono essere disposti in qualsiasi ordine. Altre risposte si avranno se al posto dello 0 useremo 1 op. -1. Con 1 troverà il valore più grande che è minore o uguale a valore (è necessario che i valori in matrice siano disposti in ordine crescente). Con -1 troverà il valore più piccolo che è maggiore o uguale a valore(è necessario che i valori di matrice siano disposti in ordine decrescente).
  • =RIF.RIGA restituisce il numero di riga di un riferimento (es. di una cella)
  • =SE si usa per eseguire dei test condizionali su valori e formule.

Nell'esempio sotto è stato ripreso il procedimento usato anche per realizzare "Superenalotto", presente in questa sezione. Si vuole essere avvisati se in un elenco (da A1 a A17) inseriamo due o più volte uno stesso valore (l'esempio è fatto usando numeri, ma funziona anche con lettere (nomi) o con date. Per le lettere la funzione non rileva le maiuscole). Il funzionamento non è complicato: nella colonna A, dalla riga 2 alla 17, vengono inseriti dei valori; nella colonna B (dalla riga 2 alla 17) viene inserita la formula =CONFRONTA(A2;$A$2:$A$17;0) che significa: confronta il valore che è in A2 con quelli presenti nelle celle da A2 a A17, e cerca lo stesso valore ; nel caso che trovi il valore già presente, la funzione riporta il numero di riga corrispondente al primo valore uguale già presente. Se non esistono doppioni, la funzione riporta il numero di riga relativo al valore appena immesso. (ricordo che per numero di riga, la funzione NON  intende il numero riga del foglio di lavoro, MA il numero di riga relativo alle righe che compongono l'elenco). Sotto vediamo infatti che il numero 7, presente nella prima e nella terza riga dell'elenco, viene riconosciuto e in B4 viene riportato 1, che è il numero di riga (elenco) dove si trova il primo 7.

Ora vediamo cosa fa la seconda funzione, la =RIF.RIGA, posizionata nella colonna C, anche questa inserita nelle celle che vanno dalla 2 alla 17. Questa funzione riporta il numero di riga relativo alla cella in riferimento, (in questa funzione per numero di riga si intende il numero della riga del Foglio di Lavoro, non quella di un elenco) per cui la funzione =RIF.RIGA(A2) riporterebbe 2. Poichè a noi interessa confrontare il risultato della colonna B (in B2 il primo valore) il quale riporta il numero di riga elenco, che è sfalsato di una riga (l'elenco comincia in A2 che è il primo numero di riga elenco) rispetto al numero riga del foglio di lavoro, toglieremo 1 alla formula, e cioè: =RIF.RIGA(A2)-1. Perchè facciamo questo: perchè abbiamo bisogno di verificare una diversità tra le colonne B e C in modo che la terza funzione =SE, nella colonna D, operando sui valori delle celle sulla stessa riga, (ma delle colonne B e C), ci segnalerà se il numero immesso " è già presente" o no - Ricordo che la funzione CONFRONTA, se non esistono doppioni, riporta il numero di riga elenco del numero immesso che quindi corrisponderà a RIF.RIGA, ma se il numero esiste già, e vuol dire che è su una riga precedente al numero immesso, verrà riportato un numero riga diverso  (sempre inferiore) e quindi  si creerà la diversità necessaria  che la funzione =SE interpreterà.

La funzione =SE (inserita nella colonna D e nello stesso range delle altre), è condizionale : se si verifica una condizione, mi fai questo, altrimenti quest'altro, e quindi la formula sarà =SE(B2<C2;"Già presente";"")  cioè se il valore della cella B2 è inferiore a quello in C2, allora mi scrivi "Già presente", altrimenti mi lasci la cella vuota. Ovviamente gli si può far dire ciò che vogliamo, basterà cambiare il testo.

Se poi vogliamo completare "l'opera", nascondendo le colonne B e C, dovremo selezionare le due intestazioni di colonna e dal menù "Formato/Colonna" sceglieremo "nascondi"

Il risultato sarà questo:

Procedura realizzata con la collaborazione di Marco Nocciolini.