INDICE MATCH MATCH in Excel per la ricerca bidimensionale

  • Condividi Questo
Michael Brown

Il tutorial mostra alcune formule diverse per eseguire ricerche bidimensionali in Excel. Date un'occhiata alle alternative e scegliete la vostra preferita :)

Quando si cerca qualcosa nei fogli di calcolo di Excel, la maggior parte delle volte si cerca in verticale nelle colonne o in orizzontale nelle righe. A volte, però, è necessario cercare su entrambe le righe e le colonne. In altre parole, si vuole trovare un valore all'intersezione di una certa riga e di una certa colonna. Questa operazione è detta ricerca della matrice (alias 2-dimensionale o Ricerca a 2 vie ), e questa esercitazione mostra come farlo in 4 modi diversi.

    Formula di Excel INDEX MATCH MATCH

    Il modo più diffuso per eseguire una ricerca bidirezionale in Excel è quello di utilizzare la funzione MATCH INDEX. Si tratta di una variante della classica formula MATCH INDEX a cui si aggiunge un'ulteriore funzione MATCH per ottenere sia i numeri di riga che di colonna:

    INDICE ( matrice_dati , MATCH ( vlookup_value , intervallo_colonna , 0), MATCH ( Valore hlookup , intervallo_di_fila , 0))

    A titolo di esempio, creiamo una formula per ricavare la popolazione di un certo animale in un determinato anno dalla tabella sottostante. Per cominciare, definiamo tutti gli argomenti:

    • Matrice_di_dati - B2:E4 (celle di dati, escluse le intestazioni di riga e colonna)
    • Vlookup_value - H1 (animale bersaglio)
    • Gamma_colonna_di_ricerca - A2:A4 (intestazioni di riga: nomi di animali) - A3:A4
    • Hlookup_value - H2 (anno obiettivo)
    • Gamma_di_fila_di_ricerca - B1:E1 (intestazioni di colonna: anni)

    Se si mettono insieme tutti gli argomenti, si ottiene la formula per la ricerca bidirezionale:

    =INDICE(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))

    Come funziona questa formula

    Anche se a prima vista può sembrare un po' complessa, la logica della formula è davvero semplice e facile da capire. La funzione INDEX recupera un valore dall'array di dati in base ai numeri di riga e di colonna e due funzioni MATCH forniscono questi numeri:

    INDICE(B2:E4, numero_riga, numero_colonna)

    In questo caso, si sfrutta la capacità di MATCH(lookup_value, lookup_array, [match_type]) di restituire un posizione relativa di valore_di_ricerca in array_di_ricerca .

    Quindi, per ottenere il numero di riga, cerchiamo l'animale di interesse (H1) attraverso le intestazioni delle righe (A2:A4):

    MATCH(H1, A2:A4, 0)

    Per ottenere il numero della colonna, si cerca l'anno di riferimento (H2) attraverso le intestazioni delle colonne (B1:E1):

    MATCH(H2, B1:E1, 0)

    In entrambi i casi, si cerca la corrispondenza esatta impostando il terzo parametro a 0.

    In questo esempio, la prima MATCH restituisce 2 perché il nostro valore vlookup (Orso polare) si trova in A3, che è la seconda cella di A2:A4. La seconda MATCH restituisce 3 perché il valore hlookup (2000) si trova in D1, che è la terza cella di B1:E1.

    Considerato quanto sopra, la formula si riduce a:

    INDICE(B2:E4, 2, 3)

    E restituire un valore all'intersezione della seconda riga e della terza colonna dell'array di dati B2:E4, ovvero un valore nella cella D3.

    Formula VLOOKUP e MATCH per la ricerca a due vie

    Un altro modo per eseguire una ricerca bidimensionale in Excel è utilizzare una combinazione delle funzioni VLOOKUP e MATCH:

    VLOOKUP( vlookup_value , tabella_array , MATCH( hlookup_value , intervallo_di_fila , 0), FALSO)

    Per la nostra tabella di esempio, la formula assume la forma seguente:

    =VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)

    Dove:

    • Tabella_array - A2:E4 (celle di dati comprese le intestazioni di riga)
    • Vlookup_value - H1 (animale bersaglio)
    • Hlookup_value - H2 (anno obiettivo)
    • Gamma_di_fila_di_ricerca - A1:E1 (intestazioni di colonna: anni)

    Come funziona questa formula

    Il cuore della formula è la funzione VLOOKUP configurata per la corrispondenza esatta (l'ultimo argomento è impostato su FALSE), che cerca il valore di ricerca (H1) nella prima colonna dell'array di tabelle (A2:E4) e restituisce un valore da un'altra colonna della stessa riga. Per determinare la colonna da cui restituire un valore, si utilizza la funzione MATCH, anch'essa configurata per la corrispondenza esatta (l'ultimo argomento è impostato su 0):

    MATCH(H2, A1:E1, 0)

    MATCH cerca il valore in H2 attraverso le intestazioni delle colonne (A1:E1) e restituisce la posizione relativa della cella trovata. Nel nostro caso, l'anno di destinazione (2010) è stato trovato in E1, che è il quinto nell'array di ricerca. Quindi, il numero 5 va alla cella col_index_num argomento di VLOOKUP:

    VLOOKUP(H1, A2:E4, 5, FALSE)

    VLOOKUP lo prende da lì, trova una corrispondenza esatta per il suo valore di ricerca in A2 e restituisce un valore dalla quinta colonna della stessa riga, ovvero la cella E2.

    Nota importante: affinché la formula funzioni correttamente, tabella_array (A2:E4) di VLOOKUP e array_di_ricerca di MATCH (A1:E1) deve avere lo stesso numero di colonne, altrimenti il numero passato da MATCH a col_index_num non sarà corretto (non corrisponderà alla posizione della colonna in tabella_array ).

    Funzione XLOOKUP per cercare nelle righe e nelle colonne

    Recentemente Microsoft ha introdotto in Excel un'altra funzione destinata a sostituire tutte le funzioni di ricerca esistenti, come VLOOKUP, HLOOKUP e INDEX MATCH. Tra le altre cose, XLOOKUP può esaminare l'intersezione di una riga e di una colonna specifiche:

    XLOOKUP( vlookup_value , vlookup_colonna_range , XLOOKUP( hlookup_value , hlookup_row_range , matrice_dati ))

    Per il nostro set di dati campione, la formula è la seguente:

    =XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))

    Nota: attualmente XLOOKUP è una funzione beta, disponibile solo per gli abbonati a Office 365 che fanno parte del programma Office Insiders.

    Come funziona questa formula

    La formula sfrutta la capacità di XLOOKUP di restituire un'intera riga o colonna. La funzione interna cerca l'anno di destinazione nella riga di intestazione e restituisce tutti i valori per quell'anno (in questo esempio, per l'anno 1980). Questi valori vanno nella colonna matrice_di_ritorno dell'argomento XLOOKUP esterno:

    XLOOKUP(H1, A2:A4, {22000;25000;700}))

    La funzione XLOOKUP esterna cerca l'animale di destinazione nelle intestazioni delle colonne e restituisce il valore nella stessa posizione della matrice return_array.

    Formula SUMPRODUCT per la ricerca a due vie

    La funzione SUMPRODUCT è come un coltello svizzero in Excel: può fare molte cose al di là del suo scopo, soprattutto quando si tratta di valutare più criteri.

    Per cercare due criteri, in righe e colonne, utilizzare questa formula generica:

    SUMPRODOTTO( vlookup_colonna_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), matrice_dati )

    Per eseguire una ricerca a due vie nel nostro set di dati, la formula è la seguente:

    =SUMPRODOTTO((A2:A4=H1) * (B1:E1=H2), B2:E4)

    Funziona anche la sintassi seguente:

    =SUMPRODOTTO((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Come funziona questa formula

    Nel cuore della formula, confrontiamo due valori di ricerca con le intestazioni di riga e colonna (l'animale di destinazione in H1 con tutti i nomi degli animali in A2:A4 e l'anno di destinazione in H2 con tutti gli anni in B1:E1):

    (A2:A4=H1) * (B1:E1=H2)

    Si ottengono così 2 array di valori TRUE e FALSE, dove i TRUE rappresentano le corrispondenze:

    {FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}

    L'operazione di moltiplicazione costringe i valori VERO e FALSO in 1 e 0 e produce un array bidimensionale di 4 colonne e 3 righe (le righe sono separate dal punto e virgola e ogni colonna di dati dalla virgola):

    {0,0,0,0;0,0,0,0;0,1,0,0}

    La funzione SUMPRODUCT moltiplica gli elementi della matrice precedente per gli elementi di B2:E4 nelle stesse posizioni:

    {0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}

    E poiché moltiplicando per zero si ottiene zero, sopravvive solo l'elemento corrispondente a 1 nel primo array:

    SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})

    Infine, SUMPRODUCT somma gli elementi della matrice risultante e restituisce un valore di 2000.

    Nota: se la tabella ha più righe e/o intestazioni di colonne con lo stesso nome, la matrice finale conterrà più numeri diversi da zero e tutti questi numeri verranno sommati. Il risultato sarà una somma di valori che soddisfano entrambi i criteri. È questo che rende la formula SUMPRODUCT diversa da INDEX MATCH MATCH e VLOOKUP, che restituiscono la prima corrispondenza trovata.

    Ricerca di matrici con intervalli denominati (intersezione esplicita)

    Un altro modo incredibilmente semplice per eseguire una ricerca di matrici in Excel è l'utilizzo di intervalli denominati. Ecco come fare:

    Parte 1: Denominazione delle colonne e delle righe

    Il modo più rapido per dare un nome a ogni riga e a ogni colonna della tabella è questo:

    1. Selezionare l'intera tabella (A1:E4 nel nostro caso).
    2. Sul Formule nella scheda Nomi definiti gruppo, fare clic su Creare da una selezione oppure premere la scorciatoia Ctrl + Maiusc + F3.
    3. Nel Creare nomi dalla selezione selezionare la finestra di dialogo In alto e Colonna di sinistra, e fare clic su OK.

    In questo modo si creano automaticamente i nomi in base alle intestazioni di riga e colonna. Tuttavia, ci sono un paio di avvertenze:

    • Se le intestazioni delle colonne e/o delle righe sono numeri o contengono caratteri specifici non ammessi nei nomi di Excel, i nomi di tali colonne e righe non verranno creati. Per visualizzare un elenco dei nomi creati, aprire la Gestione nomi ( Ctrl + F3 ). Se mancano alcuni nomi, definirli manualmente come spiegato in Come dare un nome a un intervallo in Excel.
    • Se alcune intestazioni di riga o di colonna contengono spazi, gli spazi saranno sostituiti, ad esempio, da trattini bassi, Orso_polare .

    Per la nostra tabella di esempio, Excel ha creato automaticamente solo i nomi delle righe. I nomi delle colonne devono essere creati manualmente perché le intestazioni delle colonne sono numeri. Per ovviare a questo inconveniente, è possibile anteporre ai numeri dei trattini bassi, come ad esempio _1990 .

    Come risultato, abbiamo i seguenti intervalli denominati:

    Parte 2: Creare una formula di ricerca della matrice

    Per estrarre un valore all'intersezione di una determinata riga e colonna, è sufficiente digitare una delle seguenti formule generiche in una cella vuota:

    = nome_riga nome_colonna

    O viceversa:

    = nome_colonna nome_riga

    Ad esempio, per ottenere la popolazione di balenottere azzurre nel 1990, la formula è semplice:

    =Blue_whale _1990

    Se qualcuno ha bisogno di istruzioni più dettagliate, i passaggi seguenti vi guideranno attraverso il processo:

    1. Nella cella in cui si desidera visualizzare il risultato, digitare il segno di uguaglianza (=).
    2. Iniziare a digitare il nome della riga di destinazione, ad esempio, Balena_blu Dopo aver digitato un paio di caratteri, Excel visualizzerà tutti i nomi esistenti che corrispondono a quelli immessi. Fare doppio clic sul nome desiderato per inserirlo nella formula:
    3. Dopo il nome della riga, digitare un spazio , che funziona come il operatore di intersezione in questo caso.
    4. Inserite il nome della colonna di destinazione ( _1990 nel nostro caso).
    5. Non appena vengono inseriti i nomi di riga e colonna, Excel evidenzia la riga e la colonna corrispondenti nella tabella e si preme Invio per completare la formula:

    La ricerca della matrice è terminata e la schermata seguente mostra il risultato:

    Ecco come cercare in righe e colonne in Excel. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Download disponibili

    Cartella di lavoro di esempio per la ricerca bidimensionale

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.