Функција Excel XLOOKUP со примери на формула

  • Споделете Го Ова
Michael Brown

Во упатството се воведува XLOOKUP - новата функција за вертикално и хоризонтално пребарување во Excel. Пребарување од лево, последното совпаѓање, Vlookup со повеќе критериуми и многу повеќе работи кои порано бараа диплома за ракетни науки за да се постигнат сега станаа лесно како ABC.

Секогаш кога ќе треба да побарате во Excel , која функција би ја користеле? Дали е тоа камен-темелник VLOOKUP или неговиот хоризонтален брат HLOOKUP? Во покомплексен случај, дали ќе се потпрете на канонската комбинација INDEX MATCH или ќе ја обврзете работата на Power Query? Добрата вест е што повеќе немате избор - сите овие методи отвораат пат за помоќен и разноврсен наследник, функцијата XLOOKUP.

Како е XLOOKUP подобар? На многу начини! Може да изгледа вертикално и хоризонтално, лево и горе, да пребарува со повеќе критериуми, па дури и да врати цела колона или ред податоци, а не само една вредност. На Мајкрософт му требаа повеќе од 3 децении, но конечно успеаја да дизајнираат робусна функција која надминува многу фрустрирачки грешки и слабости на VLOOKUP.

Што е финтата? За жал, има еден. Функцијата XLOOKUP е достапна само во Excel за Microsoft 365, Excel 2021 и Excel за веб.

    Excel XLOOKUP функција - синтакса и користи

    Функцијата XLOOKUP во Excel пребарува опсег или низа за одредена вредност и ја враќа поврзаната вредност од друга колона. Може да ги погледне и дветепреземете ги сите детали кои се однесуваат на продавачот од интерес (F2). Она што треба да направите е да наведете опсег, а не единечна колона или ред, за аргументот return_array :

    =XLOOKUP(F2, A2:A7, B2:D7)

    Ја внесувате формулата во горниот лев агол ќелија од опсегот на резултатите, а Excel автоматски ги прелева резултатите во соседните празни ќелии. Во нашиот случај, повратната низа (B2:D7) вклучува 3 колони ( Датум , Точка и Износ ), и сите три вредности се враќаат во опсегот G2:I2.

    Ако сакате да ги распоредите резултатите вертикално во колона, вметнете го XLOOKUP во функцијата TRANSPOSE за да ја превртите вратената низа:

    =TRANSPOSE(XLOOKUP(G1, A2:A7, B2:D7))

    На сличен начин, можете да вратите цела колона со податоци, да речеме колоната Износ . За ова, користете ја клетката F1 што содржи „Износ“ како поглед_вредност , опсегот A1:D1 што ги содржи заглавијата на колоните како lookup_array и опсегот A2:D7 што ги содржи сите податоци како return_array .

    =XLOOKUP(F1, A1:D1, A2:D7)

    Забелешка. Бидејќи повеќе вредности се населени во соседните ќелии, проверете дали имате доволно празни ќелии надесно или надолу. Ако Excel не може да најде доволно празни ќелии, # SPILL! се јавува грешка.

    Совет. XLOOKUP не само што може да врати повеќе записи туку и да ги замени со други вредности што ќе ги наведете. Пример за таква масовна замена може да најдете овде: Како да пребарувате и замените повеќе вредности со XLOOKUP.

    XLOOKUP соповеќе критериуми

    Друга голема предност на XLOOKUP е тоа што се справува со низи природно. Поради оваа способност, можете директно да оцените повеќе критериуми во аргументот lookup_array :

    XLOOKUP(1, ( criteria_range1 = criteria1 ) * ( Опсег_критериуми2 = критериуми2 ) * (…), повратна_низа )

    Како функционира оваа формула : Резултатот од секој тест за критериуми е низа на ТОЧНИ и НЕТОЧНИ вредности. Множењето на низите ги претвора TRUE и FALSE во 1 и 0, соодветно, и ја произведува конечната низа за пребарување. Како што знаете, множењето со 0 секогаш дава нула, така што во низата за пребарување, само ставките што ги исполнуваат сите критериуми се претставени со 1. И бидејќи нашата вредност за пребарување е „1“, Excel го зема првото „1“ во lookup_array (прво совпаѓање) и ја враќа вредноста од return_array на истата позиција.

    За да ја видите формулата во акција, ајде да повлечеме износ од D2:D10 ( return_array ) со следните услови:

    • Criteria1 (датум) = G1
    • Criteria2 (продавач) = G2
    • Criteria3 (артикал) = G3

    Со датуми во A2:A10 ( опсег_критериуми1 ), имиња на продавачи во B2:B10 ( опсег_критериуми2 ) и ставки во C2:C10 ( kriter_range3 ), формулата ја добива оваа форма:

    =XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)

    Иако функцијата Excel XLOOKUP обработува низи, таа работи како редовна формула и се комплетира со вообичаено Enterпритискање на тастатурата.

    Формулата XLOOKUP со повеќе критериуми не е ограничена на услови „еднакви на“. Слободно можете да користите и други логички оператори. На пример, за да ги филтрирате нарачките направени на датумот во G1 или порано, ставете „<=G1“ во првиот критериум:

    =XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)

    Double XLOOKUP

    За да најдете вредност на пресекот на одредена редица и колона, направете го таканареченото двојно пребарување или пребарување на матрицата . Да, Excel XLOOKUP исто така може да го направи тоа! Едноставно вгнездувате една функција во друга:

    XLOOKUP( lookup_value1 , lookup_array1 , XLOOKUP( lookup_value2 , lookup_array2 , data_values ))

    Како функционира оваа формула : Формулата се заснова на способноста на XLOOKUP да врати цел ред или колона. Внатрешната функција ја бара нејзината вредност за пребарување и враќа колона или ред со поврзани податоци. Таа низа оди во надворешната функција како return_array .

    За овој пример, ќе ги најдеме продажбите направени од одреден продавач во одреден квартал. За ова, ги внесуваме вредностите за пребарување во H1 (име на продавачот) и H2 (квартал) и правиме двонасочна Xlookup со следнава формула:

    =XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))

    Или обратно :

    =XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))

    Каде што A2:A6 се имињата на продавачите, B1:E1 се четвртини (заглавија на колоните), а B2:E6 се вредности на податоци.

    Двонасочно пребарување може да се изврши и со формулата INDEX Match и во aнеколку други начини. За повеќе информации, видете Двонасочно пребарување во Excel.

    Ако грешка XLOOKUP

    Кога вредноста за пребарување не е пронајдена, Excel XLOOKUP враќа грешка #N/A. Доста познато и разбирливо за стручните корисници, можеби е прилично збунувачки за почетниците. За да ја замените стандардната нотација за грешка со порака погодна за корисникот, внесете го вашиот сопствен текст во четвртиот аргумент со име if_not_found .

    Назад на првиот пример дискутиран во ова упатство. Ако некој внесе неважечко име на океанот во E1, следнава формула експлицитно ќе му каже дека „Не е пронајдено совпаѓање“:

    =XLOOKUP(E1, A2:A6, B2:B6, "No match is found")

    Забелешки:

    • Аргументот if_not_found ги заробува само #N/A грешките, не сите грешки.
    • #N/A грешките може да се постапат и со IFNA и VLOOKUP, но синтаксата е малку посложена и формулата е подолга.

    XLOOKUP чувствителна на големи букви

    Стандардно, функцијата XLOOKUP ги третира малите и големите букви како исти знаци. За да го направите чувствителен на големи букви, користете ја функцијата EXACT за аргументот lookup_array :

    XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array )

    Како функционира оваа формула : Функцијата EXACT ја споредува вредноста на пребарувањето со секоја вредност во низата за пребарување и враќа TRUE ако тие се потполно исти вклучувајќи ја буквата буква, инаку FALSE. Оваа низа од логички вредности оди во lookup_array аргумент на XLOOKUP. Како резултат на тоа, XLOOKUP ја бара ВИСТИНСКАТА вредност во горната низа и враќа совпаѓање од повратната низа.

    На пример, за да ја добие цената од B2:B7 ( return_array ) за ставката во Е1 ( побарувачка_вредност) , формулата во Е2 е:

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

    Забелешка. Ако има две или повеќе точно исти вредности во низата за пребарување (вклучувајќи го и буквата), првото пронајдено совпаѓање се враќа.

    Excel XLOOKUP не работи

    Ако вашата формула не работи правилно или резултира со грешка, најверојатно тоа е поради следниве причини:

    XLOOKUP не е достапен во мојот Excel

    Функцијата XLOOKUP не е компатибилна наназад. Достапно е само во Excel за Microsoft 365 и Excel 2021 и нема да се појави во претходните верзии.

    XLOOKUP враќа погрешен резултат

    Ако вашата очигледно точна формула Xlookup врати погрешна вредност, големи се шансите дека опсегот за пребарување или враќање „се префрли“ кога формулата беше копирана надолу или преку. За да спречите тоа да се случи, погрижете се секогаш да ги заклучувате двата опсези со апсолутни референци на ќелиите (како $A$2:$A$10).

    XLOOKUP враќа #N/A грешка

    An #N /Грешка само значи дека вредноста за пребарување не е пронајдена. За да го поправите ова, обидете се да барате приближно совпаѓање или информирајте ги вашите корисници дека не е пронајдено совпаѓање.

    XLOOKUP враќа #VALUE грешка

    A #VALUE! се појавува грешка ако низите за пребарување и враќање се некомпатибилнидимензии. На пример, не е можно да се пребарува во хоризонтална низа и да се враќаат вредности од вертикална низа.

    XLOOKUP враќа #REF грешка

    A #REF! се појавува грешка кога барате помеѓу две различни работни книги, од кои едната е затворена. За да ја поправите грешката, едноставно отворете ги двете датотеки.

    Како што штотуку видовте, XLOOKUP има многу одлични карактеристики што го прават Функција за речиси секое пребарување во Excel. Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!

    Вежбајте работна книга за преземање

    Примери на формулата на Excel XLOOKUP (датотека .xlsx)

    вертикално и хоризонтално и изведете точно совпаѓање (стандардно), приближно (најблиско) совпаѓање или совпаѓање со џокерот (делумно). return_array, [if_not_found], [match_mode], [search_mode])

    Првите 3 аргументи се потребни, а последните три се опционални.

    • Lookup_value - вредноста до барај.
    • Lookup_array - опсегот или низата каде да се бара.
    • Return_array - опсегот или низата од која се враќаат вредностите.
    • If_not_found [изборно] - вредноста што треба да се врати ако не се најде совпаѓање. Ако се испушти, се враќа грешка # N/A.
    • Match_mode [изборно] - типот на совпаѓање што треба да се изврши:
      • 0 или испуштен (стандардно) - точно совпаѓање . Ако не се најде, се враќа грешка #N/A.
      • -1 - точно совпаѓање или следно помало. Ако не се најде точно совпаѓање, се враќа следната помала вредност.
      • 1 - точно совпаѓање или следно поголема. Ако не се најде точно совпаѓање, се враќа следната поголема вредност.
      • 2 - совпаѓање на знаци со џокер.
    • Режим_пребарување [изборно] - насоката на пребарување:
      • 1 или испуштена (стандардно) - за пребарување од прво до последно.
      • -1 - за пребарување во обратен редослед, од последно до прво.
      • 2 - бинарно пребарување на податоци подредено растечки.
      • -2 - бинарно пребарување на податоци подредено во опаѓање.

      Според Microsoft, бинарнопребарување е вклучено за напредни корисници. Тоа е специјален алгоритам кој ја наоѓа позицијата на бараната вредност во сортирана низа споредувајќи ја со средниот елемент на низата. Бинарното пребарување е многу побрзо од обичното пребарување, но работи правилно само на подредени податоци.

    Основна формула XLOOKUP

    За да стекнеме повеќе разбирање, ајде да изградиме формула на Xlookup во наједноставна форма за да извршиме точно пребарување. За ова ќе ни требаат само првите 3 аргументи.

    Да се ​​претпостави дека имате збирна табела со информации за петте океани на Земјата. Сакате да ја добиете областа на специфичен океански влез во F1 ( погледна_вредност ). Со имињата на океаните во A2:A6 ( lookup_array ) и областите во C2:C6 ( return_array ), формулата оди како што следува:

    =XLOOKUP(F1, A2:A6, C2:C6)

    Преведено на обичен англиски, вели: побарајте ја вредноста на F1 во A2:A6 и вратете вредност од C2:C6 во истиот ред. Без броеви на индекси на колони, без сортирање, без други смешни чуда на Vlookup! Само работи :)

    XLOOKUP наспроти VLOOKUP во Excel

    Во споредба со традиционалниот VLOOKUP, XLOOKUP има многу предности. На кој начин е подобар од VLOOKUP? Еве список на најдобрите 10 функции што ги отфрлаат вратите од која било друга функција за пребарување во Excel:

    1. Вертикално и хоризонтално пребарување . Функцијата XLOOKUP го доби своето име поради неговата способност да бара и вертикално ихоризонтално.
    2. Погледнете во која било насока: десно, лево, долу или горе . Додека VLOOKUP може да пребарува само во најлевата колона и HLOOKUP во најгорниот ред, XLOOKUP нема такви ограничувања. Озлогласеното пребарување на лево во Excel веќе не е болка!
    3. Стандардно точно се совпаѓа . Во повеќето ситуации, ќе барате точно совпаѓање, а XLOOKUP стандардно го враќа (за разлика од функцијата VLOOKUP што стандардно е приближно совпаѓање). Се разбира, може да добиете XLOOKUP за да извршите приближно совпаѓање ако е потребно.
    4. Делумно совпаѓање со џокери . Кога знаете само некој дел од вредноста на пребарувањето, а не целиот, совпаѓањето на џокерите е корисно.
    5. Пребарувајте во обратен редослед . Претходно, за да ја добиете последната појава, требаше да го промените редоследот на вашите изворни податоци. Сега, едноставно го поставите аргументот режим_пребарување на -1 за да ја принудите формулата на Xlookup да пребарува одзади и да го врати последното совпаѓање.
    6. Врати повеќе вредности . Со манипулирање со аргументот return_array , можете да повлечете цел ред или колона со податоци поврзани со вашата вредност за пребарување.
    7. Пребарување со повеќе критериуми . Excel XLOOKUP се справува со низи природно, што овозможува да се изврши пребарување со повеќе критериуми.
    8. Функционалност ако е грешка . Традиционално, ние ја користиме функцијата IFNA за да ги заробиме #N/A грешките. XLOOKUP ја вклучува оваа функционалност воАргументот if_not_found дозволува да се излезе ваш сопствен текст ако не се најде валидно совпаѓање.
    9. Вметнувања/бришења на колони . Едно од најиритирачките проблеми со VLOOKUP е тоа што додавањето или отстранувањето колони ја крши формулата бидејќи повратната колона се идентификува со нејзиниот индексен број. Со XLOOKUP, го снабдувате опсегот за враќање, а не број, што значи дека можете да вметнете и отстраните онолку колони колку што ви треба без да прекршите ништо.
    10. Подобри перформанси . VLOOKUP може да ги забави вашите работни листови бидејќи ја вклучува целата табела во пресметките, што резултира со обработка на многу повеќе ќелии отколку што навистина е потребно. XLOOKUP се справува само со низите за пребарување и враќање од кои навистина зависи.

    Како да се користи XLOOKUP во Excel - примери на формула

    Следниве примери ги прикажуваат најкорисните функции на XLOOKUP во акција. Дополнително, ќе откриете неколку нетривијални употреби што ќе ги подигнат вашите вештини за пребарување на Excel на ново ниво.

    Побарајте вертикално и хоризонтално

    Microsoft Excel порано имал две функции за различно пребарување типови, секој има своја синтакса и правила за употреба: VLOOKUP да изгледа вертикално во колона и HLOOKUP да изгледа хоризонтално во ред.

    Функцијата XLOOKUP може да ги прави и двете со иста синтакса. Разликата е во она што го давате за низите за пребарување и враќање.

    За v-преглед, колони за снабдување:

    =XLOOKUP(E1, A2:A6, B2:B6)

    Заh-пребарување, внесете редови наместо колони:

    =XLOOKUP(I1, B1:F1, B2:F2)

    Пребарувањето лево е извршено природно

    Во претходните верзии на Excel, INDEX MATCH формулата беше единствениот сигурен начин да се погледне лево или горе. Сега, повеќе не треба да комбинирате две функции каде што една би била доволна. Само наведете ја целната низа за пребарување и XLOOKUP ќе се справи со неа без проблем без оглед на нејзината локација.

    Како пример, да ја додадеме колоната Rank лево од нашата примерна табела. Целта е да се добие ранг на океанскиот влез во Ф1. VLOOKUP ќе се сопне овде бидејќи може да врати вредност само од колона десно од колоната за пребарување. Формулата Xlookup лесно се справува:

    =XLOOKUP(F1, B2:B6, A2:A6)

    На сличен начин, можете да погледнете погоре кога пребарувате хоризонтално во редови.

    XLOOKUP со точно и приближно совпаѓање

    Однесувањето на совпаѓањето е контролирано од 5-тиот аргумент наречен match_mode . Стандардно, се врши точно совпаѓање.

    Внимавајте дека дури и кога ќе изберете приближно совпаѓање ( match_mode поставен на 1 или -1), функцијата сепак ќе бара точна натпревар прво. Разликата е во тоа што се враќа ако не се најде точна вредност за пребарување.

    Аргумент на Match_mode:

    • 0 или испуштен - точно совпаѓање; ако не е пронајдено - #Не/не грешка.
    • -1 - точно совпаѓање; ако не е пронајден - следната помала ставка.
    • 1 - точно совпаѓање; ако не се најде- следната поголема ставка.

    Точно совпаѓање XLOOKUP

    Ова е опцијата што веројатно ја користите 99% од времето кога пребарувате во Excel. Бидејќи точното совпаѓање е стандардното однесување на XLOOKUP, можете да го испуштите match_mode и да ги наведете само првите 3 потребни аргументи.

    Во некои ситуации, сепак, точното совпаѓање нема да работи. Типично сценарио е кога вашата табела за пребарување не ги содржи сите вредности, туку „пресвртници“ или „ограничувања“ како што се попусти засновани на количина, провизии засновани на продажба итн.

    Нашата табела за пребарување примероци ја покажува корелацијата помеѓу резултатите од испитите и оценките. Како што можете да видите на сликата од екранот подолу, точното совпаѓање функционира само кога резултатот на одреден ученик точно се совпаѓа со вредноста во табелата за пребарување (како Кристијан во редот 3). Во сите други случаи, се враќа грешка #N/A.

    =XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)

    За да ги добиеме оценките наместо грешките #N/A, ни треба за да барате приближно совпаѓање како што е прикажано во следниот пример.

    Приближно совпаѓање XLOOKUP

    За да извршите приближно пребарување, поставете го аргументот match_mode на -1 или 1 , во зависност од тоа како се организирани вашите податоци.

    Во нашиот случај, табелата за пребарување ги наведува долните граници на оценките. Значи, го поставивме match_mode на -1 за да ја бара следната помала вредност кога не се најде точно совпаѓање:

    =XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)

    На пример, Брајан има резултат од 98 (F2). Формулата ја бара оваа вредност за пребарување во B2:B6но не може да го најде. Потоа, ја бара следната помала ставка и наоѓа 90, што одговара на оценката А:

    Ако нашата табела за пребарување ги содржи горните граници на оценките, би поставиле match_mode to 1 за да ја барате следната поголема ставка ако точното совпаѓање не успее:

    =XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)

    Формулата бара 98 и повторно не може да ја најде. Овој пат, се обидува да ја најде следната поголема вредност и добива 100, што одговара на оценката А:

    Совет. Кога копирате формула на Xlookup во повеќе ќелии, заклучете ги опсезите за пребарување или вратете ги со апсолутни референци на ќелиите (како $B$2:$B$6) за да ги спречите да се менуваат.

    XLOOKUP со делумно совпаѓање (џокери)

    За да извршите делумно пребарување на совпаѓање, поставете го аргументот match_mode на 2, кој и наложува на функцијата XLOOKUP да ги обработи знаците на џокерите:

    • Ѕвездичка (*) - претставува која било низа од знаци.
    • Прашалник (?) - претставува кој било знак.

    За да видите како функционира , ве молиме разгледајте го следниов пример. Во колоната А, имате неколку модели на паметни телефони и, во колоната Б, нивниот капацитет на батеријата. Љубопитни сте за батеријата на одреден паметен телефон. Проблемот е што не сте сигурни дека можете да го напишете името на моделот точно како што е прикажано во колоната А. За да го надминете ова, внесете го делот што е дефинитивно таму и заменете ги преостанатите знаци со џокери.

    На пример, да се добиеинформации за батеријата на iPhone X, користете ја оваа формула:

    =XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)

    Или, внесете го познатиот дел од вредноста за пребарување во некоја ќелија и поврзете ја референцата на ќелијата со знаците:

    =XLOOKUP("*"&E1&"*", A2:A8, B2:B8, ,2)

    XLOOKUP во обратен редослед за да се добие последното појавување

    Во случај вашата табела да содржи неколку појави на вредноста за пребарување, понекогаш можеби ќе ви треба да се врати последниот натпревар . За да го направите тоа, конфигурирајте ја формулата на Xlookup да пребарува во обратен редослед.

    Насоката на пребарувањето се контролира во шестиот аргумент наречен режим_пребарување :

    • 1 или испуштено (стандардно) - пребарува од првата до последната вредност, т.е. од врвот до дното со вертикално пребарување или од лево надесно со хоризонтално пребарување.
    • -1 - пребарува во обратен редослед од последната до првата вредност .

    Како пример, да ја вратиме последната продажба направена од конкретен продавач. За ова, ги составивме првите три потребни аргументи (G1 за lookup_value , B2:B9 за lookup_array и D2:D9 за return_array ) и ставивме - 1 во 5-тиот аргумент:

    =XLOOKUP(G1, B2:B9, D2:D9, , ,-1)

    Директно и лесно, нели?

    XLOOKUP за враќање на повеќе колони или редови

    Уште една неверојатна карактеристика на XLOOKUP е неговата способност да врати повеќе од една вредност во врска со истата совпаѓање. Сè е направено со стандардната синтакса и без никакви дополнителни манипулации!

    Од табелата подолу, претпоставувајќи дека сакате да

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.