Voglio esplorare le potenzialità della funzione Cerca.X.
La funzione cerca.x è una funzione di tipo ricerca e riferimento ed è l’evoluzione delle funzioni cerca.vert e cerca.orizz, lavora utilizzando due matrici anzichè una, mi permette di estrarre più dati di una riga di matrice anzichè un solo dato e non ha la rigidità tipica delle matrici per quanto riguarda l’ordine di lettura dei dati.
Le matrici solitamente leggono i dati dall’alto verso il basso e da sinistra verso destra e non viceversa e necessitano di dato ordinati in ordine alfabetico.
Il cerca.x non segue queste regole e mi permette un’estrazione di dati più elastica rispetto al cerca.vert o cerca.orizz.
Nella tabella sottostante voglio associare ad un determinato paese il suo prefisso internazionale utilizzando la funzione cerca.x.

Quindi procedo, e dopo aver inserito un’intestazione esplicativa in cella F1 inserisco il nome di un paese presente in elenco in cella F2 e in cella G2 inserisco la funzione Cerca.x che mi permette di riportare in questa cella il relativo prefisso internazionale.

La sintassi della funzione Cerca.X è la seguente:
=CERCA.X(Valore; Matrice_ricerca; Matrice_restituita; [se_non_trovato]; [Modalità di confronto]; [Modalità_ricerca])
Valore: obbligatorio. è il valore da cercare (in questo caso è il contenuto della cella F2)
Matrice_ricerca: obbligatorio. è l’intervallo di celle (o matrice) in cui ricercare il dato (in questo caso l’intervallo di celle B2:B10)
Matrice_restituita: obbligatorio. è l’intervallo di celle o matrice che contiene le informazioni desiderate (in questo caso l’intervallo di celle D2:D10)
Se_non_trovato: facoltativo. è il testo o il valore fornito dall’utente in caso di dato non trovato o non corrispondente. Normalmente il programma visualizza il messaggio “#N/D”.
Modalità di confronto: facoltativo. Si può specificare un tipo di corrispondenza utilizzando la modalità di confronto
Modalità_ricerca: facoltativo. In questa modalità determinate dove la ricerca deve iniziare (“1” per il primo e “-1” per l’ultimo elemento) oppure potete avviare una ricerca binaria.
Qui di seguito ho riportato la finestra degli argomenti funzione utilizzati nell’esempio.

Adesso utilizzando sempre la stessa tabella voglio riportare oltre al prefisso anche l’abbreviativo del paese scelto.

Le note inserite in questa immagine mostrano gli intervalli di celle o matrici utilizzate nel calcolo

Questa di seguito è la finestra di dialogo degli argomenti della funzione cerca.x utilizzata

Adesso voglio utilizzare il campo “se_non_trovato” per far apparire “specifica non valida” in caso di dato inesistente o digitato male, a tal scopo inserisco uno stato non presente nella colonna degli stati.
Inserisco in cella F2 Portogallo, utilizzo la funzione cerca.x inserendo “Specifica non valida” nel campo “se_non_trovato”

E questo è il mio risultato

Adesso voglio utilizzare l’ultimo argomento della funzione cerca.x ossia modalità_confronto.
In questa tabella di aliquote in base al reddito voglio calcolare, in base al valore di reddito, l’aliquota applicata e il relativo limite reddito entro cui applicare tale aliquota.
Mi posiziono in cella F2 e imposto la funzione cerca.x

Adesso imposto un valore non presente in tabella e questo è il mio risultato

In questo caso per il parametro se_non_trovato ho specificato il valore “0”. In caso di mancata corrispondenza, viene visualizzato “0” invece di “#/ND”.
Dato che non sto cercando una corrispondenza esatta, per la modalità di confrontoè impostato il valore “1”, il che significa che verrà visualizzato l’elemento successivo più grande della matrice. Anche la modalità di ricerca è impostata su “1”, perciò Excel cercherà nella tabella dal primo all’ultimo elemento.
Se voglio invertire la ricerca, in modalità di ricerca inserisco -1
Se voglio che il cercax mi restituisca il valore immediatamente più piccolo in modalità confronto inserisco -1
Posso utilizzare la funzione cerca.x per cercare un dato presente in riga 5 (marzo) e contemporaneamente un dato presente in colonna B (l’id agente 1004), per fare ciò devo nidificare la funzione cerca.x per eseguire una ricerca sia in verticale che in orizzontale per riportare il dato cercato.

Qui di seguito la finestra di dialogo degli argomenti funzione del cerca.x sopra impostata. Volutamente non ho inserito gli ultimi tre argomenti non obbligatori.

L’argomento se_non_trovato lo posso inserire solo nel cercax principale e non nella nidificazione perché manderebbe in errore l’intera formula
Se ho necessità di inserire entrambe le gestioni dell’errore (se_non_trovato) posso inserire l’intera formula nella funzione se.errore che eseguirà il calcolo ma se riscontrerà un errore nel cerca.x nidificato manderà a video il messaggio di errore che ho predisposto.
La formula avrà questa sintassi:
=SE.ERRORE(CERCA.X(B2;B6:B11;CERCA.X(C2;C5:H5;C6:H11);”agente non trovato”);”agente e/o mese inesistenti”)
e la sua finestra di dialogo apparirà così


