- CONFRONTA (MATCH)
- CONFRONTA (XMATCH) versione evoluta
restituisce la posizione dell'elemento in un intervallo sia come riga che come colonna
a seconda che l'intervanno sia una riga o una colonna
la funzione in caso non trovi nulla restutisce errore
il formato del valore/campo di ricerca deve essere uguale a quello dell'intervallo, altrimenti non troverà il dato cercato
sintassi:
CONFRONTA(valore; intervallo; tolleranza)
MATCH(valore, intervallo, tolleranza)
CONFRONTA.X(valore; intervallo; tolleranza; 1 o -1 (ricerca da sopra o da sotto))
XMATCH(valore, intervallo, tolleranza, 1 o -1)
tolleranza
- 0 esatta
- -1 uguale o inferiore
- 1 uguale o superiore
- 2 accetta testo con carattere jolly ? * (solo con CONFRONTA.X / XMATCH)
- riga
esempio: numero riga rispetto l'intervallo B2:B5 della cella con valore 41
=CONFRONTA(41; B2:B5; 0)
esempio: numero riga della cella con valore "ciao" nella colonna C
=CONFRONTA("ciao"; C:C; 0)
- colonna
esempio: numero colonna rispetto intervallo A;Z della cella con valore "ciao" nella riga 1
=CONFRONTA("ciao"; A1:Z1; 0)
esempio: numero colonna cercando il testo della etichetta colonna di una tabella
=CONFRONTA("etichetta cercata"; TABELLA[#Intestazioni]; 0)
- più colonne
(come con CERCA.X (XLOOKUP) con più parametri)
- parametri tutti veri E AND
- usando l'operatore * che vuol dire E (AND)
=CONFRONTA.X(1,(Tabella["colonna"]="valore 1")*(Tabella[colonna]="valore 2")*...,0)
- concatenamento &
=CONFRONTA.X("valore 1"&"valore 2"&...,Tabella["colonna"]&Tabella["colonna"],0)
- solo uno o più parametri tutti veri O OR
usando l'operatore + che vuol dire E (OR)
=CONFRONTA.X(1,(Tabella["colonna"]="valore 1")+(Tabella[colonna]="valore 2")+...,0)
puoi anche con le () usare entrambe le due opzioni se necessario
E (O)
caratteri jolly
MATCH accetta anche i caratteri jolly * e ?
con XMATCH devi usare la tolleranza 2
esempio: cerco valori che hanno "abc" all'interno della colonna A
=CONFRONTA("*abc*"; A:A; 0)
dato che restutisce errore se non trova nulla la funzione si usa anche per verificare se esiste un elemento in una intera colonna di una tabella ed in caso eseguire determinati comandi
si usa una formula di verifica opzione SE e si verifica se la formula da errore o meno VAL.ERRORE
=SE(VAL.ERRORE(CONFRONTA([@[CAMPO]],TABELLA[CAMPO],0)), ..., ...)
- INDICE (INDEX)
restituisce dopo aver indicato la posizione un oggetto cella di cui di default rilascia il valore
usato quasi sempre nelle ricerche INDICE (+ CONFRONTA())
sintassi:
la posizione può essere il numero di riga o riga+colonna
INDICE(intervallo colonna; riga)
INDICE(intervallo matrice; riga; colonna)
esempio: il valore in A3
=INDICE(A:A; 3)
- utilizzato con CONFRONTA
l'utilizzo più comune é con la funzione CONFRONTA, la quale resitutisce la posizione dell'elemento da restituire
esempio: con CONFRONTA per riga
=INDICE(A:A; CONFRONTA("ciao"; D:D; 0))
esempio: con CONFRONTA per riga e colonna
=INDICE(A:D; CONFRONTA("ciao"; A:A; 0);CONFRONTA("titolo"; $A$1:$D$1; 0))
- ricerca su più colonne
(vedi riferimento - cerca su più colonne)
- ricerca su più schede
(vedi riferimento - cerca su più schede)
- estrai in diverse posizioni
(vedi riferimento - estrai in diverse posizioni)
- trova testo keysensitive
la formula non é keysensitive per renderla tale occorre una formula array con la funzione IDENTICO
{=INDICE(colonna ricerca;CONFRONTA(VERO;IDENTICO(colonna confronto;D2);0))}
esempio: restituisce valore delle celle A2:A6 se il testo in D2 é identico nell'intervallo B2:B6
{=INDICE($A$2:$A$6;CONFRONTA(VERO;IDENTICO($B$2:$B$6;D2);0))}
- utilizzato con CELLA
dato che restituisce un oggetto cella la combinazione può essere utilizzata anche con la funzione CELLA
sintassi: in CELLA
=CELLA("indirizzo"; INDICE(A:A; CONFRONTA("ciao"; D:D; 0)))
- trova ultimo elemento di una serie (utilizzo con CONTA.VALORI)
é possibile utilizzare CONTA.VALORI per ottenere la posizione dell'utlimo elemento di un intervallo
sintassi: in CONTA.VALORI in una tabella
=INDICE(TABELLAREF[CAMPORESTITUITO];CONTA.VALORI(TABELLAREF[CAMPORESTITUITO]))
- ricerca per riga e colonna utilizzando testo didamico e INDIRETTO
tramite INDIRETTO é possibile fare una ricerca per riga e colonna in una tabella prelevando il testo da cercare come colonna da una cella che ricava il testo da una formula
in pratica abbiamo una cella con una formula che restituisce un testo che sarà l'etichetta da utilizzare per cercare la colonna
sintassi
A1 cella con restituzione testo da formula per ricerca colonna
=INDICE(INDIRETTO("TABELLA["& A1 & "]");CONFRONTA("cerca per riga",TABELLA[COLONNA CERCA RIGA],0))
l'idea é di sotutire con INDIRETTO il primo elemento della funzione rendendolo dinamico in base al testo restituito dalla funzione nella cella A1
esempio: utilizzando campi di una tabella
=INDICE(INDIRETTO("TABELLA["&[@[campo1 riga corrente]]&"]"),CONFRONTA([@[campo2 riga corrente]],TABELLA[colonna],0))