Екцел КСМАТЦХ функција са примерима формуле

  • Деле Ово
Michael Brown
тражи, али ради исправно само на сортираним листама. На несортираним подацима, може да врати погрешне резултате који на први поглед могу изгледати прилично нормално.

Синтакса МАТЦХ уопште не предвиђа аргумент режима претраге.

КСМАТЦХ природно обрађује низове

За разлику од свог претходника, КСМАТЦХ функција је дизајнирана за динамички Екцел и обрађује низове изворно, без потребе да притиснете Цтрл + Схифт + Ентер . Ово чини формуле много лакшим за прављење и уређивање, посебно када се користи неколико различитих функција заједно. Само упоредите следећа решења:

  • Формула осетљива на велика и мала слова: КСМАТЦХ

    Водич представља нову Екцел КСМАТЦХ функцију и показује како је она боља од МАТЦХ за решавање неколико уобичајених задатака.

    У Екцел 365, функција КСМАТЦХ је додата да замени МАТЦХ функција. Али пре него што почнете да надограђујете своје постојеће формуле, било би мудро да разумете све предности нове функције и како се она разликује од старе.

    Укратко, функција КСМАТЦХ је иста као МАТЦХ али је флексибилнија и робустан. Може да тражи и у вертикалним и хоризонталним низовима, да тражи од првог до последњег или од последњег до првог, да пронађе тачна, приближна и делимична подударања и да користи бржи алгоритам бинарне претраге.

    Екцел КСМАТЦХ функција

    Функција КСМАТЦХ у Екцел-у враћа релативну позицију вредности у низу или опсегу ћелија.

    Има следећу синтаксу:

    КСМАТЦХ(вредност_потраживања , лоокуп_арраи, [матцх_моде], [сеарцх_моде])

    Где:

    Лоокуп_валуе (обавезно) - вредност коју треба тражити.

    Лоокуп_арраи (обавезно) – низ или опсег ћелија у којима се тражи.

    Режим_подударања (опционо) – одређује који тип подударања треба користити:

    • 0 или изостављено (подразумевано) - потпуно подударање
    • -1 - тачно подударање или следећа најмања вредност
    • 1 - тачно подударање или следећа највећа вредност
    • 2 - подударање џокер знакова ( *, ?)

    Режим_претраге (опционо) - одређује правац претраге и алгоритам:

    • 1 или изостављен (подразумевано) -подударање или следећи највећи. Не захтева никакво сортирање.

    Када је аргумент матцх_моде / матцх_типе подешен на -1:

    • МАТЦХ претраге за тачно подударање или следеће највеће. Захтева сортирање низа за тражење у опадајућем редоследу.
    • КСМАТЦХ тражи тачно подударање или следеће најмање. Не захтева никакво сортирање.

    Тражење џокерских знакова

    Да бисте пронашли делимична подударања са КСМАТЦХ, потребно је да поставите аргумент матцх_моде на 2.

    Функција МАТЦХ нема посебну опцију режима подударања џокера. У већини случајева, конфигурисаћете га за тачно подударање ( матцх_типе подешено на 0), што такође функционише за претраге са џокер знаковима.

    Режим претраге

    Као нови КСЛООКУП функција, КСМАТЦХ има посебан аргумент моде_сеарцх_моде који вам омогућава да дефинишете смер претраге :

    • 1 или изостављен (подразумевано) - претражите први до -ласт.
    • -1 - обрнуто претраживање од последњег до првог.

    И изаберите бинарни алгоритам претраге , који је веома брз и ефикасан на сортирани подаци .

    • 2 - бинарна претрага података сортираних узлазно.
    • -2 - бинарна претрага података сортираних опадајуће.

    Бинарна претрага , која се назива и претрага у полуинтервалу или логаритамска претрага , је посебан алгоритам који проналази позицију тражене вредности унутар низа упоређивањем на средњи елемент низа. Бинарна претрага је много бржа од обичнепретрага од првог до последњег.

  • -1 - претрага обрнутим редоследом од последњег до првог.
  • 2 - бинарно претраживање узлазно. Захтева да лоокуп_арраи буде сортиран у растућем редоследу.
  • -2 - бинарно претраживање опадајуће. Захтева да лоокуп_арраи буде сортиран у опадајућем редоследу.

Бинарна претрага је бржи алгоритам који ефикасно ради на сортираним низовима. За више информација погледајте Режим претраге.

Која верзија Екцел-а има КСМАТЦХ?

Функција КСМАТЦХ је доступна само у Екцел-у за Мицрософт 365 и Екцел 2021. У Екцел 2019, Екцел 2016 и ранијим верзијама верзијама, ова функција није подржана.

Основна КСМАТЦХ формула у Екцел-у

Да бисмо добили општу представу о томе за шта је функција способна, хајде да направимо КСМАТЦХ формулу у њеном најједноставнијем облику, дефинишући само прва два потребна аргумента и остављајући опционе на подразумеване вредности.

Претпоставимо да имате листу океана рангирану према њиховој величини (Ц2:Ц6) и желите да пронађете ранг одређеног океана. Да бисте то урадили, једноставно користите име океана, рецимо индијски , као вредност за тражење и целу листу имена као низ за тражење:

=XMATCH("Indian", C2:C6)

Да бисте направили формула је флексибилнија, унесите океан интересовања у неку ћелију, рецимо Ф1:

=XMATCH(F1, C2:C6)

Као резултат, добијате КСМАТЦХ формулу за тражење у вертикалом низу . Излаз је релативна позиција тражене вредности у низу, што је у нашем случајуодговара рангу океана:

Слична формула савршено функционише и за хоризонтални низ . Све што треба да урадите је да прилагодите лоокуп_арраи референцу:

=XMATCH(B5, B1:F1)

Екцел КСМАТЦХ функцију – ствари које треба запамтити

Да бисте ефикасно користили КСМАТЦХ у својим радним листовима и спречили неочекиване резултате, запамтите ове 3 једноставне чињенице:

  • Ако постоје два или више појављивања вредности претраживања у низу за тражење, позиција прво подударање се враћа ако је аргумент режим_претраге постављен на 1 или изостављен. Са сеарцх_моде подешеним на -1, функција претражује обрнутим редоследом и враћа позицију последњег подударања као што је приказано у овом примеру.
  • Ако је тражена вредност није пронађен , јавља се грешка #Н/А.
  • Функција КСМАТЦХ је неосетљива на велика и мала слова по природи и не може да разликује велика и мала слова. Да бисте разликовали мала и велика слова, користите ову КСМАТЦХ формулу која разликује велика и мала слова.

Како користити КСМАТЦХ у Екцелу – примери формула

Следећи примери ће вам помоћи да боље разумете КСМАТЦХ функција и њена практична употреба.

Тачно подударање наспрам приближног подударања

Понашање КСМАТЦХ подударања контролише опциони аргумент матцх_моде :

  • 0 или изостављено (подразумевано) - формула тражи само тачно подударање. Ако није пронађено тачно подударање, аВраћа се грешка #Н/А.
  • -1 – формула прво тражи тачно подударање, а затим следећу мању ставку.
  • 1 – формула прво тражи тачно подударање и затим за следећу већу ставку.

А сада, да видимо како различити начини подударања утичу на резултат формуле. Претпоставимо да желите да сазнате где се одређена област, рецимо 80.000.000 км2, налази међу свим океанима.

Тачно подударање

Ако користите 0 за матцх_моде , ви ћете Добићу грешку #Н/А, јер формула не може да пронађе вредност која је тачно једнака траженој вредности:

=XMATCH(80000000, C2:C6, 0)

Следећа најмања ставка

Ако користите -1 за матцх_моде , формула ће вратити 3, јер је најближе подударање мање од вредности тражења 70,560,000, и то је 3. ставка у низу претраживања:

=XMATCH(80000000, C2:C6, -1)

Следећа највећа ставка

Ако користите 1 за режим_подударања , формула ће дати 2, јер је најближе подударање веће од вредности тражења 85.133.000, што је 2. ставка у низу за тражење :

=XMATCH(80000000, C2:C6, -1)

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

Како упарити делимични текст у Екцел-у са џокер знаковима

Функција КСМАТЦХ има посебан режим подударања за џокерске знакове: аргумент матцх_моде постављен на 2.

У режиму подударања џокерских знакова, КСМАТЦХ формула прихвата следећи џокер знак знакови:

  • Знак питања (?) за подударање са било којим појединачним знаком.
  • Звездица (*) за подударање са било којимниз знакова.

Имајте на уму да џокер знакови раде само са текстом, а не са бројевима.

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

=XMATCH("south*", B2:B6, 2)

Или можете да унесете свој џокер израз у неку ћелију, рецимо Ф1, и наведете референцу ћелије за аргумент лоокуп_валуе :

=XMATCH(F1, B2:B6, 2)

Са већином Екцел функција, користили бисте тилду (~) да третирате звездицу (~*) или упитник (~?) као буквално знакова, а не џокера. Са КСМАТЦХ, тилда није потребна. Ако не дефинишете режим подударања џокер знакова, КСМАТЦХ ће претпоставити да ? и * су регуларни знакови.

На пример, формула испод ће претражити опсег А2:А7 тачно за знак звездице:

=XMATCH("*", A2:A7)

КСМАТЦХ обрнута претрага за проналажење последњег подударања

У случају да постоји неколико појављивања вредности тражења у низу претраживања, можда ћете понекад морати да добијете позицију последњег појављивања .

Правцем претраге се контролише 4. аргумент КСМАТЦХ-а под називом режим_претраге . Да бисте претраживали обрнутим редоследом, тј. одоздо нагоре у вертикалном низу и здесна налево у хоризонталном низу, режим_претраге треба да буде подешен на -1.

У овом примеру, ми ће вратити позицију последњег записа за одређену вредност тражења (погледајте снимак екрана испод). За ово поставите аргументе каоследи:

  • Лоокуп_валуе - циљни продавац у Х1
  • Лоокуп_арраи - имена продавача у Ц2:Ц10
  • Режим_подударања је 0 или је изостављен (тачно подударање)
  • Режим_претраге је -1 (од последњег до првог)

Постављање четири аргументе заједно, добијамо ову формулу:

=XMATCH(H1, C2:C10, 0, -1)

Која враћа број последње продаје коју је извршила Лаура:

Како да упореди две колоне у Екцел-у за подударање

Да бисте упоредили две листе за подударања, можете користити функцију КСМАТЦХ заједно са ИФ и ИСНА:

ИФ( ИСНА( КСМАТЦХ( таргет_лист, сеарцх_лист, 0)), "Нема подударања", "Матцх")

На пример, да бисмо упоредили листу 2 у Б2:Б10 са листом 1 у А2:А10, формула има следећи облик:

=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Match in List 1")

У овом примеру идентификујемо само подударања, стога је аргумент валуе_иф_труе функције ИФ празан стринг ("").

Унесите горњу формулу у највишу ћелију (Ц2 у нашем случају), притисните Ентер и она ће се аутоматски "пролити" у друге ћелије (тј. т се назива распон просипања):

Како ова формула функционише

У срцу формуле, функција КСМАТЦХ претражује за вредност са Листе 2 унутар Листе 1. Ако је вредност пронађена, враћа се њена релативна позиција, у супротном грешка #Н/А. У нашем случају, резултат КСМАТЦХ-а је следећи низ:

{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}

Овај низ се „уноси“ у ИСНА функцију да би се проверило да ли има грешака #Н/А.За сваку грешку #Н/А, ИСНА враћа ТРУЕ; за било коју другу вредност - ФАЛСЕ. Као резултат, производи следећи низ логичких вредности, где ТРУЕ представљају неподударања, а ФАЛСЕ представљају подударања:

{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE}

Горењи низ иде на логички тест функције ИФ . У зависности од тога како сте конфигурисали последња два аргумента, формула ће дати одговарајући текст. У нашем случају, то је празан стринг ("") за неподударања ( валуе_иф_труе ) и "Подударање на листи 1" за подударања ( валуе_иф_фалсе ).

Белешка. Ова формула функционише само у Екцел 365 и Екцел 2021 који подржавају динамичке низове. Ако користите Екцел 2019, Екцел 2016 или старију верзију, погледајте друга решења: Како упоредити две колоне у Екцел-у.

ИНДЕКС КСМАТЦХ у Екцел-у

КСМАТЦХ се може користити у комбинацији са функцијом ИНДЕКС за преузимање вредности из друге колоне повезане са вредношћу претраживања, баш као формула ИНДЕКС МАТЦХ. Генерички приступ је следећи:

ИНДЕКС ( повратак _ низ , КСМАТЦХ ( вредност_потражи , низ_потражи )

логика је веома јасна и лака за праћење:

Функција КСМАТЦХ израчунава релативну позицију тражене вредности у низу за тражење и прослеђује је аргументу ров_нум аргумента ИНДЕКС. На основу реда број, функција ИНДЕКС враћа вредност из било које колоне коју наведете.

На пример, да бисте потражили областокеана у Е1, можете користити ову формулу:

=INDEX(B2:B6, XMATCH(E1, A2:A6))

ИНДЕКС КСМАТЦХ КСМАТЦХ да извршите 2-димензионално тражење

За тражите у колонама и редовима истовремено, користите ИНДЕКС заједно са две функције КСМАТЦХ. Први КСМАТЦХ ће добити број реда, а други ће преузети број колоне:

ИНДЕКС ( дата , КСМАТЦХ ( лоокуп_валуе , вертицал _ лоокуп_арраи ), КСМАТЦХ ( вредност тражења , хоризонтал _ лоокуп_арраи ))

Формула је слична ИНДЕКС МАТЦХ МАТЦХ осим што може да изостави аргумент матцх_моде пошто је подразумевано постављен на потпуно подударање.

На пример, да бисте добили број продаје за дати артикал (Г1) у одређеном месецу (Г2), формула је :

=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))

Где су Б2:Д8 ћелије са подацима искључујући заглавља редова и колона, А2:А8 је листа ставки, а Б1:Д1 су називи месеци.

КСМАТЦХ формула осетљива на велика и мала слова

Као што је већ поменуто, Екцел КСМАТЦХ функција је дизајном неосетљива на велика и мала слова. Да бисте га натерали да разликује велика и мала слова, користите КСМАТЦХ у комбинацији са функцијом ЕКСАЦТ:

МАТЦХ(ТРУЕ, ЕКСАЦТ( лоокуп_арраи , лоокуп_валуе ))

Да бисте претраживали у обрнути редослед од последњег ка првом:

МАТЦХ(ТРУЕ, ЕКСАЦТ( лоокуп_арраи , лоокуп_валуе ), 0, -1)

Следећи пример показује ова генеричка формула у акцији. Претпоставимо да имате листу ИД-ова производа који разликују велика и мала слова у Б2:Б11. Ви тражите данаћи релативни положај ставке у Е1. Формула која разликује велика и мала слова у Е2 је једноставна као ова:

=XMATCH(TRUE, EXACT(B2:B11, E1))

Како ова формула функционише:

Функција ЕКСАЦТ упоређује вредност тражења са сваком ставком у низу претраживања. Ако су упоређене вредности потпуно једнаке, укључујући велика и мала слова, функција враћа ТРУЕ, ФАЛСЕ у супротном. Овај низ логичких вредности (где ТРУЕ представљају тачна подударања) иде у аргумент лоокуп_арраи аргумента КСМАТЦХ. А пошто је вредност тражења ТРУЕ, функција КСМАТЦХ враћа позицију првог пронађеног тачног подударања или последњег тачног подударања, у зависности од тога како сте конфигурисали аргумент моде_претраге .

КСМАТЦХ вс. МАТЦХ у Екцел

КСМАТЦХ је дизајниран као моћнија и свестранија замена за МАТЦХ, тако да ове две функције имају много заједничког. Међутим, постоје суштинске разлике.

Различито подразумевано понашање

Функција МАТЦХ подразумевано је потпуно подударање или следећа најмања ставка ( матцх_типе постављена на 1 или изостављена).

Функција КСМАТЦХ подразумевано има тачно подударање ( матцх_моде постављено на 0 или изостављено).

Другачије понашање за приближно подударање

Када је матцх_моде / матцх_типе аргумент је подешен на 1:

  • МАТЦХ тражи тачно подударање или следеће најмање. Захтева да се низ за тражење сортира у растућем редоследу.
  • КСМАТЦХ тражи тачно

Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.