Функция LOOKUP на Excel с примери за формула

  • Споделя Това
Michael Brown

В урока се обясняват векторните и масивните форми на функцията LOOKUP на Excel и се демонстрират типични и нетривиални употреби на LOOKUP в Excel с примери за формули.

Един от най-честите въпроси, които всеки потребител на Excel задава от време на време, е следният: " Как да потърся стойност в един лист и да изтегля съответстваща стойност в друг лист? ". Разбира се, може да има много варианти на основния сценарий: може да търсите най-близкото съвпадение, а не точното съвпадение, може да искате да търсите вертикално в колона или хоризонтално в ред, да оценявате един или няколко критерия и т.н. Същността обаче е една и съща - трябва да знаете как да търсите в Excel.

Microsoft Excel предлага няколко различни начина за извършване на търсене. Като начало нека да се запознаем с една функция, която е предназначена за справяне с най-простите случаи на вертикално и хоризонтално търсене. Както лесно можете да се досетите, става дума за функцията LOOKUP.

    Функция LOOKUP на Excel - синтаксис и приложения

    На най-основно ниво функцията LOOKUP в Excel търси стойност в една колона или ред и връща съответстваща стойност от същата позиция в друга колона или ред.

    В Excel има две форми на LOOKUP: Вектор и Масив Всеки формуляр е обяснен поотделно по-долу.

    Функция LOOKUP на Excel - векторна форма

    В този контекст вектор Следователно използвате векторната форма на LOOKUP, за да търсите в един ред или една колона от данни за определена стойност и да изтеглите стойност от същата позиция в друг ред или колона.

    Синтаксисът на функцията за търсене на вектори е следният:

    LOOKUP(lookup_value, lookup_vector, [result_vector])

    Къде:

    • Lookup_value (задължително) - стойност за търсене. Тя може да бъде число, текст, логическа стойност TRUE или FALSE или препратка към клетка, съдържаща стойността за търсене.
    • Lookup_vector (задължително) - обхват от един ред или една колона, в който ще се търси. Той трябва да бъде сортиран в възходящ ред .
    • Result_vector (незадължително) - обхват от един ред или една колона, от който искате да върнете резултата - стойност на същата позиция като стойността на търсенето. Result_vector трябва да бъде същия размер като lookup_range . Ако е пропуснат, резултатът се връща от lookup_vector .

    Следващите примери демонстрират две прости формули за търсене в действие.

    Формула за вертикално търсене - търсене в диапазон от една колона

    Да речем, че имате списък с продавачи в колона D (D2:D5) и продуктите, които са продали, в колона E (E2:E5). Създавате табло за управление, в което потребителите ще въвеждат името на продавача в B2 и ви е необходима формула, която да извлича съответния продукт в B3. Задачата може лесно да се изпълни с тази формула:

    =LOOKUP(B2,D2:D5,E2:E5)

    За да разберете по-добре аргументите, погледнете тази снимка:

    Формула за хоризонтално търсене - търсене в диапазон от един ред

    Ако изходните ви данни са с хоризонтално оформление, т.е. записите са разположени в редове, а не в колони, въведете диапазон от един ред в lookup_vector и result_vector аргументи, като този:

    =LOOKUP(B2,E1:H1,E2:H2)

    Във втората част на това ръководство ще намерите още няколко примера за Excel Lookup, които решават по-сложни задачи. Междувременно, моля, запомнете следните прости факти, които ще ви помогнат да заобиколите възможните капани и да предотвратите често срещани грешки.

    5 неща, които трябва да знаете за векторната форма на Excel LOOKUP

    1. Стойности в lookup_vector трябва да бъдат подредени в възходящ ред т.е. от най-малкия до най-големия или от А до Я, в противен случай формулата за търсене в Excel може да върне грешка или неправилен резултат. Ако трябва да направите търсене по несортирани данни , след което използвайте INDEX MATCH или OFFSET MATCH.
    2. Lookup_vector и result_vector трябва да бъде едноредов или една колона диапазон със същия размер.
    3. Функцията LOOKUP в Excel е без значение на големи и малки букви , той не прави разлика между главни и малки букви в текста.
    4. Excel LOOKUP работи на базата на приблизително съвпадение По-точно, формулата за търсене първо търси точно съвпадение. Ако не може да намери точно стойността за търсене, тя търси следващата най-малка стойност , т.е. най-голямата стойност в lookup_vector която е по-малка или равна на lookup_value .

      Например, ако стойността за търсене е "5", формулата ще търси първо нея. Ако не бъде намерена "5", ще се търси "4". Ако не бъде намерена "4", ще се търси "3" и т.н.

    5. Ако lookup_value е по-малък от най-малката стойност в lookup_vector , Excel LOOKUP връща грешка #N/A.

    Функция LOOKUP на Excel - форма на масив

    Масивната форма на функцията LOOKUP търси зададената стойност в първата колона или ред на масива и извлича стойност от същата позиция в последната колона или ред на масива.

    Масивът Lookup има 2 аргумента, като и двата са задължителни:

    LOOKUP(lookup_value, масив)

    Къде:

    • Lookup_value - стойност, която да се търси в масив.
    • Масив - диапазон от клетки, в които искате да търсите стойността за търсене. Стойностите в първата колона или ред на масива (в зависимост от това дали правите V-търсене или H-търсене) трябва да бъдат подредени във възходящ ред. Големите и малките букви се считат за еквивалентни.

    Например, ако имената на продавачите се намират в първата колона на масива (колона A), а датите на поръчките - в последната колона на масива (колона C), можете да използвате следната формула за търсене на името и извличане на съответстващата дата:

    =LOOKUP(B2,D2:F5)

    Забележка. Масивната форма на функцията LOOKUP на Excel не трябва да се бърка с формулите за масиви на Excel. Въпреки че работи с масиви, LOOKUP все още е обикновена формула, която се завършва по обичайния начин чрез натискане на клавиша Enter.

    4 неща, които трябва да знаете за формата на масива на Excel LOOKUP

    1. Ако масив има повече редове, отколкото колони или еднакъв брой колони и редове, формулата за търсене търси в първата колона (хоризонтално търсене).
    2. Ако масив има повече колони, отколкото редове , Excel LOOKUP търси в първия ред (вертикално търсене).
    3. Ако дадена формула не може да намери стойността за търсене, тя използва най-голяма стойност в масива, която е по-малка или равна на lookup_value .
    4. Ако стойността за търсене е по-малка от най-малката стойност в първата колона или ред на масива (в зависимост от размерите на масива), формулата Lookup връща грешка #N/A.

    Важна забележка! Функционалността на формата на масива LOOKUP на Excel е ограничена и не препоръчваме да я използвате. Вместо това можете да използвате функцията VLOOKUP или HLOOKUP, които са подобрени версии за извършване на вертикално и хоризонтално търсене, съответно.

    Как да използвате функцията LOOKUP в Excel - примери за формули

    Въпреки че съществуват по-мощни функции за търсене и съпоставяне в Excel (което е предмет на следващия ни урок), LOOKUP е полезен в много ситуации, а следващите примери демонстрират няколко нетривиални употреби. Моля, обърнете внимание, че всички формули по-долу използват векторната форма на Excel LOOKUP.

    Търсене на стойност в последната незапълнена клетка в колона

    Ако имате колона с динамично попълвани данни, може да искате да изберете последния добавен запис, т.е. да получите последната непразна клетка в колоната. За тази цел използвайте тази обща формула:

    LOOKUP(2, 1/( колона ""), колона )

    В горната формула всички аргументи, с изключение на препратката към колоната, са константи. Така че, за да извлечете последната стойност в определена колона, трябва просто да въведете съответната препратка към колоната. Например, за да извлечете стойността на последната непразна клетка в колона А, използвайте тази формула:

    =LOOKUP(2, 1/(A:A""), A:A)

    За да получите последната стойност от други колони, променете препратките към колоните, както е показано на снимката по-долу - първата препратка е колоната, която трябва да се провери за празни/непразни клетки, а втората препратка е колоната, от която да се върне стойността:

    Как работи тази формула

    В lookup_value предоставяте 2 или друго число, по-голямо от 1 (след малко ще разберете защо).

    В lookup_vector аргумент, поставяте този израз: 1/(A:A"")

    • Първо извършвате логическата операция A:A"", която сравнява всяка клетка в колона A с празен низ и връща TRUE за празните клетки и FALSE за непразните клетки. В горния пример формулата в F2 връща този масив: {TRUE;TRUE;TRUE;TRUE;TRUE;FALSE...}
    • След това разделяте числото 1 на всеки елемент от горния масив. Тъй като TRUE е равно на 1, а FALSE - на 0, получавате нов масив, състоящ се от 1 и грешки #DIV/0! (резултатът от разделянето на 0), и този масив се използва като lookup_vector В този пример това е {1;1;1;1;1;#DIV/0!...}

    Как се получава така, че формулата връща последната непразна стойност в колона, при положение че lookup_value не съвпада с нито един елемент от lookup_vector ? Ключът към разбирането на логиката е, че Excel LOOKUP търси с приблизително съвпадение, т.е. когато не е намерена точната стойност за търсене, тя съвпада със следващата по големина стойност в lookup_vector която е по-малка от lookup_value В нашия случай, lookup_value е 2, а най-голямата стойност в lookup_vector е 1, така че LOOKUP съвпада с последната 1 в масива, която е последната непразна клетка!

    В result_vector препращате към колоната, от която искате да върнете стойност, а формулата Lookup ще извлече стойността на същата позиция като стойността на търсачката.

    Съвет. Ако искате да получите номер на реда задържа последната стойност, след което използвайте функцията ROW, за да я извлечете. Например: =LOOKUP(2,1/(A:A""),ROW(A:A))

    Търсене на стойност в последната непразна клетка в ред

    Ако изходните ви данни са разположени в редове, а не в колони, можете да получите стойността на последната непразна клетка, като използвате тази формула:

    LOOKUP(2, 1/( ред ""), ред )

    Всъщност тази формула не е нищо друго освен лека модификация на предишната формула, с единствената разлика, че използвате препратка към реда вместо към колоната.

    Например, за да получите стойността на последната непразна клетка в ред 1, използвайте тази формула:

    =LOOKUP(2, 1/(1:1""), 1:1)

    Резултатът е показан на следващата снимка на екрана:

    Получаване на стойност, свързана с последния запис в ред

    Само с малко творчество горната формула може лесно да се адаптира за решаване на други подобни задачи. Например тя може да се използва за получаване на стойност, свързана с последния случай на определена стойност в даден ред. Това може да звучи малко неясно, но следният пример ще направи нещата по-лесни за разбиране.

    Предполагаме, че имате обобщена таблица, в която колона А съдържа имената на продавачите, а следващите колони съдържат някакви данни за всеки месец. В този пример една клетка съдържа "да", ако даден продавач е сключил поне една сделка през даден месец. Нашата цел е да получим месеца, свързан с последния запис "да" в реда.

    Задачата може да се реши, като се използва следната LOOKUP формула:

    =LOOKUP(2, 1/(B2:H2="да"), $B$1:$H$1)

    Логиката на формулата е в общи линии същата като описаната в първия пример. Разликата е, че използвате оператора "равно на" ("=") вместо "не е равно на" ("") и оперирате с редове вместо с колони.

    Следната снимка на екрана показва резултат:

    Търсене като алтернатива на вложените IFs

    Във всички формули за търсене, които обсъдихме досега, символът lookup_vector и result_vector Синтаксисът на функцията LOOKUP на Excel обаче позволява предоставянето на векторите под формата на константа на вертикален масив, което ви позволява да възпроизведете функционалността на вложените IF с по-компактна и лесна за четене формула.

    Да речем, че имате списък със съкращения в колона А и искате да ги замените с пълни имена, където "C" означава "Completed" (завършен), "D" - "Development" (разработка), а "T" - "Testing" (тестване). Задачата може да бъде изпълнена със следната вложена функция IF:

    =IF(A2="c", "Завършено", IF(A2="d", "Разработване", IF(A2="t", "Изпитване", "")))

    Или с помощта на тази формула за търсене:

    =LOOKUP(A2, {"c"; "d"; "t"}, {"Завършено"; "Разработване"; "Тестване"})

    Както е показано на скрийншота по-долу, двете формули дават идентични резултати:

    Забележка. За да работи правилно една формула за търсене в Excel, стойностите в lookup_array трябва да бъдат подредени от А до Я или от най-малкия до най-големия.

    Ако извличате стойности от таблица за търсене, можете да вградите функция Vlookup в lookup_value за извличане на съвпадение.

    Ако приемем, че стойността за търсене е в клетка E2, таблицата за търсене е A2:C7, а интересуващата ни колона ("Статус") е третата колона в таблицата за търсене, следната формула ще свърши работа:

    =LOOKUP(VLOOKUP(E2, $A$2:$C$7, 3, FALSE), {"c"; "d"; "t"}, {"Completed"; "Development"; "Testing"})

    Както е показано на скрийншота по-долу, формулата извлича статуса на проекта от таблицата за търсене и замества съкращението със съответната дума:

    Съвет. Ако използвате Excel 2016 като част от абонамент за Office 365, можете да използвате функцията SWITCH за подобни цели.

    Надявам се, че тези примери са хвърлили малко светлина върху работата на функцията LOOKUP. За да разберете по-добре формулите, можете да изтеглите тези примери за търсене в Excel. В следващия урок ще обсъдим няколко други начина за търсене в Excel и ще обясним коя формула за търсене е най-добре да се използва в дадена ситуация. Благодаря ви за четенето и се надявам да се видим в нашия блог следващата седмица!

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.