Съдържание
В урока са обяснени основите на функцията за търсене в Excel, показани са силните и слабите страни на всяка функция за търсене в Excel и са дадени редица примери, които да ви помогнат да решите коя формула за търсене е най-добре да се използва в конкретна ситуация.
Търсенето на конкретна стойност в набор от данни е една от най-често срещаните задачи в Excel. И все пак не съществува "универсална" формула за търсене, подходяща за всички ситуации. Причината е, че терминът "търсене" може да означава различни неща: можете да търсите вертикално в колона, хоризонтално в ред или в пресечната точка на ред и колона, да търсите по един или няколко критерия, да връщатепървото намерено съвпадение или няколко съвпадения, търсене с отчитане на големи и малки букви и т.н.
На тази страница ще намерите списък на най-важните функции за търсене в Excel с примери за формули и задълбочени уроци, свързани за справка.
Търсене в Excel - основи
Преди да навлезем в тайните тънкости на формулите за търсене в Excel, нека дефинираме основните термини, за да сме сигурни, че винаги сме на една и съща страница.
Преглед на - търсене на определена стойност в таблица с данни.
Стойност за търсене - стойност, която да се търси.
Върната стойност (съвпадаща стойност или съвпадение) - стойност на същата позиция като стойността за търсене, но в друга колона или ред (в зависимост от това дали се извършва вертикално или хоризонтално търсене).
Таблица за търсене . В информатиката таблицата за търсене е масив от данни, който обикновено се използва за съпоставяне на входни стойности с изходни стойности. По отношение на този урок таблицата за търсене на Excel не е нищо друго освен диапазон от клетки, в които търсите стойност за търсене.
Основна маса (главна таблица) - таблица, в която извличате съвпадащи стойности.
Таблицата за търсене и основната таблица могат да имат различна структура и размер, но винаги трябва да съдържат поне една общ уникален идентификатор , т.е. колона или ред, които съдържат идентични данни, в зависимост от това дали искате да извършите вертикално или хоризонтално търсене.
Следната екранна снимка показва примерна таблица за търсене, която ще бъде използвана в много от примерите по-долу.
Функции за търсене в Excel
По-долу е представен кратък преглед на най-популярните формули за извършване на търсене в Excel, техните основни предимства и недостатъци.
Функция LOOKUP
Функцията LOOKUP в Excel може да извършва най-простите видове вертикални и хоризонтални търсения.
Плюсове : Лесен за използване.
Против : Ограничена функционалност, не може да работи с несортирани данни (изисква сортиране на колоната/реда за търсене във възходящ ред).
За повече информация вижте Как да използваме функцията LOOKUP в Excel.
Функция VLOOKUP
Това е усъвършенствана версия на функцията LOOKUP, специално създадена за вертикално търсене в колони.
Плюсове : Сравнително лесен за използване, може да работи с точно и приблизително съвпадение.
Против : Не може да гледа вляво от себе си, спира да работи, когато колона се вмъкне в таблицата за търсене или се премахне от нея, стойността на търсенето не може да надвишава 255 символа, изисква голяма изчислителна мощ при големи масиви от данни.
За повече информация, моля, вижте Excel VLOOKUP урок за начинаещи.
Функция HLOOKUP
Това е хоризонтален аналог на VLOOKUP, който търси стойност в първия ред на таблицата за търсене и връща стойността на същата позиция от друг ред.
Плюсове : Лесен за използване, може да връща точни и приблизителни съвпадения.
Против : Може да се търси само в най-горния ред на таблицата за търсене, влияе се от вмъкването или изтриването на редове, стойността на търсенето трябва да е под 255 символа.
За повече информация вижте Как да използваме HLOOKUP в Excel.
VLOOKUP MATCH / HLOOKUP MATCH
Динамичната препратка към колона или ред, създадена от MATCH, прави тази формула за търсене в Excel неподатлива на промените, направени в набора от данни. С други думи, с помощта на MATCH функциите VLOOKUP и HLOOKUP могат да връщат правилни стойности, независимо колко колони/редове са били вмъкнати или изтрити от таблицата за търсене.
Формула за вертикално търсене
VLOOKUP( lookup_value , lookup_table , MATCH( return_column_name , column_headers , 0), FALSE)Формула за хоризонтално търсене
HLOOKUP( lookup_value , lookup_table , MATCH( return_row_name , row_headers , 0), FALSE)Плюсове : Подобрение на обикновените формули Hlookup и Vlookup, които са устойчиви на вмъкване или изтриване на данни.
Против : Не е много гъвкав, изисква специфична структура на данните (стойността за търсене, предоставена на функцията MATCH, трябва да е точно равна на името на връщаната колона), не може да работи със стойности за търсене, надвишаващи 255 символа.
За повече информация и примери за формули вижте:
- Excel Vlookup и съвпадение
- Excel Hlookup и Match
МАЧ НА ОФСЕТА
По-сложна, но по-мощна формула за търсене, без много ограничения на Vlookup и Hlookup.
Формула за V-търсене
OFFSET( lookup_table , MATCH( lookup_value , OFFSET( lookup_table , 0, n , ROWS( lookup_table ), 1) ,0) -1, m , 1, 1)Къде:
- n - е отместването на колоната за търсене, т.е. броят колони, които трябва да се преместят от началната точка до колоната за търсене.
- m - е отместването на колоната за връщане, т.е. броят колони, които трябва да се преместят от началната точка до колоната за връщане.
Формула за H-търсене
OFFSET( lookup_table , m , MATCH( lookup_value , OFFSET( lookup_table , n , 0, 1, КОЛОНИ( lookup_table )), 0) -1, 1, 1)Къде:
- n - е отместването на реда за търсене, т.е. броят редове, които трябва да се преместят от началната точка до реда за търсене.
- m - е отместването на обратния ред, т.е. броят редове, които трябва да се преместят от началната точка до обратния ред.
Формула за търсене в матрица (по редове и колони)
{=OFFSET ( начална_точка , MATCH ( vertical_lookup_value , lookup_column , 0), MATCH ( horizontal_lookup_value , lookup_row , 0))}Обърнете внимание, че това е формула за масив, която се въвежда чрез едновременно натискане на клавишите Ctrl + Shift + Enter.
Плюсове : Позволява извършването на Vlookup отляво, Hlookup отгоре и двупосочно търсене (по стойности на колона и ред), без да се влияе от промените в набора от данни.
Против : Сложен и труден за запомняне синтаксис.
За повече информация и примери за формули вижте: Използване на функцията OFFSET в Excel
INDEX MATCH
Това е най-добрият начин за извършване на вертикално или хоризонтално търсене в Excel, който може да замени повечето от горните формули. Формулата Index Match е моето лично предпочитание и я използвам за почти всички търсения в Excel.
Формула за V-търсене
INDEX ( return_column , MATCH ( lookup_value , lookup_column , 0))Формула за H-търсене
INDEX ( return_row , MATCH ( lookup_value , lookup_row , 0))Формула за търсене на матрица
Разширение на класическата формула Index Match за връщане на стойност в пресечната точка на определена колона и ред:
INDEX ( lookup_table , MATCH ( vertical_lookup_value , lookup_column , 0), MATCH ( horizontal_lookup_value , lookup_row , 0))Против : Само едно - трябва да запомните синтаксиса на формулата.
Плюсове : Най-универсалната формула за търсене в Excel, която в много отношения превъзхожда функциите Vlookup, Hlookup и Lookup:
- Той може да извършва леви и горни прегледи.
- Позволява безопасно разширяване или свиване на таблицата за търсене чрез вмъкване или изтриване на колони и редове.
- Няма ограничение за размера на стойността за търсене.
- Работи по-бързо. Тъй като формулата Index Match се отнася до колони/редове, а не до цялата таблица, тя изисква по-малко процесорна мощ и не забавя работата на Excel.
За повече информация, моля, проверете:
- INDEX MATCH като по-добра алтернатива на VLOOKUP
- Формула INDEX MATCH MATCH за двуизмерно търсене
Таблица за сравнение на Excel Lookup
Както виждате, не всички формули за търсене в Excel са еквивалентни, някои могат да се справят с редица различни търсения, докато други могат да се използват само в конкретна ситуация. В таблицата по-долу са описани възможностите на всяка формула за търсене в Excel.
Формула | Вертикално търсене | Търсене вляво | Хоризонтално търсене | Горно търсене | Търсене на матрица | Позволява вмъкване/изтриване на данни |
Преглед на | ✓ | ✓ | ||||
Vlookup | ✓ | |||||
Hlookup | ✓ | |||||
Съответствие на търсачката | ✓ | ✓ | ||||
Hlookup Match | ✓ | ✓ | ||||
Съвпадение на отместването | ✓ | ✓ | ✓ | ✓ | ✓ | |
Съвпадение на отместването | ✓ | ✓ | ||||
Индекс на съвпадение | ✓ | ✓ | ✓ | ✓ | ✓ | |
Индекс Съответствие Съответствие | ✓ | ✓ |
Примери за формула за търсене в Excel
Първата стъпка при вземането на решение коя формула да използвате в конкретна ситуация е да определите какъв вид търсене искате да извършите. По-долу ще намерите примери за формули за най-популярните видове търсене:
Вертикално търсене в колони
Вертикалното търсене или Vlookup е процесът на намиране на стойност за търсене в една колона и връщане на стойност в същия ред от друга колона. Vlookup в Excel може да се направи по различни начини, включително:
Функция VLOOKUP
Ако стойностите за търсене се намират в лявата колона на таблицата и не планирате да правите структурни промени в набора от данни (нито да добавяте, нито да изтривате колони), можете спокойно да използвате обикновена формула Vlookup:
=VLOOKUP(G2, $A$2:$E$6, 5, FALSE)
Където G2 е стойността за търсене, A2:E6 в таблицата за търсене, а E е колоната за връщане.
VLOOKUP MATCH
Ако работите с "променлива" таблица за търсене в Excel, в която колоните могат да бъдат вмъквани и изтривани по всяко време, направете формулата си за Vlookup устойчива на тези промени, като вградите функцията Match, която създава динамична референция към колоната вместо "твърдо кодиран" индексен номер:
=VLOOKUP(F2,$A$1:$D$6, MATCH($G$1,$A$1:$D$1, 0), FALSE)
INDEX MATCH - Търсене вляво
Това е любимата ми формула, която се справя с лекота с прегледи отдясно наляво и работи безупречно, независимо колко колони добавяте или изтривате.
Например, за да потърсите в колона B стойността в H2 и да върнете съвпадение от колона F, използвайте тази формула:
=INDEX($F$2:$F$6,(MATCH(H2,$B$2:$B$6,0))
Забележка. Когато планирате да използвате формула Vlookup в повече от една клетка, винаги трябва да заключване на референтната таблица за търсене чрез използване на знака $ (абсолютна референция към клетка), така че формулата да се копира правилно в други клетки.
Хоризонтално търсене в редове
Хоризонталното търсене е "транспонирана" версия на вертикалното търсене, която търси в хоризонтално подредена съвкупност от данни. С други думи, тя търси стойността за търсене в един ред и връща стойност на същата позиция от друг ред.
Ако приемете, че стойността на търсенето е в B9, таблицата за търсене е B1:F5 и искате да върнете съответстваща стойност от ред 5, използвайте една от следните формули:
Функция HLOOKUP
Може да търсите само в горен ред във вашия набор от данни.
=HLOOKUP(B8, $B$1:$F$5, 5, FALSE)
HLOOKUP MATCH
Подобно на чистото Hlookup, тази формула може да търси само в най-горния ред, но ви позволява да безопасно вмъкване или изтриване на редове в таблицата за търсене.
=HLOOKUP(B8, $B$1:$F$5, MATCH($A$9, $A$1:$A$5, 0), FALSE)
Където A1:A5 са заглавията на редовете, а A9 е името на реда, от който искате да върнете съвпадения.
INDEX MATCH
Може да погледнете нагоре във всеки ред и няма ограниченията на горните формули.
=INDEX($B$5:$F$5,(MATCH(B8,$B$1:$F$1,0))
Двуизмерно търсене (въз основа на стойностите на редовете и колоните)
Двуизмерно търсене (известно още като търсене на матрица , двойно търсене или Двупосочно търсене ) връща стойност въз основа на съвпаденията в редовете и колоните. С други думи, двуизмерната формула за търсене търси стойност в пресечната точка на определен ред и колона.
Ако приемем, че таблицата ви за търсене е A1:E6, клетка H2 съдържа стойността за съответствие на редовете, а H3 - стойността за съответствие на колоните, следните формули ще работят отлично:
Формула INDEX MATCH MATCH :
=INDEX($A$1:$E$6, MATCH(H2,$A$1:$A$6,0), MATCH(H3,$A$1:$E$1,0))
Формула OFFSET MATCH MATCH :
=OFFSET($A$1,MATCH(H2,$A$2:$A$6,0),MATCH(H3,$B$1:$E$1,0))
Освен горепосочените формули съществуват и няколко други начина за извършване на матрично търсене в Excel, за които можете да намерите подробна информация в статията Как да направим двупосочно търсене в Excel.
Триизмерно търсене
Триизмерното търсене означава търсене по 3 различни стойности за търсене. В набора от данни по-долу, ако предположим, че искате да търсите конкретна година (H2), след това конкретно име в рамките на данните за тази година (H3) и след това да върнете стойност за конкретен месец (H4).
Задачата може да бъде изпълнена със следната формула за масиви (не забравяйте да натиснете Ctrl + Shift + Enter, за да я изпълните правилно):
=INDEX($A$1:$E$12,MIN(IF((ROW($A$1:$A$12)>MATCH(H2,$A$1:$A$12,0))*($A$1:$A$12=H3),ROW($A$1:$A$12),"")),MATCH(H4,$A$1:$E$1,0))
Търсене с множество критерии
За да можем да оценяваме множество критерии, ще трябва да модифицираме класическата формула Index Match, така че да се превърне във формула за масив:
INDEX( lookup_table , MATCH(1, ( lookup_value1 = lookup_column1 ) * ( lookup_value2 = lookup_column2 )*..., 0), return_column_number )С таблицата за търсене, намираща се в A1:C11, нека намерим съвпадение по 2 критерия: търсете в колона A стойност в клетка F1, а в колона B - стойност в клетка F2:
=INDEX($A$1:$C$11, MATCH(1, (F1=$A$1:$A$11) * (F2=$B$1:$B$11),0), 3)
Както обикновено, натискате Ctrl + Shift + Enter, за да бъде формулата оценена като формула за масив.
За подробно обяснение на логиката на формулата вижте INDEX MATCH за търсене по няколко критерия.
Търсене за връщане на няколко стойности
Която и функция за търсене в Excel да използвате (LOOKUP, VLOOKUP или HLOOKUP), тя може да върне само едно съвпадение. За да получите всички намерени съвпадения, ще трябва да използвате 6 различни функции, комбинирани във формула с масив:
IFERROR(INDEX( return_range , SMALL(IF( lookup_value = lookup_range , ROW( return_range )- m ,""), ROW() - n )),"")Къде:
- m е номерът на реда на първата клетка в диапазона за връщане минус 1.
- n е номерът на реда на първата клетка на формулата минус 1.
Когато стойността за търсене се намира в клетка E2, диапазонът за търсене е в A2:A11, диапазонът за връщане е в B2:B11, а първата клетка на формулата е в ред 2, формулата за търсене придобива следната форма:
=IFERROR(INDEX($B$2:$B$11, SMALL(IF($E$2 =$A$2:$A$11, ROW($B$2:$B$11 )- 1,""), ROW() - 1 )),"")
За да може формулата да върне множество съвпадения, трябва да я въведете в първата клетка (F2), да натиснете Ctrl + Shift + Enter , след което да копирате формулата в други клетки надолу в колоната.
За подробно обяснение на горната формула и други начини за връщане на множество стойности вижте Как Vlookup да връща множество резултати.
Вложени търсения (от 2 таблици за търсене)
В случаите, когато основната таблица и таблицата за търсене, от която искате да извлечете данни, нямат обща колона, можете да използвате допълнителна таблица за търсене, за да установите съвпадения, например по следния начин:
За извличане на стойностите от Сума колона в Lookup_table2 , използвайте следната формула:
=VLOOKUP(VLOOKUP(A2, Lookup_table1!$A$1:$B$6, 2, FALSE), Lookup_table2!$A$1:$B$6, 2, FALSE)
Както е показано на скрийншота по-долу, нашата вложена формула за търсене работи перфектно:
Последователни Vlookups от няколко листа
За да извършвате последователни VlookUPs въз основа на това дали предишното търсене е било успешно или неуспешно, използвайте вложени функции IFERROR заедно с VLOOKUPs, за да оценявате няколко условия едно по едно:
IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Не е намерен")))Ако първият Vlookup не успее, IFERROR улавя грешката и стартира друг Vlookup. Ако и вторият Vlookup не намери нищо, вторият IFERROR улавя грешката и стартира трети Vlookup и т.н. Ако всички Vlookup не успеят, последният IFERROR връща "not found" (не е намерен) или всяко друго съобщение, което предоставите на формулата.
Като пример, нека се опитаме да извлечем сумата от 3 различни листа:
=IFERROR(VLOOKUP(B1,A6:B9,2,0), IFERROR(VLOOKUP(B1,D6:E9,2,0), IFERROR(VLOOKUP(B1,G6:H9,2,0), "Не е намерен"))
Резултатът ще изглежда по подобен начин:
За повече информация вижте Как да използваме вложени функции IFERROR в Excel.
Търсене с отчитане на големи букви
Както вероятно знаете, всички функции за търсене в Excel по своята същност са безразлични към малки и големи букви. За да накарате формулата за търсене да прави разлика между малки и големи букви в текста, използвайте LOOKUP или INDEX MATCH в комбинация с функцията EXACT. Аз лично избирам INDEX MATCH, тъй като тя не изисква сортиране на стойностите в колоната за търсене, както прави функцията LOOKUP, може да изпълнява както функцията от ляво на дясно, така и функцията за търсене.и търсене отдясно наляво, и работи перфектно за всички типове данни.
INDEX( return_column , MATCH(TRUE, EXACT( lookup_column , lookup_value ),0))При положение че G2 е стойността за търсене, A - колоната, по която се търси, и E - колоната, от която се връщат съвпаденията, нашата формула за търсене с отчитане на падежите е следната:
=INDEX($E$2:$E$6, MATCH(TRUE, EXACT($A$2:$A$6,G2),0))
Тъй като това е формула за масив , не забравяйте да натиснете Ctrl + Shift + Enter, за да го завършите правилно.
За повече примери за формули вижте Как да правим търсене с отчитане на големи и малки букви в Excel.
Частично съвпадение на низ за търсене
Търсенето по частично съвпадение е една от най-сложните задачи в Excel, за която не съществува универсално решение. Коя формула да използвате зависи от това какви разлики има между стойностите за търсене и стойностите в колоната, в която се търси. В повечето случаи ще използвате функцията LEFT, RIGHT или MID, за да извлечете общата част от стойностите, и след това ще предоставите тази част на функцията lookup_value на функцията Vlookup, както е направено в следната формула:
=VLOOKUP(RIGHT(D2,4), $A$2:$B$6, 2, FALSE)
Където D2 е стойността за търсене, A2:B6 е таблицата за търсене, а 2 е индексният номер на колоната, от която се връщат съответствията.
За други начини за извършване на търсене на частично съвпадение в Excel, моля, вижте Как да обединим два работни листа чрез частично съвпадение.
Ето как се използват функциите за търсене в Excel. За да разгледате по-отблизо формулите, разгледани в този урок, можете да изтеглите нашите примери за формули за търсене в Excel.
Начин за търсене без формули в Excel
От само себе си се разбира, че търсенето в Excel не е тривиална задача. Ако правите първите си стъпки в изучаването на Excel, формулите за търсене може да изглеждат доста объркващи и трудни за разбиране. Но моля, не се чувствайте обезкуражени, тези умения не са естествени за повечето потребители!
За да улесним начинаещите, създадохме специален инструмент - Merge Tables Wizard, който може да търси, да сравнява и да обединява таблици без нито една формула. Освен това той предоставя редица наистина уникални опции, от които могат да се възползват дори напредналите потребители на Excel:
- Търсене по множество критерии , т.е. използвайте една или няколко колони като уникален(и) идентификатор(и).
- Актуализация стойности в съществуващи колони и добавяне на нов колони от таблицата за търсене.
- Връщане на множество съвпадения Когато се използва в комбинация с съветника за комбиниране на редове, той може дори да върне няколко резултата в една клетка, разделени със запетая или по друг начин (пример можете да намерите тук).
- И още.
Работата с съветника за сливане на таблици е лесна и интуитивна. Всичко, което трябва да направите, е да:
- Изберете основната си таблица, от която искате да извлечете съвпадащите стойности.
- Изберете таблицата за търсене, от която да изтеглите съвпаденията.
- Дефинирайте една или повече общи колони.
- Изберете колоните, които да бъдат актуализирани и/или добавени в края на таблицата.
- По желание изберете една или повече допълнителни опции за сливане.
- Кликнете върху Завършете и след малко ще имате резултат!
Ако сте любопитни да изпробвате добавката върху собствените си работни листове, можете да изтеглите пробна версия на нашия Ultimate Suite, който включва всички наши инструменти за спестяване на време за Excel (общо над 70 инструмента и над 300 функции!).
Налични изтегляния
Примери за формула за търсене в Excel (.xlsx файл)
Ultimate Suite 14-дневна напълно функционална версия (.exe файл)