Sommario
Excel offre diverse funzioni e modi per ottenere i valori corrispondenti. A seconda della situazione, gli utenti possono scegliere le loro preferenze. Questa esercitazione vi mostrerà come ottenere i risultati utilizzando PARTITA INDICE con più corrispondenze in Excel.
Prima di tutto, parliamo della cartella di lavoro di oggi.
Nei fogli della cartella di lavoro di oggi, troverete i prodotti e la loro relazione di prezzo. Utilizzando questa relazione vedremo alcuni esempi per ottenere il valore con criteri multipli .
Nel mondo reale può essere necessario gestire insiemi di dati con diverse relazioni e impostare criteri diversi per produrre i risultati. Per mantenere la semplicità per il momento, recupereremo il prezzo di un prodotto corrispondente al nome e alle dimensioni.
Scarica il quaderno di esercizi
È possibile scaricare la cartella di lavoro utilizzata per la dimostrazione con tutte le formule dal link sottostante.
INDEX-MATCH con corrispondenze multiple.xlsx
Nozioni di base di INDEX-MATCH
Nozioni di base della funzione INDEX
La funzione INDICE restituisce un valore o il riferimento a un valore all'interno di una tabella o di un intervallo. Può essere utilizzata per recuperare singoli valori o intere righe e colonne. Vediamo la sintassi della funzione INDEX.
INDEX(array/riferimento, numero_riga, numero_colonna, numero_area)
o riferimento: Una cella o un intervallo di celle da esaminare
numero_riga: Una riga dell'array da cui restituire un valore
numero_colonna: La colonna dell'array da cui restituire un valore
numero_area: Seleziona un intervallo di riferimenti da cui restituire l'intersezione di numero_riga e numero_colonna È un campo opzionale.
Durante la stesura della formula si può scegliere se fornire numero_riga o numero_colonna Se si fornisce numero_riga allora è facoltativo usare numero_colonna e viceversa.
È possibile consultare il sito Supporto Microsoft per una descrizione più approfondita della sintassi.
Nozioni di base della funzione MATCH
In pratica, una funzione che si trova più spesso con il programma INDICE la funzione è la funzione MATCH . il PARTITA viene utilizzata per individuare la posizione di un elemento specificato in un intervallo di celle e restituisce la posizione relativa di un particolare elemento nell'intervallo.
Sintassi dell'opzione PARTITA la funzione è
MATCH(lookup_value, lookup_array, match_type)
lookup_value: Il valore da cercare nella matrice lookup_array.
lookup_array: Un intervallo di celle da ricercare.
tipo_di_partita: Si tratta di un campo opzionale, in cui è possibile inserire 3 valori.
1 = Minore o uguale a lookup_value
0 = Valore di ricerca esatto
-1 = Maggiore o uguale a lookup_value
Per una comprensione più approfondita, è possibile consultare il documento Supporto Microsoft sito.
6 Esempi di utilizzo della formula INDEX-MATCH con corrispondenze multiple
Ora metteremo in pratica queste formule e teorie nel nostro set di dati. Abbiamo risolto diversi scenari utilizzando la funzione ACCOPPIAMENTO DI INDICI con più corrispondenze in Excel e li abbiamo inseriti in diverse sezioni per una migliore comprensione. Seguiteci per vedere come possiamo applicarli in diversi scenari o se preferite uno specifico, potete trovarlo nella tabella qui sopra.
1. INDEX-MATCH con criteri multipli
Per recuperare i valori con criteri multipli Per esempio, se si desidera recuperare il prezzo di una camicia di taglia piccola (nella nostra cartella di lavoro), è necessario impostare il nome del prodotto - Camicia e la taglia - Piccola.
Ora seguite questi passaggi per vedere come utilizzare la formula per trovare la corrispondenza dell'indice con queste corrispondenze multiple in Excel.
Passi:
- Per prima cosa, selezionare la cella G6 .
- Quindi scrivere la seguente formula.
=INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))
🔎 Ripartizione della formula
INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0))
👉
(G4=B5:B15) e (G5=C5:C15) sono entrambe condizioni e restituiscono o VERO o FALSO a seconda che le condizioni siano vere o meno. Numericamente, sono 1 o 0. Quindi la moltiplicazione restituisce 1 se entrambe le condizioni sono vere.
👉
MATCH(1,(G4=B5:B15)*(G5=C5:C15),0) restituisce la posizione in cui entrambe le condizioni sono vere. In questo caso, è 1.
👉
INDEX(D5:D15,MATCH(1,(G4=B5:B15)*(G5=C5:C15),0)) restituisce il valore nella posizione in cui è stata restituita la parte precedente della formula.
- Infine, premere Entrare .
Ecco come utilizzare la MATCH INDEX per criteri o corrispondenze multiple in Excel.
Per saperne di più: Come abbinare più criteri da array diversi in Excel
2. INDEX-MATCH con criteri multipli appartenenti a righe e colonne
In questa sezione, verrà illustrato come eseguire una ricerca testando due o più criteri in righe e colonne Può sembrare un po' complicato e complesso.
Apportiamo una piccola modifica al nostro esempio: la nostra tabella è ora organizzata in modo tale che i valori delle taglie (Small, Large, M, XL) rappresentino le singole colonne.
Analogamente alla sezione precedente, impostare il prodotto e la dimensione richiesta come valori di criterio.
Seguite questi passaggi per vedere come utilizzare la formula per questa sezione.
Passi:
- Per prima cosa, selezionare la cella I6 .
- Quindi scrivete la seguente formula.
=INDICE(C5:F7,MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0))
🔎 Ripartizione della formula
👉
MATCH(I4,B5:B7,0) restituisce la corrispondenza esatta del valore di I4 nell'intervallo B5:B7 .
👉
Allo stesso modo, MATCH(I5,C4:F4,0) restituisce la corrispondenza esatta del valore di I5 nell'intervallo C4:F4 .
👉
Infine, INDICE(C5:F7, MATCH(I4,B5:B7,0),MATCH(I5,C4:F4,0)) prende l'uscita della prima funzione come numero di riga e la seconda funzione come numero di colonna e restituisce il valore che si trova nella posizione dall'intervallo C5:F7 .
- Dopodiché, premere Entrare .
Pertanto, è possibile utilizzare l'opzione ACCOPPIAMENTO DI INDICI con più criteri appartenenti a righe e colonne.
Per saperne di più: Indice di Excel Abbinamento di criteri singoli/multipli con risultati singoli/multipli
Letture simili
- MATCH INDICE con 3 criteri in Excel (4 esempi)
- MATCH INDICE su più fogli in Excel (con alternativa)
- Somma con le funzioni INDEX-MATCH con criteri multipli in Excel
- Somma di più righe in Excel (3 modi)
- Formula INDEX-MATCH per trovare il valore minimo in Excel (4 modi adatti)
3. INDEX-MATCH da colonne non adiacenti
In questa sezione, mostreremo un esempio di come recuperare valori corrispondenti utilizzando due colonne non adiacenti. Inoltre, abbiamo bisogno di la funzione IFERROR per questo scenario.
Questo sarà il set di dati per la dimostrazione.
Seguire questi passaggi per vedere come utilizzare il metodo ACCOPPIAMENTO DI INDICI per le colonne non adiacenti (prodotto e quantità) in questo set di dati.
Passi:
- Per prima cosa, selezionare la cella G6 .
- Quindi scrivete la seguente formula.
=IFERROR(INDICE(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Nessun valore")
🔎 Ripartizione della formula
IFERROR(INDICE(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Nessun valore")
👉
MATCH(G5,B4:B7,0) trova la corrispondenza esatta del valore della cella G5 nell'intervallo B4:B7 .
👉
e MATCH(F6,B4:D4,0) trova la corrispondenza esatta di F6 è l'intervallo B4:D4 .
👉
Allora INDICE(B4:D7, MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)) prende il primo valore della funzione come numero di riga e il secondo valore della funzione come numero di colonna e restituisce il valore in quella posizione nell'intervallo B4:D7 .
👉
Infine, IFERROR(INDICE(B4:D7,MATCH(G5,B4:B7,0),MATCH(F6,B4:D4,0)), "Nessun valore") restituisce la stringa "No Value" se si verifica un errore durante l'esecuzione della formula, altrimenti restituisce il solito valore.
- Successivamente, premere Entrare sulla tastiera.
Di conseguenza, in Excel è possibile trovare la corrispondenza desiderata utilizzando la funzione INDEX-MATCH da colonne non adiacenti per criteri selezionati, anche multipli.
4. INDEX-MATCH da più tabelle
Per trovare le corrispondenze da più tabelle si può usare il metodo ACCOPPIAMENTO DEGLI INDICI Accanto a questa funzione, avremo bisogno di PICCOLO , ISNUMERO , FILO , COUNTIF , e IFERRORE anche le funzioni.
Nel foglio di esempio, abbiamo 2 negozi di Prodotti. Utilizzando questo foglio, vedremo come svolgere il compito.
Seguite questi passaggi per vedere come utilizzare la combinazione di queste funzioni insieme a INDEX-MATCH con più corrispondenze da questa serie di tabelle in Excel.
Passi:
- Per prima cosa, selezionare la cella C14 .
- Ora scrivete la seguente formula.
=IFERROR(INDICE($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))
🔎 Ripartizione della formula
IFERROR(INDICE($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))
👉
MATCH($B$6:$B$10, $C$12, 0) trova la corrispondenza esatta di C12 nell'intervallo B6:B10 .
👉
ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) controlla se il valore è un numero nella funzione.
👉
IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") ROW($B$6:$B$10)) controlla se la funzione precedente è un numero o meno. Se lo è, restituisce il valore di uscita di MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) che è la posizione in cui l'array di numeri di riga sono abbinati nel primo e nel secondo FILO altrimenti restituisce una stringa vuota.
👉
SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)) restituisce il valore RIGHE($A$1:A1) -Il valore più piccolo della matrice.
👉
Infine. INDICE($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)) restituisce il valore in quella posizione nell'intervallo C6:C10 .
👉
INDICE($F$6:$F$10, SMALL(IF(ISNUMBER(MATCH($E$6:$E$10, $C$12, 0)), MATCH(ROW($E$6:$E$10), ROW($E$6:$E$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))) fa la stessa cosa, ma dalla seconda tabella, poiché gli intervalli sono chiaramente diversi in questa parte della formula.
👉
Infine, l'intera funzione prende l'intera funzione e restituisce l'elemento ACCOPPIAMENTO DEGLI INDICI combinazioni. L'impatto della IFERRORE Se si verificano errori durante l'esecuzione della formula, la funzione non restituisce alcun valore.
- Quindi premere Entrare .
- Successivamente, selezionare nuovamente la cella e fare clic e trascinare l'icona della maniglia di riempimento verso il basso per più celle per trovare il resto dei valori dalle tabelle. È possibile trascinare altre celle, Excel interromperà i valori quando non ce ne saranno più.
Ecco come utilizzare la funzione INDEX-MATCH utilizzando i criteri di più tabelle in Excel.
Per saperne di più: Criteri multipli in Excel con le funzioni INDEX, MATCH e COUNTIF
5. MATCH INDEX da più fogli di lavoro
Possiamo utilizzare la formula INDEX-MATCH su fogli diversi. Qui abbiamo queste due tabelle su due fogli di lavoro diversi.
Scheda Shop 1 per l'officina 1 e scheda Shop 2 per l'officina 2.
Per produrre il risultato è sufficiente fornire il nome del foglio prima del riferimento alla cella. Seguite questi passaggi per maggiori dettagli.
Passi:
- Per prima cosa, selezionare la cella C14 dal foglio "Negozio 1".
- Quindi scrivere la seguente formula.
=IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1))), INDEX('Shop 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Shop 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Shop 2'!$B$6:$B$10), ROW('Shop 2'!$B$6:$B$10)), ""), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))
🔎 Ripartizione della formula
IFERROR(INDEX($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), “”), ROWS($A$1:A1))), INDEX(‘Shop 2’!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH(‘Shop 2’!$B$6:$B$10, $C$12, 0)), MATCH(ROW(‘Shop 2’!$B$6:$B$10), ROW(‘Shop 2’!$B$6:$B$10)), “”), ROWS($A$1:A1)-COUNTIF($B$6:$B$10, $C$12))))
👉
MATCH($B$6:$B$10, $C$12, 0) cerca la corrispondenza esatta del valore della cella C12 nell'intervallo B6:B10 .
👉
ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)) controlla se l'output della funzione precedente è un numero o meno, il che determina se c'è stata una corrispondenza o meno. Questo serve solo a convertire il valore numerico in booleano.
👉
Allora IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), "") controlla il valore booleano e restituisce MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) se il valore è vero, altrimenti restituisce una stringa vuota. Il metodo MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)) è la serie di numeri in cui RIGA($B$6:$B$10) e RIGA($B$6:$B$10) Si tratta di un trucco pratico per limitare il numero totale di righe in una sezione selezionata.
👉
Dopo di che, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1) cerca il RIGHE($A$1:A1) -il valore più piccolo dall'uscita del programma SE porzione.
👉
Infine, INDICE($C$6:$C$10, SMALL(IF(ISNUMBER(MATCH($B$6:$B$10, $C$12, 0)), MATCH(ROW($B$6:$B$10), ROW($B$6:$B$10)), ""), ROWS($A$1:A1)) prende il risultato della funzione precedente come numero di riga e RIGHE($A$1:A1) come numero di colonna e restituisce il valore che si trova in questa posizione nell'intervallo C6:C10 .
👉
Allo stesso modo, INDEX('Negozio 2'!$C$6:$C$10, SMALL(IF(ISNUMBER(MATCH('Negozio 2'!$B$6:$B$10, $C$12, 0)), MATCH(ROW('Negozio 2'!$B$6:$B$10), ROW('Negozio 2'!$B$6:$B$10)), "") fa la stessa cosa ma dal secondo foglio. Poiché il nome del foglio è "Negozio 2", lo abbiamo aggiunto prima di selezionare gli intervalli/le celle. Non è necessario aggiungerli al foglio su cui si stanno eseguendo i calcoli. Quindi non lo abbiamo fatto per "Negozio 1" nella parte precedente della formula.
👉
Infine, abbiamo aggiunto l'intera funzione in un file IFERRORE Il motivo è quello di restituire un vuoto nel caso in cui si verifichino errori durante l'esecuzione della formula.
- Infine, premere Entrare .
- A questo punto, selezionare nuovamente la cella, quindi fare clic e trascinare l'icona della maniglia di riempimento per alcune celle verso il basso (più della quantità stimata della cella di output dovrebbe andare bene).
Di conseguenza, troveremo tutte le corrispondenze utilizzando l'INDEX-MATCH da più fogli di lavoro in Excel.
6. INDEX-MATCH per criteri multipli senza array
È possibile utilizzare INDEX-MATCH anche per corrispondenze multiple o criteri senza array. Ad esempio, prendiamo il seguente set di dati.
Ma prima abbiamo bisogno di una colonna ausiliaria per raggiungere questo obiettivo. Utilizzeremo la funzione CONCATENA Seguite questi passi per la guida completa.
Passi:
- Per prima cosa, selezionare la cella F5 e scrivere la seguente formula.
=CONCATENARE(C5,",",D5,",",E5)
- Quindi premere Entrare .
- Ora selezionate nuovamente la cella e fate clic e trascinate l'icona della maniglia di riempimento fino alla fine della colonna per replicare la formula per il resto delle celle.
- Successivamente, troveremo l'INDEX-MATCH per tutti i 100 del set di dati originale. A tal fine, selezionare una cella per memorizzare il valore ( H5 in questo caso).
- Inserire quindi la seguente formula.
=INDEX(B5:B19,MATCH("100,100,100",F5:F19,0))
🔎 Ripartizione della formula
👉 MATCH(“100,100,100”,F5:F19,0) cerca la corrispondenza esatta di 100,100,100 nell'intervallo F5:F19 .
👉 Allora INDEX(B5:B19,MATCH(“100,100,100”,F5:F19,0)) restituisce il valore nella posizione in cui il valore corrisponde.
- Infine, premere Entrare .
In questo modo, è possibile utilizzare INDEX-MATCH per criteri o corrispondenze multiple in Excel senza alcun array.
Come restituire più valori in verticale utilizzando la formula INDEX-MATCH in Excel
Se si desidera restituire più valori in verticale utilizzando INDEX-MATCH, si veda l'esempio seguente.
Seguite questi passaggi per vedere come ottenere questo risultato per il set di dati.
Passi:
- Per prima cosa, selezionare la cella F5 .
- In secondo luogo, scrivete la seguente formula.
=IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1)),ROW(1:1)),")
🔎 Ripartizione della formula
👉
RIGA($B$5:$B$14) restituisce un array contenente i numeri di riga dell'intervallo B5:B14 .
👉
RIGA($B$5:$B$14)-RIGA($B$5)+1 restituisce la differenza tra l'array e il numero di riga della cella B5 che in questo caso è solo un array da 1 a 10.
👉
IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1) controlla se il valore della cella E5 è uguale nell'intervallo B5:B14 e restituisce il numero dell'array in cui è vero dall'array precedente.
👉
SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1),ROW(1:1) restituisce il numero più piccolo della matrice.
👉
INDICE($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1)), ROW(1:1)) restituisce il valore in quella posizione nell'intervallo C5:C14 .
👉
Infine, IFERROR(INDEX($C$5:$C$14,SMALL(IF($E$5=$B$5:$B$14,ROW($B$5:$B$14)-ROW($B$5)+1)),ROW(1:1)),") si assicura che se un valore risulta in un errore nella formula, restituisca una stringa vuota.
- Terzo, premere Entrare .
- Infine, fare clic e trascinare l'icona della maniglia di riempimento verso il basso per alcune celle per ottenere tutti i valori.
In questo modo possiamo restituire più valori in verticale utilizzando la funzione INDEX-MATCH di Excel.
Per saperne di più: MATCH INDICE con più criteri in un foglio diverso (2 modi)
Conclusione
Per oggi è tutto. Abbiamo provato a mostrarvi un paio di modi per fare una MATCH INDEX con più corrispondenze. Speriamo che vi sia utile. Sentitevi liberi di commentare se qualcosa vi sembra difficile da capire. Siete invitati a segnalarci altri metodi per questo compito.
Per altre guide come questa, visitate Exceldemy.com .