VBA INDEX MATCH на аснове некалькіх крытэрыяў у Excel (3 метады)

  • Падзяліцца Гэтым
Hugh West

Калі ў нас ёсць вялікі аб'ём даных, часам бывае цяжка атрымаць якія-небудзь канкрэтныя даныя з набору даных. Разам з функцыямі 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 . Я спадзяюся, што гэты артыкул быў для вас вельмі карысным. Не саромейцеся задаваць любыя пытанні па тэме.

Х'ю Уэст з'яўляецца вельмі дасведчаным трэнерам і аналітыкам Excel з больш чым 10-гадовым вопытам работы ў галіны. Ён мае ступень бакалаўра ў галіне бухгалтарскага ўліку і фінансаў і ступень магістра дзелавога адміністравання. Х'ю захапляецца навучаннем і распрацаваў унікальны падыход да навучання, які лёгка прытрымлівацца і зразумець. Яго экспертныя веды Excel дапамаглі тысячам студэнтаў і спецыялістаў па ўсім свеце палепшыць свае навыкі і атрымаць поспех у сваёй кар'еры. Праз свой блог Х'ю дзеліцца сваімі ведамі з усім светам, прапаноўваючы бясплатныя падручнікі па Excel і онлайн-трэнінгі, каб дапамагчы прыватным асобам і прадпрыемствам цалкам раскрыць свой патэнцыял.