Змест
Калі ў нас ёсць вялікі аб'ём даных, часам бывае цяжка атрымаць якія-небудзь канкрэтныя даныя з набору даных. Разам з функцыямі INDEX і MATCH Excel можа атрымліваць любыя даныя, нават у велізарным наборы даных. Укараненне VBA з'яўляецца найбольш эфектыўным, хуткім і бяспечным метадам выканання любой аперацыі ў Excel. У гэтым артыкуле мы пакажам вам 3 розныя метады выканання INDEX MATCH на аснове некалькіх крытэраў у Excel з макрасам VBA .
Спампаваць Рабочы сшытак
Вы можаце спампаваць бясплатную трэніровачную кнігу Excel адсюль.
СУПАДЗЕННЕ ІНДЭКСА VBA на аснове некалькіх крытэрыяў.xlsm
3 метады з VBA INDEX MATCH на аснове некалькіх крытэрыяў у Excel
У наступных раздзелах мы пакажам вам, як выканаць INDEX MATCH на аснове некалькіх крытэрыяў для дыяпазону , для пэўнага выбару і для табліцы ў Excel з VBA .
Вышэй у нас ёсць набор дадзеных, які будзе прытрымлівацца гэтага артыкула. У нас ёсць імя студэнта , ідэнтыфікатар студэнта і экзаменацыйныя адзнакі кожнага студэнта ў наборы даных. Мы атрымаем пэўны вынік, які знаходзіцца ў адным слупку на падставе ўмоў з двух іншых слупкоў.
Крытэрый – 1: Убудаваць VBA з INDEX MATCH для шматмернага (двух) пошуку ў Excel
Разгледзьце наступны малюнак. Мы захавалі імя канкрэтнага студэнта « Edge» у CellG4 ; і слупок, у якім мы будзем шукаць Вынік , Адзнакі экзамену , захоўваецца ў Вочку G5 . Мы будзем шукаць у слупку Exam Marks і захоўваць Marks , якія « Edge» атрымаў у Cell G6 .
Крокі для пошуку прыводзяць да двухмернага масіва з INDEX і MATCH у Excel з VBA прыведзены ніжэй.
Крокі:
- У пачатку націсніце Alt + F11 на клавіятуры або перайдзіце да ўкладка Распрацоўшчык -> Visual Basic , каб адкрыць Рэдактар Visual Basic .
- Далей, ва ўсплываючым акне кода, з у радку меню націсніце Уставіць -> Модуль .
- Затым скапіруйце наступны код і ўстаўце яго ў код акно.
1280
Ваш код гатовы да запуску.
- Цяпер націсніце F5 на вашым з клавіятуры або ў радку меню абярыце Выканаць -> Запусціце Sub/UserForm . Вы таксама можаце проста націснуць на маленькі значок "Выканаць" у радку падменю, каб запусціць макрас.
Пасля выканання кода, паглядзіце на малюнак ніжэй, каб убачыць вынік.
У выніку Адзнакі , якія атрымаў “ Edge” у экзамен, 67 , здабываецца ў Cell G7 .
Тлумачэнне кода VBA
3825
Вызначэнне зменнай рабочага ліста.
5254
Захаваць назву працоўнага ліста. Назва нашага аркуша "Двухмернасць", вы павінны ўказацьімя ў адпаведнасці з вашай табліцай.
3198
Гэты фрагмент кода выбірае дыяпазон C5:D14 у якасці дыяпазону пошуку. Затым шукайце супадзенне, якое захоўваецца ў ячэйцы G4 у дыяпазоне B5:B14 , і шукайце супадзенне, якое захоўваецца ў ячэйцы G5 у дыяпазоне C4:D4 і перадайце вынік у ячэйку G6 .
Больш падрабязна: Як выкарыстоўваць INDEX MATCH з некалькімі крытэрыямі для дыяпазону дат
Крытэрый – 2: Прымяненне макраса для пошуку СУПАДАЧАННЯ значэння па INDEX з вызначанай карыстальнікам функцыяй (UDF)
Вы можаце атрымаць супадаючыя значэнні з набору даных з дапамогай вызначаная карыстальнікам функцыя (UDF) . На наступным малюнку мы збіраемся перадаць Ідэнтыфікатар студэнта і Адзнакі экзамену пэўнага студэнта, а функцыя выдасць нам Імя гэтага канкрэтнага студэнта.
Давайце паглядзім, як дасягнуць гэтага для Імя студэнта «Фін» з VBA .
Крокі:
- Як паказана раней, адкрыйце Рэдактар Visual Basic з укладкі Распрацоўшчык і Устаўце Модуль у акно кода.
- Затым у акне кода скапіруйце наступны код і ўстаўце яго.
6725
- Не запускайце гэты код, захавайце яго.
- Цяпер вярніцеся да працоўнага ліста , які вас цікавіць. Выберыце любую ячэйку , у якую вы хочаце захаваць вынік. У нашым выпадку гэта Ячэйка F5 .
- У гэтай ячэйцы напішыце UDF , які вытолькі што стварылі код ( MatchByIndex ) і перадайце ідэнтыфікатар студэнта і экзаменацыйныя адзнакі канкрэтнага студэнта ў круглых дужках функцыі.
Як мы спрабуем атрымаць імя « Фін» з яго ідэнтыфікатара (105) і знакаў (84) , так што для нашага выпадку формула становіцца
=MatchByIndex(105,84)
- Затым націсніце Enter .
Паглядзіце на наступны малюнак.
У ячэйцы F5 мы паспяхова здабылі імя « Фін» проста перадаўшы яго ID і Marks у функцыю, якую мы стварылі ў кодзе VBA .
Тлумачэнне кода VBA
2246
Стварэнне новай функцыі і перадача зменных унутры яе. Вы можаце вызначыць любое імя для функцыі.
6711
Наш радок пачынаецца з радка нумар 4. Вы павінны ўказаць нумар радка, з якога пачынаецца ваш набор даных.
2464
Вызначэнне зменных.
5164
Спачатку вызначце аркуш для працы. Назва нашага аркуша - "UDF", вы павінны ўказаць назву ў адпаведнасці з вашай табліцай. Затым пачніце пошук у дыяпазоне C:D ад першага радка, які мы вызначылі, да апошняга радка.
3481
Пачніце ітэрацыю ад першага радка да апошняга. Калі першае значэнне, якое мы перададзім у функцыю, знаходзіцца ў слупку C , а другое значэнне, якое мы перададзім у функцыю, знаходзіцца ў слупку D , то яно верне уадпаведнасць са слупка B . У адваротным выпадку выйдзіце з функцыі, завяршыце ўсе аператары і перайдзіце да наступнага радка.
7518
Калі папярэдняя ўмова не выконваецца падчас выканання, то вернецца паведамленне «Дадзеныя не знойдзены» і код пакіне функцыю.
Больш падрабязна: INDEX-MATCH з некалькімі крытэрыямі для частковага тэксту ў Excel (2 спосабы)
Крытэрый – 3: укараніць VBA для вяртання супадаючага значэння з табліцы з некалькімі данымі ў Excel
У гэтым раздзеле мы даведаемся, як вярнуць адпаведнае значэнне па індэксах з табліцы у MsgBox у VBA Excel.
Давайце паглядзім, як атрымаць Маркі з табліцы, паказанай у нашай набор даных ( T table Name: TableMatch ) пэўнага студэнта шляхам прадастаўлення Імя і ID у кодзе. У нашым выпадку Імя і ID будуць Finn і 105 адпаведна.
Крокі :
- Спачатку адкрыйце Рэдактар Visual Basic з укладкі Распрацоўшчык і Устаўце Модуль у акне кода.
- Затым скапіруйце наступны код і ўстаўце яго ў акно кода.
6694
Ваш код зараз гатовы да запуску.
- Пазней запусціце гэты код і паглядзіце на наступны малюнак, каб убачыць, што ў выніку атрымалася.
Як вы можаце бачыць на малюнку вышэй, ёсць Microsoft Excel усплывальныуверх у акне паведамлення, якое паказвае вам Маркі: 84 з ID: 105 і Імя: Фін , якія мы далі ў кодзе.
Тлумачэнне кода VBA
1143
Вызначэнне зменных.
9603
Устаноўка назвы аркуша і назвы табліцы ўнутры зменных.
8731
Захоўванне пошукавыя значэнні і пошукавыя слупкі для пошуку.
9753
Гэты фрагмент кода скануе ад пачатку да канца індэкса, і калі ён знаходзіць супадзенне вызначанага ID і Імя ў пошукавых слупках, то захаваць вынік і зачыніць усе заявы. Акрамя таго, выйдзіце з ітэрацыі і перайдзіце да наступнай часткі кода.
7714
Выкідвае вынік у MsgBox.
Больш падрабязна: Пошук і вяртанне Некалькі значэнняў, аб'яднаных у адну ячэйку ў Excel
Выснова
У заключэнне, гэты артыкул паказаў вам 3 розныя метады таго, як выканаць INDEX MATCH на аснове па некалькіх крытэрах у Excel з макрасам VBA . Я спадзяюся, што гэты артыкул быў для вас вельмі карысным. Не саромейцеся задаваць любыя пытанні па тэме.