Cuprins
Tutorialul explică formele vectoriale și de matrice ale funcției Excel LOOKUP și demonstrează utilizările tipice și non-triviale ale funcției LOOKUP în Excel cu exemple de formule.
Una dintre cele mai frecvente întrebări pe care fiecare utilizator Excel și-o pune din când în când este aceasta: " Cum pot să caut o valoare pe o foaie și să extrag o valoare corespunzătoare pe o altă foaie? ". Desigur, pot exista multe variații ale scenariului de bază: este posibil să căutați cea mai apropiată potrivire mai degrabă decât potrivirea exactă, să doriți să căutați pe verticală într-o coloană sau pe orizontală într-un rând, să evaluați unul sau mai multe criterii etc. Cu toate acestea, esența este aceeași - trebuie să știți cum să căutați în Excel.
Microsoft Excel oferă o mână de moduri diferite de a efectua căutări. Pentru început, să învățăm o funcție care este concepută pentru a gestiona cele mai simple cazuri de căutare verticală și orizontală. După cum puteți ghici cu ușurință, mă refer la funcția LOOKUP.
Funcția Excel LOOKUP - sintaxă și utilizări
La cel mai simplu nivel, funcția LOOKUP din Excel caută o valoare într-o coloană sau într-un rând și returnează o valoare corespunzătoare din aceeași poziție dintr-o altă coloană sau rând.
Există două forme de LOOKUP în Excel: Vector și Array Fiecare formular este explicat individual mai jos.
Funcția Excel LOOKUP - formă vectorială
În acest context, un vector se referă la un interval de o coloană sau un rând. În consecință, utilizați forma vectorială a LOOKUP pentru a căuta un rând sau o coloană de date pentru o valoare specificată și pentru a extrage o valoare din aceeași poziție dintr-un alt rând sau coloană.
Sintaxa vectorului Lookup este următoarea:
LOOKUP(lookup_valoare, lookup_vector, [rezultat_vector])Unde:
- Valoare_de_consultare (obligatoriu) - o valoare care trebuie căutată. Poate fi un număr, un text, o valoare logică de TRUE sau FALSE sau o referință la o celulă care conține valoarea de căutare.
- Vector_de_consultare (obligatoriu) - intervalul de un rând sau o coloană care trebuie căutat. Acesta trebuie să fie sortat în ordine crescătoare .
- Vector_rezultat (opțional) - un interval de un rând sau o coloană din care doriți să returnați rezultatul - o valoare în aceeași poziție cu valoarea de căutare. Vector_rezultat trebuie să fie aceeași dimensiune ca gamă_de_cercetare Dacă este omis, rezultatul este returnat de la vector_de_consultare .
Următoarele exemple demonstrează două formule simple de căutare în acțiune.
Formula de căutare verticală - căutare în intervalul cu o coloană
Să spunem că aveți o listă de vânzători în coloana D (D2:D5) și produsele pe care le-au vândut în coloana E (E2:E5). Creați un tablou de bord în care utilizatorii vor introduce numele vânzătorului în B2 și aveți nevoie de o formulă care să extragă un produs corespunzător în B3. Sarcina poate fi îndeplinită cu ușurință cu această formulă:
=LOOKUP(B2,D2:D5,E2:E5)
Pentru a înțelege mai bine argumentele, vă rugăm să aruncați o privire la această captură de ecran:
Formula de căutare orizontală - căutare în intervalul de un rând
Dacă datele sursă au o dispunere orizontală, adică intrările se află pe rânduri mai degrabă decât pe coloane, furnizați un interval de un rând în rubrica vector_de_consultare și vectorul_rezultat argumente, cum ar fi:
=LOOKUP(B2,E1:H1,E2:H2)
În a doua parte a acestui tutorial, veți găsi alte câteva exemple de Excel Lookup care rezolvă sarcini mai complexe. Între timp, vă rugăm să rețineți următoarele fapte simple care vă vor ajuta să ocoliți posibilele capcane și să preveniți erorile comune.
5 lucruri pe care ar trebui să le știți despre forma vectorială a Excel LOOKUP
- Valori în vector_de_consultare ar trebui să fie sortate în ordine crescătoare , adică de la cel mai mic la cel mai mare sau de la A la Z, în caz contrar formula Excel Lookup poate returna o eroare sau un rezultat incorect. Dacă aveți nevoie să efectuați căutări pe date nesortate , apoi utilizați fie INDEX MATCH, fie OFFSET MATCH.
- Vector_de_consultare și vectorul_rezultat trebuie să fie un un rând sau o coloană interval de aceeași mărime.
- Funcția LOOKUP din Excel este nu ține cont de majuscule și minuscule , nu face diferența între majuscule și minuscule.
- Excel LOOKUP funcționează pe baza potrivire aproximativă Mai exact, o formulă de căutare caută mai întâi o potrivire exactă. Dacă nu găsește exact valoarea de căutare, caută valoarea următoarea cea mai mică valoare , adică cea mai mare valoare din vector_de_consultare care este mai mică sau egală cu lookup_value .
De exemplu, dacă valoarea de căutare este "5", formula o va căuta mai întâi. Dacă nu se găsește "5", va căuta "4". Dacă nu se găsește "4", va căuta "3" și așa mai departe.
- Dacă lookup_value este mai mică decât cea mai mică valoare din vector_de_consultare , Excel LOOKUP returnează eroarea #N/A.
Funcția Excel LOOKUP - formă de matrice
Forma de matrice a funcției LOOKUP caută valoarea specificată în prima coloană sau în primul rând al matricei și recuperează o valoare din aceeași poziție în ultima coloană sau în ultimul rând al matricei.
Matricea Lookup are două argumente, ambele obligatorii:
LOOKUP(lookup_value, array)Unde:
- Valoare_de_consultare - o valoare care trebuie căutată într-o matrice.
- Array - un interval de celule în care doriți să căutați valoarea de căutare. Valorile din prima coloană sau din primul rând al matricei (în funcție de faptul că faceți V-lookup sau H-lookup) trebuie să fie sortate în ordine crescătoare. Caracterele majuscule și minuscule sunt considerate echivalente.
De exemplu, dacă numele vânzătorului se află în prima coloană a tabloului (coloana A) și datele comenzilor în ultima coloană a tabloului (coloana C), puteți utiliza următoarea formulă pentru a căuta numele și a extrage data corespunzătoare:
=LOOKUP(B2,D2:F5)
Notă. Forma de matrice a funcției Excel LOOKUP nu trebuie confundată cu formulele de matrice din Excel. Deși operează cu matrice, LOOKUP este totuși o formulă obișnuită, care se completează în mod obișnuit prin apăsarea tastei Enter.
4 lucruri pe care trebuie să le știți despre forma de matrice a Excel LOOKUP
- Dacă array are mai multe rânduri decât coloane sau același număr de coloane și rânduri, o formulă Lookup caută în prima coloană (căutare orizontală).
- Dacă array are mai multe coloane decât rânduri , Excel LOOKUP caută în primul rând (căutare verticală).
- Dacă o formulă nu poate găsi valoarea de căutare, utilizează cea mai mare valoare din matrice care este mai mică sau egală cu lookup_value .
- În cazul în care valoarea de căutare este mai mică decât cea mai mică valoare din prima coloană sau din primul rând al tabloului (în funcție de dimensiunile tabloului), o formulă Lookup returnează eroarea #N/A.
Notă importantă! Funcționalitatea formularului de matrice LOOKUP din Excel este limitată și nu vă recomandăm să îl utilizați. În schimb, puteți utiliza funcția VLOOKUP sau HLOOKUP, care sunt versiuni îmbunătățite pentru a efectua căutări verticale și, respectiv, orizontale.
Cum se utilizează funcția LOOKUP în Excel - exemple de formule
Deși există funcții mai puternice pentru a căuta și a potrivi în Excel (care este subiectul următorului nostru tutorial), LOOKUP este util în multe situații, iar exemplele următoare demonstrează câteva utilizări non-triviale. Vă rugăm să rețineți că toate formulele de mai jos utilizează forma vectorială a Excel LOOKUP.
Căutarea unei valori în ultima celulă necompletă dintr-o coloană
Dacă aveți o coloană cu date populate dinamic, este posibil să doriți să alegeți cea mai recentă intrare adăugată, adică să obțineți ultima celulă nevidă dintr-o coloană. Pentru aceasta, utilizați această formulă generică:
LOOKUP(2, 1/( coloana ""), coloana )În formula de mai sus, toate argumentele, cu excepția referinței coloanei, sunt constante. Astfel, pentru a extrage ultima valoare dintr-o anumită coloană, trebuie doar să furnizați referința coloanei corespunzătoare. De exemplu, pentru a extrage valoarea ultimei celule care nu este albă din coloana A, utilizați această formulă:
=LOOKUP(2, 1/(A:A""), A:A)
Pentru a obține ultima valoare din alte coloane, modificați referințele coloanelor, așa cum se arată în imaginea de mai jos - prima referință este coloana care trebuie verificată pentru celule goale/non-goale, iar a doua referință este coloana din care se returnează valoarea:
Cum funcționează această formulă
În lookup_value furnizați 2 sau orice alt număr mai mare decât 1 (într-un moment, veți înțelege de ce).
În vector_de_consultare argument, se pune această expresie: 1/(A:A"")
- În primul rând, efectuați operația logică A:A""" care compară fiecare celulă din coloana A cu un șir gol și returnează TRUE pentru celulele goale și FALSE pentru celulele care nu sunt goale. În exemplul de mai sus, formula din F2 returnează această matrice: {TRUE;TRUE;TRUE;TRUE;TRUE;FALSE...}
- Apoi, împărțiți numărul 1 la fiecare element al tabloului de mai sus. Cu TRUE egal cu 1 și FALSE egal cu 0, obțineți un nou tablou format din 1 și erori #DIV/0! (rezultatul împărțirii la 0), iar acest tablou este utilizat ca vector_de_consultare În acest exemplu, este {1;1;1;1;1;1;#DIV/0!...}.
Acum, cum se face că formula returnează ultima valoare nevidă dintr-o coloană, având în vedere că lookup_value nu se potrivește cu niciun element din vector_de_consultare Cheia pentru înțelegerea logicii este că Excel LOOKUP caută cu potrivire aproximativă, adică atunci când nu se găsește valoarea exactă a căutării, se potrivește cu următoarea cea mai mare valoare din vector_de_consultare care este mai mică decât lookup_value În cazul nostru, lookup_value este 2 și cea mai mare valoare din vector_de_consultare este 1, deci LOOKUP se potrivește cu ultimul 1 din matrice, care este ultima celulă nevidă!
În vectorul_rezultat faceți trimitere la coloana din care doriți să returnați o valoare, iar formula Lookup va prelua valoarea în aceeași poziție ca și valoarea de căutare.
Sfat: Dacă doriți să obțineți numărul rândului care reține ultima valoare, apoi folosește funcția ROW pentru a o prelua. De exemplu: =LOOKUP(2,1/(A:A""),ROW(A:A))
Căutați o valoare în ultima celulă necompletă de pe un rând
Dacă datele sursă sunt dispuse pe rânduri și nu pe coloane, puteți obține valoarea ultimei celule care nu este goală folosind această formulă:
LOOKUP(2, 1/( rând ""), rând )De fapt, această formulă nu este altceva decât o ușoară modificare a formulei anterioare, cu singura diferență că se utilizează referința de rând în loc de referința de coloană.
De exemplu, pentru a obține valoarea ultimei celule nevide din rândul 1, utilizați această formulă:
=LOOKUP(2, 1/(1:1""), 1:1)
Următoarea captură de ecran arată rezultatul:
Obține o valoare asociată cu ultima intrare dintr-un rând
Cu puțină creativitate, formula de mai sus poate fi ușor personalizată pentru a rezolva alte sarcini similare. De exemplu, poate fi utilizată pentru a obține o valoare asociată cu ultima instanță a unei anumite valori dintr-un rând. Poate părea puțin obscur, dar exemplul următor va face lucrurile mai ușor de înțeles.
Presupunând că aveți un tabel de sinteză în care coloana A conține numele vânzătorilor, iar coloanele următoare conțin date de un anumit tip pentru fiecare lună. În acest exemplu, o celulă conține "da" dacă un anumit vânzător a încheiat cel puțin o tranzacție într-o anumită lună. Obiectivul nostru este de a obține o lună asociată cu ultima intrare "da" dintr-un rând.
Sarcina poate fi rezolvată prin utilizarea următoarei formule LOOKUP:
=LOOKUP(2, 1/(B2:H2="yes"), $B$1:$H$1)
Logica formulei este practic aceeași cu cea descrisă în primul exemplu. Diferența constă în faptul că se utilizează operatorul "egal cu" ("=") în loc de "nu este egal cu" ("") și se operează pe rânduri în loc de coloane.
Următoarea captură de ecran demonstrează un rezultat:
Lookup ca alternativă la IF-uri imbricate
În toate formulele Lookup pe care le-am discutat până în prezent, se utilizează vector_de_consultare și vectorul_rezultat Cu toate acestea, sintaxa funcției Excel LOOKUP permite furnizarea vectorilor sub forma unei constante de matrice verticală, ceea ce vă permite să reproduceți funcționalitatea IF imbricate cu o formulă mai compactă și mai ușor de citit.
Să presupunem că aveți o listă de abrevieri în coloana A și doriți să le înlocuiți cu nume complete, unde "C" înseamnă "Completed" (finalizat), "D" înseamnă "Development" (dezvoltare), iar "T" înseamnă "Testing" (testare). Această sarcină poate fi îndeplinită cu următoarea funcție IF imbricata:
=IF(A2="c", "Completed", IF(A2="d", "Development", IF(A2="t", "Testing", ""))))
Sau, utilizând această formulă de căutare:
=LOOKUP(A2, {"c"; "d"; "t"}, {"Completat"; "Dezvoltare"; "Testare"})
După cum se arată în captura de ecran de mai jos, ambele formule dau rezultate identice:
Notă. Pentru ca o formulă Excel Lookup să funcționeze corect, valorile din lookup_array ar trebui să fie sortate de la A la Z sau de la cel mai mic la cel mai mare.
Dacă extrageți valori dintr-un tabel de căutare, atunci puteți încorpora o funcție Vlookup în lookup_value pentru a găsi o potrivire.
Presupunând că valoarea de căutare se află în celula E2, tabelul de căutare este A2:C7, iar coloana de interes ("Status") este a treia coloană din tabelul de căutare, următoarea formulă face treaba:
=LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c"; "d"; "t"}, {"Completed"; "Development"; "Testing"})
După cum se arată în captura de ecran de mai jos, formula recuperează starea proiectului din tabelul de căutare și înlocuiește o abreviere cu cuvântul corespunzător:
Sfat: Dacă utilizați Excel 2016 ca parte a unui abonament Office 365, puteți utiliza funcția SWITCH în scopuri similare.
Sper că aceste exemple au adus puțină lumină asupra modului în care funcționează funcția LOOKUP. Pentru a înțelege mai bine formulele, vă invităm să descărcați aceste exemple de Lookup din Excel. În următorul tutorial, vom discuta alte câteva moduri de a face lookup în Excel și vom explica ce formulă Lookup este mai bine să fie folosită în ce situație. Vă mulțumesc pentru lectură și sper să ne vedem pe blog săptămâna viitoare!