Come fare un Vlookup sensibile alle maiuscole in Excel - esempi di formule

  • Condividi Questo
Michael Brown

L'esercitazione spiega come rendere il VLOOKUP di Excel sensibile alle maiuscole e alle minuscole, mostra alcune altre formule che distinguono le maiuscole dal resto del testo e sottolinea i punti di forza e i limiti di ciascuna funzione.

Immagino che tutti gli utenti di Excel sappiano quale funzione esegue una ricerca verticale in Excel. Esatto, è VLOOKUP. Tuttavia, pochi sanno che VLOOKUP di Excel è insensibile alle maiuscole e alle minuscole, cioè tratta le lettere minuscole e maiuscole come gli stessi caratteri.

Ecco un rapido esempio che dimostra l'incapacità di VLOOKUP di distinguere le maiuscole e le minuscole del testo. Supponiamo di avere "bill" nella cella A2 e "Bill" in A4. La formula seguente catturerà "bill" perché viene prima nell'array di ricerca e restituirà un valore corrispondente da B2.

=VLOOKUP("Bill", A2:B4, 2, FALSE)

Più avanti in questo articolo, vi mostrerò un modo per rendere VLOOKUP sensibile alle maiuscole e minuscole. Esploreremo anche alcune altre funzioni che possono eseguire una corrispondenza sensibile alle maiuscole in Excel.

    Formula VLOOKUP sensibile alle maiuscole

    Come già detto, una normale formula VLOOKUP non riconosce le lettere maiuscole e minuscole. Tuttavia, esiste un modo per rendere VLOOKUP di Excel sensibile alle maiuscole e minuscole, come dimostrato nell'esempio seguente.

    Supponiamo di avere ID articolo nella colonna A e si vuole estrarre il prezzo e il commento dell'articolo dalle colonne B e C. Il problema è che gli ID includono caratteri sia minuscoli che maiuscoli. Ad esempio, i valori in A4 (001Tvci3u) e A5 (001Tvci3U) differiscono solo per l'ultimo carattere, "u" e "U", rispettivamente.

    Quando si cerca "001Tvci3 U ", una formula VLOOKUP standard produce 90 dollari che sono associati a "001Tvci3 u " perché viene prima di "001Tvci3 U " nell'array di ricerca. Ma questo non è ciò che si vuole, giusto?

    =VLOOKUP(F2, A2:C7, 2, FALSE)

    Per eseguire una ricerca sensibile alle maiuscole in Excel, si combinano le funzioni VLOOKUP, SCELTA ed ESATTO:

    VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( valore_di_ricerca , array_di_ricerca ), matrice_di_ritorno ), 2, 0)

    Questa formula generica funziona perfettamente in tutte le situazioni. È possibile anche cercare da destra a sinistra Una normale formula VLOOKUP non è in grado di farlo. Complimenti a Pouriya per aver proposto questa soluzione semplice ed elegante!

    Nel nostro caso, le formule reali sono le seguenti.

    Per estrarre il prezzo in F3:

    =VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)

    Per recuperare il commento F4:

    =VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)

    Nota: in tutte le versioni di Excel diverse da Excel 365, questa formula funziona solo come formula di matrice, quindi ricordatevi di premere Ctrl + Maiusc + Invio per completarla correttamente. In Excel 365, grazie al supporto per le matrici dinamiche, funziona anche come formula normale.

    Come funziona questa formula:

    La parte centrale che funziona è la formula SCEGLI con EXACT annidato:

    SCEGLIERE({1,2}, EXACT(F2, A2:A7), C2:C7)

    In questo caso, la funzione EXACT confronta il valore in F2 con ogni valore in A2:A7 e restituisce VERO se sono esattamente uguali, comprese le lettere maiuscole, FALSO altrimenti:

    {FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}

    Per il indice_num di CHOOSE, utilizziamo la costante di matrice {1,2}. Come risultato, la funzione combina i valori logici della matrice precedente e i valori di C2:C7 in una matrice bidimensionale come questa:

    {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}

    La funzione VLOOKUP prende le mosse da lì e cerca il valore di ricerca (che è VERO) nella prima colonna dell'array bidimensionale (rappresentato dai valori logici) e restituisce una corrispondenza dalla seconda colonna, che è il prezzo che stiamo cercando:

    VLOOKUP(TRUE, {FALSO,155;FALSO,186;FALSO,90;VERO,54;FALSO,159;FALSO,28}, 2, 0)

    Formula XLOOKUP sensibile alle maiuscole

    Gli abbonati a Microsoft 365 possono eseguire una ricerca sensibile alle maiuscole e minuscole in Excel con una formula ancora più semplice. Come potete intuire, sto parlando di un successore più potente di VLOOKUP: la funzione XLOOKUP.

    Poiché XLOOKUP opera separatamente sugli array di lookup e di ritorno, non è necessario il trucco dell'array bidimensionale dell'esempio precedente. È sufficiente utilizzare EXACT per il parametro array_di_ricerca argomento:

    XLOOKUP(TRUE, EXACT( valore_di_ricerca , array_di_ricerca ), matrice_di_ritorno , "Non trovato")

    L'ultimo argomento ("Non trovato") è opzionale e definisce solo il valore da restituire se non viene trovata alcuna corrispondenza. Se lo si omette, verrà restituito un errore standard #N/A nel caso in cui la formula non trovi nulla.

    Per la nostra tabella di esempio, queste sono le formule XLOOKUP sensibili alle maiuscole e minuscole da utilizzare.

    Per ottenere il prezzo in F3:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Non trovato")

    Per estrarre il commento F4:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Non trovato")

    Come funziona questa formula:

    Come nell'esempio precedente, EXACT restituisce una matrice di valori TRUE e FALSE, dove TRUE rappresenta le corrispondenze sensibili alle maiuscole e alle minuscole. XLOOKUP cerca nella matrice di cui sopra il valore TRUE e restituisce una corrispondenza tra i valori matrice_di_ritorno Se nella colonna di ricerca sono presenti due o più valori esattamente uguali (comprese le lettere maiuscole), la formula restituirà la prima corrispondenza trovata.

    Limitazione di XLOOKUP : disponibile solo in Excel 365 e Excel 2021.

    SUMPRODOTTO - ricerca sensibile alle maiuscole e minuscole per restituire i numeri corrispondenti

    Come si capisce dall'intestazione, SUMPRODUCT è un'altra funzione di Excel in grado di eseguire una ricerca sensibile alle maiuscole e alle minuscole, ma può restituire valori numerici Se questo non è il vostro caso, passate all'esempio INDEX MATCH che fornisce una soluzione per tutti i tipi di dati.

    Come probabilmente sapete, il SUMPRODOTTO di Excel moltiplica i componenti delle matrici specificate e restituisce la somma dei prodotti. Poiché vogliamo una ricerca sensibile alle maiuscole e alle minuscole, utilizziamo la funzione ESATTO per ottenere la prima matrice:

    =SUMPRODOTTO[(ESATTO(A2:A7,F2) * (B2:B7)])

    Purtroppo, la funzione SUMPRODUCT non può restituire corrispondenze di testo poiché i valori di testo non possono essere moltiplicati. In questo caso, si otterrà un errore #VALORE! come nella cella F4 della schermata seguente:

    Come funziona questa formula:

    Come nell'esempio VLOOKUP, la funzione EXACT confronta il valore in F2 con tutti i valori in A2:A7 e restituisce VERO per le corrispondenze sensibili alle maiuscole, FALSO altrimenti:

    SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))

    Nella maggior parte delle formule, Excel valuta VERO a 1 e FALSO a 0. Pertanto, quando SUMPRODUCT moltiplica gli elementi delle due matrici nelle stesse posizioni, tutte le mancate corrispondenze (FALSE) diventano zeri:

    SUMPRODUCT({0;0;0;54;0;0})

    Come risultato, la formula restituisce un numero dalla colonna B che corrisponde alla corrispondenza esatta tra maiuscole e minuscole della colonna A.

    Limitazione del SUMPRODOTTO : può restituire solo valori numerici.

    INDEX MATCH - ricerca sensibile alle maiuscole per tutti i tipi di dati

    Finalmente siamo vicini a ottenere una formula di ricerca senza limitazioni e sensibile alle maiuscole e minuscole che funziona in tutte le versioni di Excel e su tutti i set di dati.

    Questo esempio viene per ultimo non solo perché il meglio viene lasciato per ultimo, ma anche perché le conoscenze acquisite negli esempi precedenti possono aiutare a comprendere meglio la formula MATCH INDEX sensibile alle maiuscole e alle minuscole.

    La combinazione delle funzioni INDEX e MATCH viene spesso utilizzata in Excel come alternativa più flessibile e versatile a VLOOKUP. Il seguente articolo spiega bene (si spera :) come queste due funzioni lavorano insieme - Utilizzo di INDEX MATCH invece di VLOOKUP.

    In questa sede mi limiterò a ricordarvi i punti chiave:

    • La funzione MATCH cerca il valore di ricerca nell'array di ricerca specificato e ne restituisce la posizione relativa.
    • La posizione relativa del valore di ricerca va direttamente al parametro numero_riga della funzione INDEX, che gli chiede di restituire un valore da quella riga.

    Affinché la formula riconosca i casi di testo, è sufficiente aggiungere un'altra funzione alla classica combinazione INDEX MATCH. Ovviamente, è necessaria di nuovo la funzione EXACT:

    INDICE( matrice_di_ritorno , MATCH(TRUE, EXACT( valore_di_ricerca , array_di_ricerca ), 0))

    La formula reale in F3 è:

    =INDICE(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    In F4 utilizziamo questo:

    =INDICE(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    Ricordate che funziona solo come formula di matrice in tutte le versioni diverse da Excel 365, quindi assicuratevi di inserirla premendo insieme i tasti Ctrl + Maiusc + Invio. Se l'operazione è stata eseguita correttamente, la formula verrà racchiusa tra parentesi graffe come mostrato nella schermata seguente:

    Come funziona questa formula:

    Come in tutti gli esempi precedenti, EXACT restituisce TRUE per ogni valore in A2:A7 che corrisponde esattamente al valore in F2. Dato che usiamo TRUE per il parametro valore_di_ricerca di MATCH, restituisce una posizione relativa della corrispondenza esatta tra maiuscole e minuscole, che è esattamente ciò di cui ha bisogno INDEX per restituire una corrispondenza da B2:B7.

    Formula di ricerca avanzata sensibile alle maiuscole e minuscole

    La formula INDEX MATCH di cui sopra sembra perfetta, ma in realtà non lo è. Vi spiego perché.

    Supponiamo che una cella della colonna di ritorno corrispondente al valore di ricerca sia vuota. Cosa restituirà la formula? Niente. E ora vediamo cosa restituisce effettivamente:

    =INDICE(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))

    Forse non è importante quando si ha a che fare solo con valori di testo, ma se il foglio di lavoro contiene numeri e alcuni di essi sono veri e propri zeri, questo è un problema.

    In realtà, tutte le altre formule di ricerca discusse in precedenza si comportano allo stesso modo. Ma ora volete una formula impeccabile, non è vero?

    Per rendere la formula INDEX MATCH sensibile alle maiuscole e minuscole assolutamente perfetta, la si avvolge nella funzione IF che controlla se una cella di ritorno è vuota e in questo caso non restituisce nulla:

    =IF(INDIRETTO("C"&(1+MATCH(VERO,ESATTO(A2:A7, F2), 0)))", INDICE(C2:C7, MATCH(VERO, ESATTO(A2:A7, F2), 0)), "")

    Nella formula precedente:

    • "C" è la colonna di ritorno.
    • "1" è il numero che trasforma un posizione relativa della cella restituita dalla funzione MATCH in un file indirizzo reale della cella .

    Ad esempio, l'array di lookup nella nostra funzione MATCH è A2:A7, il che significa che la posizione relativa della cella A2 è "1", perché è la prima cella dell'array. In realtà, però, l'array di lookup inizia alla riga 2. Per compensare la differenza, aggiungiamo 1, in modo che la funzione INDIRECT restituisca un valore dalla cella giusta.

    Le schermate seguenti mostrano la formula INDEX MATCH migliorata e sensibile alle maiuscole in azione.

    Se la cella di ritorno è vuota, la formula non produce nulla (una stringa vuota):

    Se la cella di ritorno contiene uno zero, la formula restituisce 0:

    Se si desidera visualizzare un messaggio quando una cella di ritorno è vuota, sostituire una stringa vuota ("") nell'ultimo argomento di IF con del testo:

    =IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "Non c'è nulla da restituire, mi dispiace").

    Eseguire VLOOKUP sensibili alle maiuscole e minuscole in modo semplice

    Gli utenti della nostra Ultimate Suite per Excel hanno a disposizione uno strumento speciale che rende la ricerca nelle tabelle grandi e complesse più facile e senza stress. La cosa migliore è che Unisci due tabelle ha un'opzione sensibile alle maiuscole e minuscole e l'esempio seguente lo mostra in azione.

    Si supponga di voler estrarre Qty. dal file Ricerca alla tabella Principale in base agli ID univoci degli articoli:

    Eseguire la procedura guidata Unisci tabelle ed eseguire i seguenti passaggi:

    1. Selezionare la tabella principale in cui inserire i nuovi dati.
    2. Selezionare la tabella di ricerca in cui cercare i nuovi dati.
    3. Scegliete una o più colonne chiave (nel nostro caso l'ID dell'articolo) e assicuratevi di controllare il campo Corrispondenza sensibile alle maiuscole e alle minuscole scatola.

  • La procedura guidata vi guiderà attraverso le tre fasi rimanenti, in cui dovrete specificare quali colonne aggiornare, quali colonne aggiungere e scegliere alcune opzioni aggiuntive, se necessario.
  • Un attimo dopo, otterrete il risultato desiderato :)

    Ecco come cercare in Excel tenendo conto del caso del testo. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Eserciziario da scaricare

    Esempi di VLOOKUP sensibili alle maiuscole (file .xlsx)

    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.