Menu

CERCA.VERT in Excel: come si usa, esempi ed errore #N/D

=CERCA.VERT(F2;A2:D6;3;FALSO) cerca F2 nella prima colonna di A2:D6 e restituisce il valore della terza colonna della stessa riga. Corrispondenza esatta e approssimata, come correggere #N/D, un altro foglio, due criteri.

Ogni foglio di questa pagina è interattivo: cambia un numero o una formula e si ricalcola.

La formula =CERCA.VERT(F2;A2:D6;3;FALSO) cerca il valore di F2 nella prima colonna di A2:D6 e restituisce il valore della terza colonna della stessa riga. FALSO alla fine significa "solo corrispondenza esatta". Scegli un altro prodotto in F2 e il prezzo cambia. Cerca vert in Excel inglese si chiama VLOOKUP, ed è così che la mostra la tabella: =VLOOKUP(F2,A2:D6,3,FALSE). Puoi però scrivere le formule nella tabella anche in italiano, con il punto e virgola.

Prezzo di un prodotto
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Pear$1.50
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.VERT(F2;A2:D6;3;FALSO)

Fai clic su G2 e la tabella A2:D6 viene evidenziata. Cambia il 3 nella formula in 2 e G2 restituisce la categoria invece del prezzo, perché Category è la seconda colonna della tabella. Maiuscole e minuscole non contano: pear trova Pear.

Sintassi di CERCA.VERT

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
ArgomentoCos'èNell'esempio
lookup_value (valore)Il valore da trovare.F2 (Pear)
table_array (matrice_tabella)La tabella in cui cercare. CERCA.VERT cerca solo nella sua prima colonna.A2:D6
col_index_num (indice)Quale colonna della tabella restituire, contando dalla prima colonna della tabella (1).3 (Price)
range_lookup (intervallo)FALSO o 0 per una corrispondenza esatta. VERO, 1 o niente per una corrispondenza approssimata.FALSO

Il numero di colonna conta dall'inizio della tabella, non dalla colonna A del foglio. In una tabella che inizia nella colonna C, col_index_num 2 indica la colonna D. Un numero più grande della larghezza della tabella restituisce #RIF! (in inglese #REF!), e 0 restituisce #VALORE! (in inglese #VALUE!).

In Excel italiano gli argomenti sono separati dal punto e virgola, perché la virgola è il separatore decimale: =CERCA.VERT(F2;A2:D6;3;FALSO).

Scegliere la colonna da restituire con CONFRONTA

Un 3 scritto a mano si rompe senza avvisare quando qualcuno inserisce una colonna dentro la tabella: la formula continua a restituire la terza colonna, che ora contiene altro. Lascia invece che CONFRONTA (in inglese MATCH) trovi il numero di colonna dall'intestazione. Qui G1 è un elenco a discesa: scegli Stock o Category e G2 si adegua.

Numero di colonna dall'intestazione
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Carrot0.8
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.VERT(F2;A2:D6;CONFRONTA(G1;A1:D1;0);FALSO)

CONFRONTA(G1;A1:D1;0) restituisce la posizione di "Price" nella riga delle intestazioni, 3, e CERCA.VERT la usa come numero di colonna: 0,8 per Carrot. È una ricerca bidimensionale: una riga scelta in base al prodotto, una colonna scelta in base all'intestazione. La stessa idea scritta con INDICE al posto di CERCA.VERT è nella pagina INDICE e CONFRONTA.

Corrispondenza approssimata: CERCA.VERT con VERO

Con VERO come ultimo argomento, CERCA.VERT non cerca un valore uguale. Trova il valore più grande minore o uguale al valore cercato. È ciò che serve per le fasce: scaglioni fiscali, voti, tariffe di spedizione, livelli di provvigione. La prima colonna deve essere ordinata dal più piccolo al più grande.

Percentuale di provvigione in base alle vendite
F2
ABCDEF
1Sales fromRateRepSalesRate
200%Ana7500%
310003%Ben4,2003%
450005%Cara5,0005%
5100008%Dev12,5008%
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.VERT(E2;$A$2:$B$5;2;VERO)

I 4.200 di Ben non sono nella colonna A. Il valore più grande che non li supera è 1.000, quindi riceve il 3%. I 5.000 di Cara corrispondono esattamente alla riga 5.000 e ricevono il 5%. I 12.500 di Dev superano l'ultima fascia e ricevono l'ultima percentuale, l'8%. Un valore sotto la prima fascia (qui un importo di vendite negativo) restituisce #N/D (in inglese #N/A), ed è per questo che la tabella parte da 0.

I simboli $ in $A$2:$B$5 tengono ferma la tabella quando F2 viene copiata fino a F5. Senza di essi, F3 cercherebbe in A3:B6 e salterebbe la prima fascia.

Omettere il quarto argomento equivale a VERO. Su un elenco di prodotti non ordinato è un errore silenzioso: Excel cerca come se l'elenco fosse ordinato e può restituire un prezzo dalla riga sbagliata, oppure #N/D per un valore che c'è. Quando cerchi nomi, codici o ID, termina sempre con FALSO.

Perché CERCA.VERT restituisce #N/D

#N/D significa "non trovato" (la tabella qui lo mostra in inglese, #N/A). La tabella qui sotto mostra tre cause comuni, e la colonna G ripete ogni ricerca racchiusa in SE.NON.DISP. (in inglese IFNA) e ANNULLA.SPAZI (in inglese TRIM).

Tre ricerche che restituiscono #N/A
F2
ABCDEFG
1ProductCategoryPriceStockLook forPriceFixed
2AppleFruit$1.2040Kiwi#N/ANot found
3PearFruit$1.5025Milk #N/A$1.10
4CarrotVegetable$0.8060Fruit#N/ANot found
5BreadBakery$2.4015
6MilkDairy$1.1030
#N/A Il valore cercato non è nell’intervallo di ricerca.In Excel in italiano: =CERCA.VERT(E2;$A$2:$D$6;3;FALSO)
  1. Il valore non è nella tabella. Kiwi non compare in A2:A6. È un vero "non trovato", e SE.NON.DISP.(...;"Not found") lo trasforma in un testo leggibile. Cambia E2 in Apple ed entrambe le colonne mostrano il prezzo.
  2. Spazi in più. E3 contiene "Milk " con uno spazio finale, quindi non è uguale a Milk. ANNULLA.SPAZI(E3) lo toglie e G3 trova il prezzo. Se invece gli spazi sono nella tabella, ripulisci la colonna A con ANNULLA.SPAZI una volta sola invece che in ogni ricerca.
  3. Il valore è in un'altra colonna. Fruit esiste, ma nella colonna B. CERCA.VERT cerca solo nella prima colonna della tabella, quindi E4 fallisce in entrambe le colonne. Fai iniziare la tabella dalla colonna in cui cerchi, oppure usa CERCA.X, che riceve separatamente la colonna di ricerca e quella da restituire.

Attorno a una ricerca usa SE.NON.DISP. invece di SE.ERRORE (in inglese IFERROR). SE.NON.DISP. intercetta solo #N/D, quindi un #RIF! dovuto a un numero di colonna sbagliato resta visibile invece di essere nascosto come "Not found".

Altre due cause:

  • Numeri memorizzati come testo. Se la colonna A contiene codici prodotto inseriti come testo (spesso dopo un'importazione, con un piccolo triangolo verde nell'angolo) e F2 contiene il numero 101, =CERCA.VERT(F2;A2:B6;2;FALSO) restituisce #N/D anche se 101 è nell'elenco. Converti uno dei due lati: =CERCA.VERT(F2&"";A2:B6;2;FALSO) cerca il testo "101", e =CERCA.VERT(VALORE(F2);A2:B6;2;FALSO) cerca un numero quando F2 è il testo.
  • Corrispondenza approssimata su dati non ordinati, descritta nella sezione qui sopra.

CERCA.VERT restituisce 0 invece di una cella vuota

Quando la cella su cui arriva CERCA.VERT è vuota, Excel mostra 0, non una cella vuota. Uno 0 nella colonna Stock si legge allora come "esaurito" quando la giacenza non è mai stata inserita. Aggiungi &"" alla formula, oppure verifica la lunghezza del risultato:

=VLOOKUP(F2,A2:D6,4,FALSE)&""
=IF(LEN(VLOOKUP(F2,A2:D6,4,FALSE))=0,"",VLOOKUP(F2,A2:D6,4,FALSE))

In Excel italiano sono =CERCA.VERT(F2;A2:D6;4;FALSO)&"" e =SE(LUNGHEZZA(CERCA.VERT(F2;A2:D6;4;FALSO))=0;"";CERCA.VERT(F2;A2:D6;4;FALSO)). La prima è più corta ma trasforma in testo ogni numero che restituisce, quindi una SOMMA successiva lo salta. La seconda lascia i numeri come numeri.

CERCA.VERT da un altro foglio

Scrivi il nome del foglio e ! prima della tabella. Quando costruisci la formula in Excel, fai clic sulla scheda dell'altro foglio e seleziona l'intervallo: Excel scrive Prices!A2:B6 al posto tuo. Qui il foglio Orders cerca i prezzi nel foglio Prices.

Ordini con i prezzi presi dal foglio Prices
D2
ABCDE
1OrderProductQtyPriceTotal
21001Pear3$1.50$4.50
31002Milk2$1.10$2.20
41003Apple5$1.20$6.00
51004Bread1$2.40$2.40
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.VERT(B2;Prices!$A$2:$B$6;2;FALSO)

Apri il foglio Prices e cambia il prezzo di Apple: il totale dell'ordine si aggiorna. Due dettagli:

  • Un nome di foglio con spazi richiede gli apici singoli: =CERCA.VERT(B2;'Price list'!$A$2:$B$6;2;FALSO).
  • Una tabella in un'altra cartella di lavoro aggiunge il nome del file tra parentesi quadre, [Prices.xlsx]Prices!$A$2:$B$6. Quando quel file è chiuso, Excel mostra il percorso completo nella formula e la ricerca continua a funzionare sul file salvato.

CERCA.VERT con caratteri jolly (corrispondenza parziale)

Con FALSO, il valore cercato può contenere caratteri jolly: * sta per un numero qualsiasi di caratteri e ? per esattamente uno. "*"&E2&"*" trova il primo prodotto il cui nome contiene il testo di E2.

Trovare un prodotto da una parte del nome
F2
ABCDEF
1ProductCategoryPriceContainsPrice
2Green teaDrinks$3.20coffee$2.90
3Iced coffeeDrinks$2.90
4Coffee beansPantry$8.50
5Black teaDrinks$2.70
6Orange juiceDrinks$3.40
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.VERT("*"&E2&"*";A2:C6;3;FALSO)

"coffee" corrisponde sia a Iced coffee sia a Coffee beans; CERCA.VERT restituisce il primo partendo dall'alto, $2.90. Cambia E2 in bean per ottenere $8.50, oppure in juice. Per cercare un vero asterisco o punto interrogativo, mettici davanti una tilde: "~*".

CERCA.VERT verso sinistra

CERCA.VERT non può restituire una colonna a sinistra di quella in cui cerca: col_index_num conta solo verso destra, e i numeri negativi sono un errore. Per trovare il prodotto con un certo prezzo, cerca nella colonna C e restituisci la colonna A con CERCA.X (in inglese XLOOKUP) oppure con INDICE e CONFRONTA:

=XLOOKUP(2.4, C2:C6, A2:A6)              Excel 2021 and Microsoft 365
=INDEX(A2:A6, MATCH(2.4, C2:C6, 0))      every version

In Excel italiano: =CERCA.X(2,4;C2:C6;A2:A6) e =INDICE(A2:A6;CONFRONTA(2,4;C2:C6;0)). Entrambe restituiscono Bread con i dati della prima tabella. CERCA.X ha la spiegazione completa.

Esercizio: costo di spedizione in base al peso

Tariffe di spedizione
E2
ABCDE
1Weight from (kg)CostWeight (kg)Cost
20$4.507
32$6.00
45$9.50
510$14.00
620$22.00
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: Ogni costo vale dal suo peso fino al peso successivo dell'elenco. In E2, usa CERCA.VERT per restituire il costo di spedizione del pacco con il peso in D2.

CERCA.VERT con due criteri

CERCA.VERT accetta un solo valore da cercare. Per cercare in base a due colonne, crea una colonna di appoggio che le unisca, mettila per prima nella tabella e cerca lo stesso testo unito. La colonna A qui sotto è =B2&"-"&C2 copiata verso il basso, quindi contiene Coffee-Small, Coffee-Large e così via.

Prezzo in base a prodotto e formato
G2
ABCDEFG
1KeyProductSizePriceProductSizePrice
2Coffee-SmallCoffeeSmall$2.50TeaLarge
3Coffee-LargeCoffeeLarge$3.50
4Tea-SmallTeaSmall$2.00
5Tea-LargeTeaLarge$3.00
6Juice-SmallJuiceSmall$3.00
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: La colonna A unisce prodotto e formato con un trattino. In G2, restituisci il prezzo per il prodotto in E2 e il formato in F2.

Il separatore conta: "Tea"&"Large" dà TeaLarge, che non corrisponde a nulla nella colonna A. In Excel 2021 e Microsoft 365 puoi fare a meno della colonna di appoggio con =CERCA.X(1;(B2:B6=E2)*(C2:C6=F2);D2:D6); la pagina sulla ricerca con più criteri mostra questa formula e la versione con INDICE e CONFRONTA.

Domande frequenti

Come si fa un CERCA.VERT in Excel?

Scrivi =CERCA.VERT( e indica quattro argomenti: il valore da trovare, la tabella (la cui prima colonna deve contenere quel valore), il numero della colonna da restituire, e FALSO per una corrispondenza esatta. =CERCA.VERT("Pear";A2:D6;3;FALSO) trova Pear nella colonna A e restituisce il valore della colonna C di quella riga.

Cosa significa VERO o FALSO alla fine di CERCA.VERT?

FALSO (o 0) chiede una corrispondenza esatta e restituisce #N/D quando il valore manca. VERO (o 1, o l'argomento omesso) chiede una corrispondenza approssimata: il valore più grande minore o uguale al valore cercato, e funziona solo quando la prima colonna è ordinata in modo crescente.

Perché il mio CERCA.VERT restituisce #N/D?

Il valore non è stato trovato nella prima colonna della tabella. Le cause abituali sono un errore di battitura, uno spazio in più ("Milk " non è "Milk"), un numero memorizzato come testo da una parte sola, o un valore che sta in un'altra colonna. Racchiudi la formula in SE.NON.DISP. per mostrare un tuo testo: =SE.NON.DISP.(CERCA.VERT(F2;A2:D6;3;FALSO);"Not found").

CERCA.VERT può cercare verso sinistra?

No. CERCA.VERT restituisce solo colonne a destra della prima colonna della tabella. Usa =CERCA.X(F2;C2:C6;A2:A6) in Excel 2021 o Microsoft 365, oppure =INDICE(A2:A6;CONFRONTA(F2;C2:C6;0)) in qualsiasi versione.

Come si fa un CERCA.VERT da un altro foglio?

Scrivi il nome del foglio e un punto esclamativo prima dell'intervallo: =CERCA.VERT(B2;Prices!$A$2:$B$6;2;FALSO). Se il nome del foglio contiene uno spazio, racchiudilo tra apici singoli: 'Price list'!$A$2:$B$6.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA