Съдържание
Както вероятно знаете, Microsoft Excel разполага с три функции за търсене на стойност - LOOKUP, VLOOKUP и HLOOKUP - и те като че ли объркват най-много потребителите. В този урок ще се спрем на особеностите на функцията HLOOKUP на Excel и ще обсъдим няколко примера за формули, които ще ви помогнат да я използвате най-ефективно в Excel.
Какво е HLOOKUP в Excel?
Функцията HLOOKUP на Excel е предназначена за хоризонтално търсене По-конкретно, той търси определена стойност в първия ред на таблицата и връща друга стойност в същата колона от ред, който сте посочили.
Функцията HLOOKUP е налична във всички версии на Microsoft Excel 2016, Excel 2013, Excel 2010, Excel 2007 и по-ниски.
Синтаксис и използване на HLOOKUP в Excel
Функцията HLOOKUP в Excel има следните аргументи:
HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])- Lookup_value (задължително) - стойността, която ще се търси. Тя може да бъде препратка към клетка, числова стойност или текстов низ.
- Таблица_масив (задължително) - два или повече реда данни, в които се търси стойността за търсене. Това може да бъде обикновен диапазон, именуван диапазон или таблица. Стойностите за търсене винаги трябва да се намират в първи ред на table_array .
- Row_index_num (задължително) - номерът на реда в table_array, от който трябва да се върне стойността. Например, за да върнете съответстващата стойност от втория ред, задайте row_index_num на 2 и т.н.
- Range_lookup (по избор) - логическа (булева) стойност, която указва на HLOOKUP да търси с точно или приблизително съвпадение.
Ако е TRUE или е пропуснато, приблизително Това означава, че ако не бъде намерено точно съвпадение, формулата Hlookup ще направи неточно съвпадение и ще върне следващата най-голяма стойност, която е по-малка от lookup_value.
Ако е FALSE, само точно съвпадение Ако нито една стойност в посочения ред не съвпада точно със стойността на търсенето, HLOOKUP изхвърля грешка #N/A.
За да улесните разбирането, можете да преведете синтаксиса HLOOKUP на Excel:
HLOOKUP( lookup_value , table_array , row_index_num , [range_lookup])на нормален английски език:
HLOOKUP( търсене на тази стойност , в тази таблица , върнете стойност от този ред , [върнете приблизително или точно съвпадение])За да видите как работи на практика, нека направим прост пример с Hlookup. Да предположим, че имате таблица с основна информация за планетите от нашата Слънчева система (моля, вижте снимката на екрана по-долу). Това, което искате, е формула, която връща диаметъра на планетата, чието име е въведено в клетка B5.
В нашата формула Hlookup ще използваме следните аргументи:
- Lookup_value е B5 - клетката, съдържаща името на планетата, която искате да намерите.
- Таблица_масив е B2:I3 - таблицата, в която формулата ще потърси стойността.
- Row_index_num е 2, защото Diameter е вторият ред в таблицата.
- Range_lookup Тъй като първият ред на нашата таблица не е подреден от А до Я, можем да търсим само с точно съвпадение, което работи добре в този пример.
Сега съберете аргументите и ще получите следната формула:
=VLOOKUP(40, A2:B15,2)
3 неща, които трябва да знаете за функцията HLOOKUP на Excel
Когато извършвате хоризонтално търсене в Excel, помнете следните факти:
- Функцията HLOOKUP може да търси само в най-горен ред на table_array Ако трябва да потърсите нещо друго, използвайте формулата Index / Match.
- HLOOKUP в Excel е без значение на размера на буквите , той не прави разлика между главни и малки букви.
- Ако range_lookup е зададен на TRUE или е пропуснат ( приблизително съвпадение), стойностите в първия ред на table_array трябва да бъдат подредени в възходящ ред (от А до Я) отляво надясно.
Каква е разликата между VLOOKUP и HLOOKUP в Excel?
Както вече знаете, и двете функции VLOOKUP и HLOOKUP търсят стойност за търсене. Разликата е в начина, по който се извършва търсенето. Както вероятно сте забелязали, имената на функциите се различават само по първата буква - "H" означава хоризонтално, а "V" - вертикално.
Затова използвате функцията VLOOKUP, за да търсите е вертикален списъци, когато стойностите за търсене се намират в колона вляво от данните, които искате да намерите.
Функцията HLOOKUP извършва хоризонтално търсене - тя търси стойност за търсене в най-горния ред на таблицата и връща стойност, разположена на определен брой редове надолу в същата колона.
Следващото изображение демонстрира разликата между формулите Vlookup и Hlookup в Excel:
Как да използвате HLOOKUP в Excel - примери за формули
Сега, когато функцията HLOOKUP вече ви изглежда малко по-позната, нека обсъдим още няколко примера за формули, за да затвърдим знанията.
Хоризонтално търсене с приблизително и точно съвпадение
Както вече знаете, функцията HLOOKUP в Excel може да извършва търсене с точно и неточно съвпадение в зависимост от това коя стойност е предоставена на функцията range_lookup аргумент:
- TRUE или пропуснато - приблизително мач
- FALSE - точно мач
Моля, имайте предвид, че въпреки че казваме "приблизително съвпадение", всяка формула Hlookup търси на първо място точно съвпадение. Но задаването на последния аргумент на FALSE позволява на формулата да връща приблизително съвпадение (най-близката стойност, която е по-малка от стойността на търсене), ако не е намерено точно съвпадение; TRUE или пропускане връща грешка #N/A в този случай.
За да илюстрирате по-добре този въпрос, разгледайте следните примери за HLOOKUP.
HLOOKUP с приблизително съвпадение
Да предположим, че имате списък с планети в ред 2 (B2:I2) и техните температури в ред 1 (B1:I1). Искате да разберете коя планета има определена температура, която е въведена в клетка B4.
Не можете да разчитате на това, че потребителите ви знаят точно температурата на търсене, така че има смисъл да връщате най-близкото съвпадение ако не е намерена точна стойност.
Например, за да откриете планетата, чиято средна температура е около -340 °F, използвайте следната формула ( range_lookup да се зададе TRUE или да се пропусне, както е в този пример):
=HLOOKUP(B4, B1:I2, 2)
Не забравяйте, че приблизителното съвпадение изисква сортиране на стойностите в горния ред от най-малката към най-голямата или от А до Я, в противен случай формулата Hlookup може да върне грешен резултат.
Както можете да видите на снимката на екрана по-долу, нашата формула връща Уран , една от най-студените планети в Слънчевата система, поддържаща средна температура от -346 градуса по Фаренхайт.
HLOOKUP с точно съвпадение
Ако знаете точно стойността на търсенето, можете да зададете последния параметър на HLOOKUP на FALSE:
=HLOOKUP(B4, B1:I2, 2, FALSE)
От една страна, Hlookup с приблизително съвпадение е по-удобен за потребителя, тъй като не изисква сортиране на данните в първия ред. От друга страна, ако не бъде намерено точното съвпадение, ще бъде върната грешка #N/A.
Съвет. За да не плашите потребителите си с N/A грешки, можете да вградите формулата Hlookup в IFERROR и да покажете собствено съобщение, например:
=IFERROR(HLOOKUP(B4, B1:I2, 2, FALSE), "Съжаляваме, нищо не беше намерено")
Как да направите HLOOKUP от друг работен лист или работна книга
По принцип h-lookup от друг лист или друга работна книга не означава нищо друго освен предоставяне на външни препратки към вашата HLOOKUP формула.
Извличане на съвпадащи данни от различен работен лист , посочвате името на листа, последвано от възклицателен знак. например:
=HLOOKUP(B$1, Diameters!$B$1:$I$2,2,FALSE)
Ако името на работния лист съдържа пространства или неалфабетни знаци , поставете името в единични кавички, както е показано по-долу:
=HLOOKUP(B$1, 'Planet diameters'!$B$1:$I$2,2,FALSE)
При позоваване на друга работна книга , включете името на работната книга, затворено в квадратни скоби:
=HLOOKUP(B$1, [Book1.xlsx]Diameters!$B$1:$I$2, 2, FALSE)
Ако извличате данни от затворена работна книга, трябва да се посочи целият път:
=HLOOKUP(B$1, 'D:\Reports\[Book1.xlsx]Diameters'!$B$1:$I$2, 2, FALSE)
Съвет: Вместо да въвеждате ръчно имената на работната книга и работния лист във формулата, можете да изберете клетките в друг лист и Excel автоматично ще добави външна препратка към вашата формула.
Excel HLOOKUP с частично съвпадение (заместващи символи)
Както и при VLOOKUP, функцията HLOOKUP на Excel позволява използването на следните заместващи символи в lookup_value аргумент:
- Въпросник (?) за съвпадение с всеки отделен символ
- Звездичка (*) за съвпадение с всяка последователност от символи
Wildcards са полезни, когато искате да извлечете информация от база данни въз основа на текст, който е част от съдържанието на клетката за търсене.
Например имате списък с имена на клиенти в ред 1 и идентификатори на поръчки в ред 2. Искате да намерите идентификатора на поръчката за конкретен клиент, но не можете да си спомните точно името на клиента, въпреки че помните, че започва с "ace".
Ако приемем, че данните ви са в клетки B1:I2 ( table_array) а номерата на поръчките са в ред 2 ( row_index_num ), формулата е следната:
=HLOOKUP("ace*", B1:I2, 2, FALSE)
За да направите формулата по-гъвкава, можете да въведете стойността за търсене в специална клетка, например B4, и да свържете тази клетка със заместващия символ по следния начин:
=HLOOKUP(B4& "*", B1:I2, 2, FALSE)
Забележки.
- За да работи правилно формулата HLOOKUP със заместващ символ, е необходимо range_lookup аргументът трябва да бъде зададен на FALSE.
- Ако table_array съдържа повече от една стойност, която отговаря на критериите на заместващия символ, се връща първата намерена стойност.
Абсолютни и относителни препратки към клетките във формулите HLOOKUP
Ако пишете формула за една-единствена клетка, може да не се притеснявате за правилното използване на относителни и абсолютни препратки към клетките - достатъчни са и двете.
Копирането на формула в няколко клетки е нещо различно. По същество:
- Винаги трябва да поправяте table_array чрез използване на абсолютни препратки към клетките със знака за долар ($), например $B$1:$I$2.
- Обикновено lookup_value е относителна или смесена в зависимост от вашата бизнес логика.
За да изясним нещата, нека разгледаме по-отблизо формулата, която извлича данни от друг лист:
=HLOOKUP(B$1, Diameters!$B$1:$I$2,2,FALSE)
В горната формула използваме абсолютен препратки към клетки ($B$1:$I$2) в table_array тъй като тя трябва да остане постоянна при копиране на формулата в други клетки.
За lookup_value (B$1), използваме a смесен референция, относителна колона и абсолютен ред, защото нашите стойности за търсене (имена на планети) се намират в един и същи ред (ред 1), но в различни колони (от B до I) и референцията към колоната трябва да се промени въз основа на относителната позиция на клетката, в която е копирана формулата.
Благодарение на умелото използване на препратки към клетките нашата формула Hlookup работи перфектно за няколко клетки:
INDEX/MATCH - по-мощна алтернатива на HLOOKUP в Excel
Както вече знаете, функцията HLOOKUP в Excel има редица ограничения, най-съществените от които са невъзможността да се търси навсякъде, освен в най-горния ред, и необходимостта от сортиране на стойностите при търсене с приблизително съвпадение.
За щастие в Excel съществува по-мощна и гъвкава алтернатива на Vlookup и Hlookup - връзката на функциите INDEX и MATCH, която се свежда до тази обща формула:
INDEX ( откъде да се върне стойност , MATCH ( стойност за търсене , къде да търсите , 0))Ако приемем, че стойността за търсене е в клетка B7, търсите съвпадение в ред 2 (B2:I2) и искате да върнете стойност от ред 1 (B1:I1), формулата е следната:
=INDEX(B1:I1,MATCH(B7,B2:I2,0))
На скрийншота по-долу можете да видите 2 формули Hlookup, които търсят в първия и втория ред, като и в двата случая INDEX MATCH работи еднакво добре.
За подробно обяснение на логиката на формулата и повече примери вижте INDEX MATCH като по-добра алтернатива на VLOOKUP.
Как да направите h-търсене с отчитане на случая в Excel
Както беше споменато в началото на този урок, функцията HLOOKUP на Excel не отчита малкия и големия размер на символите. В ситуации, когато големият размер на символите има значение, можете да използвате функцията EXACT, която сравнява точно клетките, и да я поставите във формулата INDEX MATCH, разгледана в предишния пример:
INDEX ( ред, за да върнете стойност от , MATCH(TRUE, EXACT( ред, в който да се търси , стойност за търсене) , 0))Ако приемем, че стойността за търсене е в клетка B4, обхватът за търсене е B1:I1, а обхватът за връщане е B2:I2, формулата придобива следната форма:
=INDEX(B2:I2, MATCH(TRUE, EXACT(B1:I1,B4),0))
Важна забележка! Това е формула за масив и затова трябва да натиснете Ctrl + Shift + Enter, за да я завършите.
Горният пример демонстрира любимия ми, но не и единствения възможен начин за извършване на Hlookup с отчитане на големи и малки букви в Excel. Ако сте любопитни да се запознаете с други техники, моля, разгледайте този урок: 4 начина за извършване на Vlookup с отчитане на големи и малки букви в Excel. Мисля, че няма да имате проблеми с възстановяването на формулите на Vlookup за хоризонтално търсене.
Топ 10 на причините, поради които Excel HLOOKUP не работи
Вече знаете, че HLOOKUP е много полезна и мощна функция за търсене в Excel. Тя е и сложна и поради многобройните си особености често срещани грешки са #N/A, #VALUE или #REF. Ако вашата формула HLOOKUP не работи правилно, най-вероятно причината е една от следните.
1. HLOOKUP в Excel не може да гледа над себе си
Дори и да забравите всички останали подробности за хоризонталното търсене в Excel, запомнете тази съществена - Hlookup може да търси само в най-горен ред Ако вашите стойности за търсене се намират в друг ред, ще бъде върната грешка N/A. За да преодолеете това ограничение, използвайте формулата INDEX MATCH.
2. Приблизително съвпадение спрямо точно съвпадение
Когато извършвате търсене в Excel, хоризонтално (Hlookup) или вертикално (Vlookup), в повечето случаи търсите конкретно нещо и следователно се нуждаете от точно съвпадение. Когато търсите с приблизително съвпадение ( range_lookup зададено на TRUE или пропуснато), не забравяйте да сортирате стойностите в първия ред във възходящ ред.
За повече информация и примери за формули вижте Excel Hlookup with approximate and exact match.
3. Препратката към масива от таблици се променя при копиране на формулата
Когато използвате няколко HLOOKUP за извличане на информация за ред от стойности за търсене, трябва да заключите table_array както е показано в Абсолютни и относителни референции на клетки във формулите Hlookup.
4. Вмъкване или изтриване на нов ред
За да разберете защо вмъкването на нов ред може да наруши формулата Hlookup, спомнете си как Excel HLOOKUP получава информация за стойността на търсенето - въз основа на номера на индекса на реда, който сте задали.
Да предположим, че искате да получите данни за продажбите въз основа на идентификатора на продукта. Тези данни се намират в ред 4, така че въведете 4 в полето row_index_num Но след като е вмъкнат нов ред, той става ред 5... и Hlookup спира да работи. Същият проблем може да възникне при изтриване на съществуващ ред от таблицата.
Решението е или да заключите таблицата, за да попречите на потребителите си да вмъкват нови редове, или да използвате INDEX & MATCH вместо Hlookup. Във формулите Index/Match посочвате редовете, които да се търсят и от които да се връщат стойности, като препратки към диапазони, а не към номера на индексите, и Excel е достатъчно интелигентен, за да коригира тези препратки в движение. Така че можете да изтривате или вмъквате толкова колони и редове, колкото искате, без дада се притеснявате за актуализирането на всяка формула в работния лист.
5. Дубликати в таблицата
Функцията HLOOKUP в Excel може да върне само една стойност, която е първата стойност в таблицата, която съответства на стойността за търсене.
Ако в таблицата ви има няколко еднакви записа, изберете едно от следните решения, което най-добре отговаря на нуждите ви:
- Премахване на дубликати с помощта на средствата на Excel или нашия програма за премахване на дубликати
- Ако в набора от данни трябва да се запазят дублиращи се записи, създайте PivotTable, за да групирате и филтрирате данните по желания от вас начин.
- Използвайте формула за масиви, за да извлечете всички дублиращи се стойности в диапазона за търсене.
6. Допълнителни пространства
Когато очевидно правилната ви формула Hlookup връща куп грешки #N/A, проверете таблицата и стойността за търсене за допълнителни интервали. Можете бързо да премахнете водещите, завършващите и излишните междинни интервали, като използвате функцията TRIM на Excel или нашия инструмент за почистване на клетки.
7. Числа, форматирани като текст
Текстови низове, които изглеждат като числа, са друг препъни камък за формулите на Excel. Подробното описание на този проблем и възможните решения са описани в Защо формулите на Excel може да спрат да работят.
8. Стойността на търсенето надвишава 255 символа
Всички функции за търсене в Excel работят само докато стойността за търсене е под 255 символа. По-дълга стойност за търсене води до грешка #VALUE!. Тъй като формулата INDEX /MATCH е свободна от това ограничение, използвайте я, за да преодолеете това препятствие.
9. Не е посочен пълният път до работната книга за търсене
Ако извършвате h-lookup от друга работна книга, не забравяйте да предоставите пълния път до нея. Няколко примера за формули можете да намерите тук: Как да извършим h-lookup от друг работен лист или работна книга.
10. Неправилни аргументи
Вече неведнъж е подчертавано, че HLOOKUP е трудна функция, към която трябва да се подхожда много внимателно. По-долу са изброени няколко най-често срещани грешки, причинени от подаване на неправилни аргументи:
- Ако row_index_num е по-малък от 1, функцията HLOOKUP връща грешката #VALUE!.
- Ако row_index_num е по-голям от броя на редовете в table_array, се връща грешка #REF!.
- Ако търсите с приблизително съвпадение и стойността на търсене е по-малка от най-малката стойност в първия ред на table_array, се връща грешка #N/A.
Е, това е начинът за използване на HLOOKUP в Excel. Надявам се, че тази информация ще ви бъде полезна. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!
Изтегляне на работна тетрадка за практика
Примери за формулата HLOOKUP на Excel