Cum se face Vlookup sensibil la majuscule și minuscule în Excel - exemple de formule

  • Imparte Asta
Michael Brown

Tutorialul explică modul în care Excel VLOOKUP este sensibil la majuscule și minuscule, demonstrează alte câteva formule care fac distincția între majusculele textului și subliniază punctele forte și limitările fiecărei funcții.

Cred că fiecare utilizator Excel știe ce funcție efectuează o căutare verticală în Excel. Corect, este VLOOKUP. Cu toate acestea, foarte puțini oameni sunt conștienți de faptul că VLOOKUP din Excel nu ține cont de majuscule și minuscule, ceea ce înseamnă că tratează literele minuscule și majuscule ca fiind aceleași caractere.

Iată un exemplu rapid care demonstrează incapacitatea lui VLOOKUP de a distinge majusculele textului. Să presupunem că aveți "bill" în celula A2 și "Bill" în A4. Formula de mai jos va prinde "bill", deoarece este prima în matricea de căutare și va returna o valoare corespunzătoare din B2.

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

Mai departe în acest articol, vă voi arăta o modalitate de a face ca VLOOKUP să țină cont de majuscule și minuscule. Vom explora, de asemenea, câteva alte funcții care pot face o potrivire sensibilă la majuscule în Excel.

    Formula VLOOKUP sensibilă la majuscule și minuscule

    După cum s-a menționat mai sus, o formulă VLOOKUP obișnuită nu recunoaște majusculele literelor. Cu toate acestea, există o modalitate de a face ca Excel VLOOKUP să țină cont de majuscule și minuscule, așa cum este demonstrat în exemplul de mai jos.

    Să presupunem că aveți ID-uri de articol în coloana A și doriți să extrageți prețul și comentariul articolului din coloanele B și C. Problema este că ID-urile includ atât caractere minuscule, cât și majuscule. De exemplu, valorile din A4 (001Tvci3u) și A5 (001Tvci3U) diferă doar prin ultimul caracter, "u" și, respectiv, "U".

    Când se caută "001Tvci3 U ", o formulă standard VLOOKUP produce 90$ care este asociată cu "001Tvci3". u ", deoarece vine înaintea lui "001Tvci3 U " în matricea de căutare. Dar nu asta este ceea ce doriți, nu-i așa?

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

    Pentru a efectua o căutare sensibilă la majuscule și minuscule în Excel, combinăm funcțiile VLOOKUP, CHOOSE și EXACT:

    VLOOKUP(TRUE, CHOOSE({1,2}, EXACT( lookup_value , lookup_array ), return_array ), 2, 0)

    Această formulă generică funcționează perfect în toate situațiile. Puteți chiar să căutați de la dreapta la stânga , ceva ce o formulă obișnuită VLOOKUP nu poate face. Felicitări lui Pouriya pentru că a sugerat această soluție simplă și elegantă!

    În cazul nostru, formulele reale sunt următoarele.

    Pentru a trage prețul în F3:

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

    Pentru a prelua comentariul F4:

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

    Notă. În toate versiunile Excel, altele decât Excel 365, aceasta funcționează doar ca o formulă de matrice, așa că nu uitați să apăsați Ctrl + Shift + Enter pentru a o completa corect. În Excel 365, datorită suportului pentru matrice dinamice, funcționează și ca o formulă obișnuită.

    Cum funcționează această formulă:

    Partea esențială care face trucul este formula CHOOSE cu EXACT imbricate:

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

    Aici, funcția EXACT compară valoarea din F2 cu fiecare valoare din A2:A7 și returnează TRUE dacă sunt exact la fel, inclusiv literele majuscule și FALSE în caz contrar:

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

    Pentru index_num din CHOOSE, folosim constanta de tablou {1,2}. Ca rezultat, funcția combină valorile logice din tabloul de mai sus și valorile din C2:C7 într-un tablou bidimensional, după cum urmează:

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

    Funcția VLOOKUP pornește de aici și caută valoarea de căutare (care este TRUE) în prima coloană a matricei bidimensionale (reprezentată de valorile logice) și returnează o potrivire din a doua coloană, care este prețul pe care îl căutăm:

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

    Formula XLOOKUP sensibilă la majuscule și minuscule

    Abonații Microsoft 365 pot face o căutare sensibilă la majuscule și minuscule în Excel cu o formulă și mai simplă. După cum puteți ghici, vorbesc despre un succesor mai puternic al VLOOKUP - funcția XLOOKUP.

    Deoarece XLOOKUP operează pe array-uri de căutare și de returnare separat, nu avem nevoie de trucul array-ului bidimensional din exemplul anterior. Pur și simplu, utilizați EXACT pentru lookup_array argument:

    XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array , "Nu a fost găsit")

    Ultimul argument ("Not found") este opțional. Acesta definește doar ce valoare să se returneze dacă nu se găsește nicio potrivire. Dacă îl omiteți, atunci se va returna o eroare standard #N/A în cazul în care formula nu găsește nimic.

    Pentru tabelul nostru de exemplu, acestea sunt formulele XLOOKUP care trebuie utilizate, care țin cont de majuscule și minuscule.

    Pentru a obține prețul în F3:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")

    Pentru a extrage comentariul F4:

    =XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")

    Cum funcționează această formulă:

    La fel ca în exemplul anterior, EXACT returnează o matrice de valori TRUE și FALSE, unde TRUE reprezintă potriviri sensibile la majuscule și minuscule. XLOOKUP caută în matricea de mai sus valoarea TRUE și returnează o potrivire din return_array Vă rugăm să rețineți că, în cazul în care există două sau mai multe valori identice în coloana de căutare (inclusiv literele majuscule), formula va returna prima potrivire găsită.

    Limitarea XLOOKUP : disponibil numai în Excel 365 și Excel 2021.

    SUMPRODUCT - căutare sensibilă la majuscule și minuscule pentru a returna numere corespunzătoare

    După cum înțelegeți din titlu, SUMPRODUCT este încă o funcție Excel care poate face o căutare sensibilă la majuscule și minuscule, dar poate returna valori numerice Dacă nu este cazul dumneavoastră, treceți la exemplul INDEX MATCH, care oferă o soluție pentru toate tipurile de date.

    După cum probabil știți, funcția SUMPRODUCT din Excel înmulțește componentele din array-urile specificate și returnează suma produselor. Deoarece dorim o căutare sensibilă la majuscule și minuscule, folosim funcția EXACT pentru a obține primul array:

    =SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7)))

    Din păcate, funcția SUMPRODUCT nu poate returna corespondențe de text, deoarece valorile text nu pot fi înmulțite. În acest caz, veți primi o eroare #VALUE! ca în celula F4 din captura de ecran de mai jos:

    Cum funcționează această formulă:

    La fel ca în exemplul VLOOKUP, funcția EXACT verifică valoarea din F2 în raport cu toate valorile din A2:A7 și returnează TRUE în cazul în care se face distincție între majuscule și minuscule, iar în caz contrar FALSE:

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

    În cele mai multe formule, Excel evaluează TRUE la 1 și FALSE la 0. Astfel, atunci când SUMPRODUCT înmulțește elementele celor două matrici în aceleași poziții, toate nepotrivirile (FALSE) devin zerouri:

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

    Ca rezultat, formula returnează un număr din coloana B care corespunde exact corespondenței în majuscule și minuscule din coloana A.

    Limitarea SUMPRODUCT : poate returna numai valori numerice.

    INDEX MATCH - căutare sensibilă la majuscule și minuscule pentru toate tipurile de date

    În cele din urmă, suntem aproape de a obține o formulă de căutare fără limitări, care să fie sensibilă la majuscule și minuscule și care să funcționeze în toate versiunile Excel și pe toate seturile de date.

    Acest exemplu este ultimul nu numai pentru că ce este mai bun este păstrat pentru final, ci și pentru că cunoștințele pe care le-ați dobândit în exemplele anterioare vă pot ajuta să înțelegeți mai bine formula MATCH INDEX care ține cont de majuscule și minuscule.

    Combinația dintre funcțiile INDEX și MATCH este adesea utilizată în Excel ca o alternativă mai flexibilă și mai versatilă la VLOOKUP. Următorul articol explică foarte bine (sperăm :) modul în care aceste două funcții lucrează împreună - Utilizarea funcției INDEX MATCH în locul funcției VLOOKUP.

    Aici, vă voi reaminti doar punctele cheie:

    • Funcția MATCH caută valoarea de căutare în matricea de căutări specificată și returnează poziția sa relativă.
    • Poziția relativă a valorii de căutare se duce direct la număr_ rând al funcției INDEX, dându-i instrucțiuni să returneze o valoare din rândul respectiv.

    Pentru ca formula să recunoască majusculele textului, trebuie doar să adăugați încă o funcție la combinația clasică INDEX MATCH. Evident, aveți nevoie din nou de funcția EXACT:

    INDEX( return_array , MATCH(TRUE, EXACT( lookup_value , lookup_array ), 0))

    Formula reală din F3 este:

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

    În F4, îl folosim pe acesta:

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

    Vă rugăm să rețineți că aceasta funcționează ca o formulă de matrice numai în toate versiunile, altele decât Excel 365, așa că asigurați-vă că o introduceți apăsând împreună tastele Ctrl + Shift + Enter. Dacă se face corect, formula va fi închisă între paranteze curbe, așa cum se arată în captura de ecran de mai jos:

    Cum funcționează această formulă:

    La fel ca în toate exemplele anterioare, EXACT returnează TRUE pentru fiecare valoare din A2:A7 care se potrivește exact cu valoarea din F2. Deoarece folosim TRUE pentru lookup_value de MATCH, acesta returnează o poziție relativă a corespondenței exacte în funcție de majuscule și minuscule, ceea ce este exact ceea ce INDEX are nevoie pentru a returna o corespondență din B2:B7.

    Formulă avansată de căutare sensibilă la majuscule și minuscule

    Formula INDEX MATCH menționată mai sus pare perfectă, nu-i așa? Dar, de fapt, nu este. Permiteți-mi să vă arăt de ce.

    Să presupunem că o celulă din coloana de retur corespunzătoare valorii de căutare este goală. Ce va returna formula? Nimic. Și acum, să vedem ce returnează de fapt:

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

    Ups, formula returnează un zero! Poate că nu este foarte important atunci când se utilizează numai valori text. Cu toate acestea, dacă foaia de calcul conține numere și unele dintre ele sunt zerouri reale, aceasta este o problemă.

    În realitate, toate celelalte formule de căutare discutate anterior se comportă în același mod. Dar acum doriți o formulă impecabilă, nu-i așa?

    Pentru a face ca formula INDEX MATCH, care ține cont de majuscule și minuscule, să fie absolut perfectă, o includeți în funcția IF care verifică dacă o celulă de returnare este goală și nu returnează nimic în acest caz:

    =IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))")", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), ""), "")

    În formula de mai sus:

    • "C" este coloana de retur.
    • "1" este numărul care transformă un poziția relativă a celulei returnate de funcția MATCH într-un fișier adresa reală a celulei .

    De exemplu, matricea de căutare din funcția noastră MATCH este A2:A7, ceea ce înseamnă că poziția relativă a celulei A2 este "1", deoarece aceasta este prima celulă din matrice. Dar, în realitate, matricea de căutare începe în rândul 2. Pentru a compensa diferența, adăugăm 1, astfel încât funcția INDIRECT să returneze o valoare din celula din dreapta.

    Capturile de ecran de mai jos demonstrează formula INDEX MATCH îmbunătățită care ține cont de majuscule și minuscule în acțiune.

    Dacă celula de returnare este goală, formula nu produce nimic (un șir gol):

    În cazul în care celula de returnare conține un zero, formula returnează 0:

    Dacă preferați să afișați un mesaj atunci când o celulă de retur este goală, înlocuiți șirul gol (""") din ultimul argument al lui IF cu un text:

    =IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))")", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "Nu este nimic de returnat, îmi pare rău."))

    Faceți VLOOKUP sensibil la majuscule și minuscule într-un mod simplu

    Utilizatorii suitei noastre Ultimate Suite pentru Excel au la dispoziție un instrument special care face ca căutarea în tabele mari și complexe să fie mai ușoară și fără stres. Cel mai bun lucru este că Merge Two Tables are o opțiune care ține cont de majuscule și minuscule, iar exemplul de mai jos o arată în acțiune.

    Să presupunem că vreți să extrageți Qty. de la Căutare tabel la Principal pe baza ID-urilor unice ale elementelor:

    Ceea ce trebuie să faceți este să rulați expertul Merge Tables și să efectuați acești pași:

    1. Selectați tabelul principal în care se introduc noile date.
    2. Selectați tabelul de căutare în care să căutați noile date.
    3. Alegeți una sau mai multe coloane cheie (ID-ul articolului în cazul nostru) și nu uitați să verificați caseta Potrivire sensibilă la majuscule și minuscule cutie.

  • Asistentul vă va ghida prin celelalte trei etape, în care veți specifica ce coloane să actualizați, ce coloane să adăugați și alegeți câteva opțiuni suplimentare, dacă este necesar.
  • O clipă mai târziu, veți obține rezultatul dorit :)

    Iată cum se caută în Excel ținând cont de cazul textului. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!

    Caietul de practică pentru descărcare

    Exemple de VLOOKUP sensibile la majuscule și minuscule (fișier .xlsx)

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.