Menu

Ricerca con più criteri in Excel: CERCA.X, INDICE CONFRONTA

=CERCA.X(1;(A2:A7=E2)*(B2:B7=F2);C2:C7) restituisce il valore della riga in cui la colonna A corrisponde a E2 e la colonna B a F2. La versione con INDICE e CONFRONTA, una colonna di appoggio per CERCA.VERT, e FILTRO per tutte le corrispondenze.

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

=CERCA.X(1;(A2:A7=E2)*(B2:B7=F2);C2:C7) restituisce il prezzo della riga in cui il prodotto è E2 e il formato è F2. Ogni confronto controlla tutte le righe, moltiplicarli dà 1 solo dove entrambi sono veri, e CERCA.X cerca quell'1. Richiede Excel 2021 o Microsoft 365; la versione con INDICE e CONFRONTA più sotto funziona in ogni versione. La tabella mostra la formula in inglese, con XLOOKUP al posto di CERCA.X: =XLOOKUP(1,(A2:A7=E2)*(B2:B7=F2),C2:C7). Puoi scrivere le formule anche in italiano, con il punto e virgola.

Prezzo in base a prodotto e formato
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50TeaLarge$3.00
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.X(1;(A2:A7=E2)*(B2:B7=F2);C2:C7)

Tea e Large si incontrano nella riga 5, quindi G2 restituisce $3.00. Scegli Juice e Small: di nuovo $3.00, da un'altra riga. Aggiungi un quarto argomento per il caso in cui nessuna riga corrisponda a entrambi: =CERCA.X(1;(A2:A7=E2)*(B2:B7=F2);C2:C7;"No such item").

Come funzionano le condizioni moltiplicate

A2:A7=E2 confronta ogni prodotto con E2 e restituisce sei valori VERO o FALSO. Moltiplicare due elenchi così trasforma VERO in 1 e FALSO in 0, e una riga vale 1 solo se vale 1 in entrambi. La colonna D mostra quell'elenco, espanso da una sola formula.

La matrice in cui cerca CERCA.X
D2
ABCDEFG
1ProductSizePriceBoth matchProductSize
2CoffeeSmall$2.500TeaLarge
3CoffeeLarge$3.500
4TeaSmall$2.000
5TeaLarge$3.001
6JuiceSmall$3.000
7JuiceLarge$4.000
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =(A2:A7=F2)*(B2:B7=G2)

Solo D5 vale 1. Cambia F2 o G2 e l'1 si sposta. Ogni criterio in più è un altro *(intervallo=valore), e le condizioni non devono essere per forza uguaglianze: *(C2:C7<3) aggiunge "prezzo sotto 3". Ogni intervallo deve coprire le stesse righe (A2:A7, B2:B7, C2:C7): se l'intervallo da restituire ha una dimensione diversa dalle condizioni, CERCA.X restituisce #VALORE! (in inglese #VALUE!).

INDICE e CONFRONTA con più criteri

Per Excel 2019 e versioni precedenti, CONFRONTA può cercare l'1 nella stessa matrice e INDICE restituisce il prezzo da quella posizione.

Due criteri con INDICE e CONFRONTA
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50CoffeeLarge$3.50
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =INDICE(C2:C7;CONFRONTA(1;(A2:A7=E2)*(B2:B7=F2);0))

Coffee e Large sono la posizione 2 della matrice, e INDICE restituisce $3.50. In Excel italiano la formula è =INDICE(C2:C7;CONFRONTA(1;(A2:A7=E2)*(B2:B7=F2);0)). In Excel 2019 e versioni precedenti questa è una formula di matrice: premi Ctrl+Maiusc+Invio (Cmd+Maiusc+Invio su Mac) invece di Invio, ed Excel la mostra tra parentesi graffe. Premere solo Invio lì di solito restituisce #N/D o #VALORE!. In Excel 365 basta Invio. La forma con un solo criterio è nella pagina INDICE e CONFRONTA.

Unire i criteri in una sola chiave

L'altro modo è trasformare due criteri in uno unendoli. CERCA.VERT ha bisogno dei valori uniti in una colonna di appoggio all'inizio della tabella (la pagina su CERCA.VERT mostra quella versione). CERCA.X può unire gli intervalli dentro la formula, quindi non serve nessuna colonna di appoggio.

Unire prodotto e formato in una sola chiave
G2
ABCDEFG
1ProductSizePriceProductSizePrice
2CoffeeSmall$2.50JuiceLarge$4.00
3CoffeeLarge$3.50
4TeaSmall$2.00
5TeaLarge$3.00
6JuiceSmall$3.00
7JuiceLarge$4.00
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =CERCA.X(E2&"|"&F2;A2:A7&"|"&B2:B7;C2:C7)

A2:A7&"|"&B2:B7 costruisce sei chiavi come Juice|Large, e CERCA.X trova Juice|Large tra di esse: $4.00. Metti un separatore tra le parti. Senza, "AB" e "C" si uniscono nello stesso "ABC" di "A" e "BC", e la ricerca può restituire la riga sbagliata.

Se il valore che vuoi è un numero e ogni combinazione compare una volta sola, SOMMA.PIÙ.SE (in inglese SUMIFS) dà la stessa risposta senza nessuna matrice: =SOMMA.PIÙ.SE(C2:C7;A2:A7;E2;B2:B7;F2). Restituisce 0 invece di un errore quando nulla corrisponde, e questo può nascondere un errore di battitura.

Restituire tutte le corrispondenze con FILTRO

CERCA.X e INDICE CONFRONTA restituiscono la prima riga che corrisponde. Quando corrispondono più righe e le vuoi tutte, usa FILTRO (in inglese FILTER) con le stesse condizioni.

Tutti gli ordini di Phone della regione North
F2
ABCDEFG
1RegionProductQuarterSalesMatches
2NorthLaptopQ1120Q1210
3NorthPhoneQ1210Q2225
4SouthLaptopQ195Q3240
5NorthPhoneQ2225
6SouthPhoneQ2180
7NorthLaptopQ2135
8NorthPhoneQ3240
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.In Excel in italiano: =FILTRO(C2:D8;(A2:A8="North")*(B2:B8="Phone"))

Tre righe sono North e Phone, quindi F2 espande i loro trimestri e le vendite in F2:G4. In Excel italiano la formula è =FILTRO(C2:D8;(A2:A8="North")*(B2:B8="Phone")). Cambia A3 in South e l'elenco si riduce a due righe. Se nessuna riga corrisponde, FILTRO restituisce #CALC!; un terzo argomento come "None" mostra invece un testo. Altre opzioni sono nella pagina su FILTRO.

Esercizio: tre criteri

Vendite per regione, prodotto e trimestre
G4
ABCDEFG
1RegionProductQuarterSalesRegionSouth
2NorthLaptopQ1120ProductLaptop
3NorthLaptopQ2135QuarterQ2
4NorthPhoneQ1210Sales
5SouthLaptopQ195
6SouthPhoneQ2180
7SouthLaptopQ2110
8NorthPhoneQ2225
Fai clic su una cella per vederne la formula. Cambia un numero o una formula e il foglio ricalcola.

Tocca a te: Restituisci in G4 le vendite per la regione in G1, il prodotto in G2 e il trimestre in G3.

Domande frequenti

Come si usa CERCA.X con più criteri?

Moltiplica un confronto per ogni criterio e cerca 1: =CERCA.X(1;(A2:A7=E2)*(B2:B7=F2);C2:C7). Ogni confronto dà VERO o FALSO per ogni riga, il prodotto vale 1 solo dove sono tutti VERI, e CERCA.X restituisce la prima riga così.

Come si fa INDICE e CONFRONTA con due criteri?

Usa le stesse condizioni moltiplicate dentro CONFRONTA: =INDICE(C2:C7;CONFRONTA(1;(A2:A7=E2)*(B2:B7=F2);0)). In Excel 2019 e versioni precedenti, confermala con Ctrl+Maiusc+Invio (Cmd+Maiusc+Invio su Mac).

CERCA.VERT può usare due criteri?

Non direttamente. Aggiungi all'inizio della tabella una colonna di appoggio che unisca i due valori, come =A2&"|"&B2, poi cerca il valore unito: =CERCA.VERT(E2&"|"&F2;tabella_appoggio;col;FALSO).

SOMMA.PIÙ.SE può sostituire una ricerca con due criteri?

Sì, quando il valore è un numero e ogni combinazione compare una volta sola: =SOMMA.PIÙ.SE(C2:C7;A2:A7;E2;B2:B7;F2). Restituisce 0 invece di #N/D quando nessuna riga corrisponde, e somma i valori se una combinazione compare due volte.

Come si cerca con criteri in O?

Somma le condizioni invece di moltiplicarle: (A2:A7="Tea")+(A2:A7="Juice") vale 1 o più dove una delle due è vera. Cerca un valore maggiore di 0, per esempio con =CERCA.X(VERO;((A2:A7="Tea")+(A2:A7="Juice"))>0;C2:C7).

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA