Мазмұны
Оқулық Excel VLOOKUP регистрін есепке алу жолын түсіндіреді, мәтін регистрін ажырататын бірнеше басқа формулаларды көрсетеді және әрбір функцияның күшті жақтары мен шектеулерін көрсетеді.
Менің ойымша, әрбір Excel пайдаланушысы Excel бағдарламасында тік іздеуді қандай функция орындайтынын біледі. Дұрыс, бұл VLOOKUP. Дегенмен, өте аз адамдар Excel бағдарламасының VLOOKUP функциясының регистрді ескермейтінін біледі, яғни ол кіші және ҮЛКЕН әріптерді бірдей таңбалар ретінде қарастырады.
Міне, VLOOKUP функциясының мәтін регистрін ажырата алмайтынын көрсететін жылдам мысал. А2 ұяшығында «шот» және А4 ұяшығында «шот» бар делік. Төмендегі формула "шотты" ұстайды, себебі ол іздеу массивінде бірінші болып келеді және B2-ден сәйкес мәнді қайтарады.
=VLOOKUP("Bill", A2:B4, 2, FALSE)
Осыдан әрі қарай. мақалада мен сізге VLOOKUP регистріне сезімтал ету жолын көрсетемін. Сондай-ақ Excel бағдарламасында регистрді ескере отырып сәйкестендіруді жүзеге асыратын бірнеше басқа функцияларды зерттейміз.
Регистрді ескеретін VLOOKUP формуласы
Жоғарыда айтылғандай, әдеттегі VLOOKUP формуласы әріп жағдайын танымайды. Дегенмен, төмендегі мысалда көрсетілгендей Excel VLOOKUP регистрін ескеретін әдіс бар.
Сізде А бағанында элемент идентификаторлары бар және элементтің бағасы мен түсініктемесін алғыңыз келеді делік. B және C бағандарынан. Мәселе мынада, идентификаторлар кіші әріптерді де, бас әріптерді де қамтиды. Мысалы, A4 (001Tvci3u) және A5 (001Tvci3U) мәндері тек келесіде ерекшеленеді:соңғы таңба, тиісінше, "u" және "U".
"001Tvci3 U " деп іздеген кезде, стандартты VLOOKUP формуласы "001Tvci3 u" мәнімен байланысты $90 шығарады. », себебі ол іздеу массивінде «001Tvci3 U » алдында келеді. Бірақ бұл сіз қалаған нәрсе емес, солай емес пе?
=VLOOKUP(F2, A2:C7, 2, FALSE)
Excel бағдарламасында регистрді ескере отырып іздеуді орындау үшін біз VLOOKUP, CHOOSE және EXACT әрекеттерін біріктіреміз. функциялары:
VLOOKUP(ШЫН, ТАҢДАУ({1,2}, НАҚ( іздеу_мәні, іздеу_жиымы), қайтару_массив), 2, 0)Бұл жалпы формула барлық жағдайларда тамаша жұмыс істейді. Сіз тіпті оңнан солға деп іздеуге болады, бұл әдеттегі VLOOKUP формуласы жасай алмайтын нәрсені. Осы қарапайым және талғампаз шешімді ұсынғаны үшін Пурияға алғыс айтамыз!
Біздің жағдайда нақты формулалар келесідей болады.
Бағаны F3-те шығару үшін:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), B2:B7), 2, FALSE)
Пікірді алу үшін F4:
=VLOOKUP(TRUE, CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7), 2, FALSE)
Ескертпе. Excel 365-тен басқа барлық Excel нұсқаларында бұл тек массив формуласы ретінде жұмыс істейді, сондықтан оны дұрыс аяқтау үшін Ctrl + Shift + Enter пернелер тіркесімін басуды ұмытпаңыз. Excel 365 жүйесінде динамикалық массивтерді қолдаудың арқасында ол әдеттегі формула ретінде де жұмыс істейді.
Бұл формула қалай жұмыс істейді:
Тапсырманы орындайтын негізгі бөлік - кірістірілген EXACT бар CHOOSE формуласы:
CHOOSE({1,2}, EXACT(F2, A2:A7), C2:C7)
Мұнда, EXACT функциясы F2 мәнін A2:A7 ішіндегі әрбір мәнмен салыстырады және егер олар әріп регистрін қоса алғанда, дәл бірдей болса, TRUE мәнін қайтарады,ЖАЛҒАН, әйтпесе:
{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}
ТАҢДАУ индекс_саны аргументі үшін {1,2} жиым тұрақтысын қолданамыз. Нәтижесінде функция жоғарыдағы массивтің логикалық мәндерін және C2:C7 мәндерін екі өлшемді массивке келесідей біріктіреді:
{FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}
VLOOKUP функциясы оны сол жерден алады. және 2 өлшемді массивтің 1-бағанында (логикалық мәндермен көрсетілген) іздеу мәнін (ол TRUE) іздейді және 2-бағаннан сәйкестікті қайтарады, бұл біз іздеп отырған баға:
VLOOKUP(TRUE, {FALSE,155;FALSE,186;FALSE,90;TRUE,54;FALSE,159;FALSE,28}, 2, 0)
Регистрді ескеретін XLOOKUP формуласы
Microsoft 365 жазылушылары Excel бағдарламасында тіпті қарапайым формуламен регистрді ескере отырып іздеуді орындай алады. Өздеріңіз болжап отырғандай, мен VLOOKUP функциясының неғұрлым қуатты мұрагері – XLOOKUP функциясы туралы айтып отырмын.
XLOOKUP іздеу және қайтару массивтерімен бөлек жұмыс істейтіндіктен, бізге алдыңғы нұсқадағы екі өлшемді массив трюктері қажет емес. мысал. Жай ғана іздеу_жиымы аргументі үшін EXACT пайдаланыңыз:
XLOOKUP(ШЫН, НАҚ( іздеу_мәні , қарау_мәні ), қарау_жиымы , " Табылған жоқ")Соңғы аргумент («Табылмады») міндетті емес. Ол тек сәйкестік табылмаса, қандай мән қайтарылатынын анықтайды. Оны өткізіп жіберсеңіз, формула ешнәрсе таппаған жағдайда стандартты #N/A қатесі қайтарылады.
Біздің үлгі кесте үшін бұл пайдалану үшін регистрді ескеретін XLOOKUP формулалары болып табылады.
F3 ішіндегі бағаны алу үшін:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), B2:B7, "Not found")
Шығару үшінтүсініктеме F4:
=XLOOKUP(TRUE, EXACT(F2, A2:A7), C2:C7, "Not found")
Бұл формула қалай жұмыс істейді:
Алдыңғы мысалдағыдай, EXACT қайтарады ШЫН және ЖАЛҒАН мәндер жиымы, мұнда TRUE регистрді ескеретін сәйкестіктерді көрсетеді. XLOOKUP жоғарыдағы массивтен TRUE мәнін іздейді және қайтару_массивінен сәйкестікті қайтарады. Іздеу бағанында екі немесе одан да көп бірдей мәндер болса (әріп регистрін қоса), формула бірінші табылған сәйкестікті қайтаратынын ескеріңіз.
XLOOKUP шектеуі : тек қол жетімді Excel 365 және Excel 2021 нұсқаларында.
ҚЫСТЫҚ - сәйкес сандарды қайтару үшін регистрді ескере отырып іздеу
Тақырыптан түсінгеніңіздей, SUMPRODUCT регистрді ескере отырып іздеуді жүзеге асыра алатын тағы бір Excel функциясы болып табылады. , бірақ ол тек сандық мәндерді қайтара алады. Егер бұл сіздің жағдайыңыз болмаса, барлық деректер түрлеріне арналған шешімді қамтамасыз ететін INDEX MATCH мысалына өтіңіз.
Сіз білетіндей, Excel-дің ҚОРЫНДЫСЫ көрсетілген массивтердегі құрамдастарды көбейтеді және өнімдердің қосындысын қайтарады. Біз регистрді ескере отырып іздеуді қажет ететіндіктен, бірінші массивті алу үшін EXACT функциясын қолданамыз:
=SUMPRODUCT((EXACT(A2:A7,F2) * (B2:B7)))
Өкінішке орай, SUMPRODUCT функциясы мәтін сәйкестігін қайтара алмайды, өйткені мәтін мәндерін көбейту мүмкін емес. Бұл жағдайда сіз #МӘН аласыз! төмендегі скриншоттағы F4 ұяшығындағы қате:
Бұл формула қалай жұмыс істейді:
VLOOKUP мысалындағы сияқты, НАҚ функцияны тексередіF2 мәнін A2:A7 ішіндегі барлық мәндермен салыстырады және регистрді ескеретін сәйкестіктер үшін АҚИҚА мәнін береді, әйтпесе ЖАЛҒАН мәнін қайтарады:
SUMPRODUCT(({FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}*{155;186;90;54;159;28}))
Көптеген формулаларда Excel бағдарламасы ШЫНДЫҚ мәнін 1-ге дейін және FALSE мәнін 0-ге дейін бағалайды. Сонымен, SUMPRODUCT екі массивтің элементтерін бірдей орындарда көбейткенде, барлық сәйкес келмейтіндер (ЖАЛҒАН) нөлге айналады:
SUMPRODUCT({0;0;0;54;0;0})
Нәтижесінде формула келесіден санды қайтарады. А бағанындағы нақты регистрді ескеретін сәйкестікке сәйкес B бағаны.
SUMPRODUCT шектеуі : тек сандық мәндерді қайтара алады.
INDEX MATCH - регистрді ескере отырып іздеу барлық деректер түрлері
Соңында, біз барлық Excel нұсқаларында және барлық деректер жиындарында жұмыс істейтін шектеусіз регистрді ескеретін іздеу формуласын алуға жақын қалдық.
Бұл мысал тек себебі ғана емес, соңғы болып келеді. ең жақсысы соңғы үшін сақталады, сонымен қатар алдыңғы мысалдарда алған біліміңіз регистрді ескеретін MATCH INDEX формуласын жақсырақ түсінуге көмектесетіндіктен.
INDEX және MATCH функцияларының тіркесімі жиі пайдаланылады. Мыс cel VLOOKUP-ке икемді және жан-жақты балама ретінде. Келесі мақала жақсы жұмыс істейді (үміттенемін :) осы екі функцияның қалай жұмыс істейтінін түсіндіреді - VLOOKUP орнына INDEX MATCH пайдалану.
Мұнда мен сізге негізгі ойларды еске саламын:
- MATCH функциясы көрсетілген іздеу массивіндегі іздеу мәнін іздейді және оның салыстырмалы орнын қайтарады.
- СалыстырмалыІздеу мәнінің орны тікелей INDEX функциясының жол_саны аргументіне өтіп, оған сол жолдан мәнді қайтаруды тапсырады.
Формула мәтін регистрін тану үшін жай ғана қажет классикалық INDEX MATCH комбинациясына тағы бір функция қосу керек. Әлбетте, сізге тағы EXACT функциясы қажет:
INDEX( қайтару_массив , MATCH(TRUE, EXACT( іздеу_мәні , іздеу_массив ), 0))F3-тегі нақты формула:
=INDEX(B2:B7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
F4-те біз мынаны қолданамыз:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Ол тек келесідей жұмыс істейтінін есте сақтаңыз. Excel 365-тен басқа барлық нұсқалардағы массив формуласы, сондықтан оны Ctrl + Shift + Enter пернелерін бірге басу арқылы енгізуді ұмытпаңыз. Дұрыс орындалса, формула төмендегі скриншотта көрсетілгендей ирек жақшаға алынады:
Бұл формула қалай жұмыс істейді:
Алдыңғы барлық мысалдардағы сияқты, EXACT F2 мәніндегі мәнге дәл сәйкес келетін A2:A7 ішіндегі әрбір мән үшін TRUE мәнін қайтарады. Біз TRUE мәнін MATCH параметрінің іздеу_мәні үшін пайдаланатындықтан, ол нақты регистрді ескеретін сәйкестіктің салыстырмалы орнын қайтарады, дәл осы INDEX үшін B2:B7 сәйкестігін қайтару қажет.
Регистрді ескеретін кеңейтілген іздеу формуласы
Жоғарыда аталған INDEX MATCH формуласы тамаша көрінеді, солай емес пе? Бірақ іс жүзінде олай емес. Неге екенін көрсетейін.
Іздеу мәніне сәйкес келетін қайтару бағанындағы ұяшық бос делік. Формула нені қайтарады? Ештеңе.Ал енді оның шын мәнінде не қайтаратынын көрейік:
=INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0))
Ой, формула нөлді қайтарады! Мүмкін, бұл тек мәтіндік мәндермен жұмыс істегенде маңызды емес. Дегенмен, жұмыс парағында сандар болса және олардың кейбіреулері нақты нөлдер болса, бұл мәселе.
Шындығында, бұрын талқыланған барлық басқа іздеу формулалары бірдей әрекет етеді. Бірақ енді сіз мінсіз формуланы алғыңыз келеді, солай емес пе?
Регистрді ескеретін INDEX MATCH формуласын мінсіз ету үшін оны қайтару ұяшығының бос екенін тексеретін және ештеңені қайтармайтын IF функциясына орап аласыз. бұл жағдай:
=IF(INDIRECT("C"&(1+MATCH(TRUE,EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "")
Жоғарыда келтірілген формулада:
- "C" - қайтару бағанасы.
- "1" - сан бұл MATCH функциясы қайтарған ұяшықтың салыстырмалы орнын нақты ұяшық мекенжайына айналдырады.
Мысалы, MATCH функциямыздағы іздеу массиві бұл A2:A7, яғни A2 ұяшығының салыстырмалы орны «1», себебі бұл массивтің бірінші ұяшығы. Бірақ шын мәнінде іздеу массиві 2-жолдан басталады. Айырмашылықты өтеу үшін біз 1 қосамыз, осылайша INDIRECT функциясы оң ұяшықтан мәнді қайтарады.
Төмендегі скриншоттар жақсартылған регистрге сезімтал INDEX көрсетеді. MATCH формуласы әрекет етуде.
Егер қайтарылатын ұяшық бос болса, формула ештеңе шығармайды (бос жол):
Егер қайтарылатын ұяшықта нөл болса , формула 0 қайтарады:
Егер қаласаңызқайтару ұяшығы бос болғанда кейбір хабарламаны көрсету, IF соңғы аргументіндегі бос жолды («») кейбір мәтінмен ауыстырыңыз:
=IF(INDIRECT("C"&(1+MATCH(TRUE, EXACT(A2:A7, F2), 0)))"", INDEX(C2:C7, MATCH(TRUE, EXACT(A2:A7, F2), 0)), "There is nothing to return, sorry.")
Регистрді ескеретін VLOOKUP оңай жолды орындаңыз
Excelге арналған Ultimate Suite пайдаланушыларында үлкен және күрделі кестелерді оңай және стресссіз іздеуге мүмкіндік беретін арнайы құрал бар. Ең жақсысы, «Екі кестені біріктіру» параметрінің регистрді ескеретін опциясы бар және төмендегі мысал оны әрекетте көрсетеді.
Мөлшерін тартқыңыз келеді делік. Бірегей элемент идентификаторларына негізделген Іздеу кестесінен Негізгі кестеге:
Біріктіру кестелерін іске қосу. шеберін таңдап, мына қадамдарды орындаңыз:
- Жаңа деректер тартылатын негізгі кестені таңдаңыз.
- Жаңа деректерді іздейтін іздеу кестесін таңдаңыз.
- Бір немесе бірнеше негізгі бағандарды таңдаңыз (біздің жағдайда элемент идентификаторы). Сондай-ақ әріп-әріпті сәйкестендіру құсбелгісін қойыңыз.
Біраз уақыттан кейін сіз қалаған нәтижеге қол жеткізесіз :)
Міне, Excel бағдарламасында мәтін регистрін ескере отырып іздеу жолы. Оқығаныңыз үшін алғыс айтамын және келесі аптада блогымызда кездесеміз деп үміттенемін!
Жүктеп алуға арналған жұмыс кітабы
Регізгі регистрді ескеретін VLOOKUP мысалдары (.xlsx файлы)