ПОСТАВУВАЊЕ НА VBA ИНДЕКС врз основа на повеќе критериуми во 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 .

Погоре ја имаме базата на податоци што ќе ја следи оваа статија. Имаме Име на студент , Студентски ID, и Испитни оценки на секој студент во базата на податоци. Ќе извлечеме одреден резултат што се наоѓа во една колона врз основа на условите од другите две колони.

Критериуми – 1: Вградете VBA со INDEX MATCH за повеќекратно (дво) димензионално пребарување во Excel

Разгледајте ја следната слика. Зачувавме име на одреден ученик „ Edge“ во ЌелијаG4 ; а колоната во која ќе го бараме Резултатот , Ознаки од испитот , е зачувана во Ќелија G5 . Ќе бараме во колоната Ознаки за испити и ќе ги складираме Ознаките што ги доби „ Edge“ во Cell G6 .

Чекорите за пребарување резултираат во дводимензионална низа со INDEX и MATCH во Excel со VBA се дадени подолу.

Чекори:

  • На почетокот, притиснете Alt + F11 на тастатурата или одете на јазичето Програмер -> Visual Basic за да се отвори Visual Basic Editor .

  • Следно, во скокачкиот прозорец со код, од лента со мени, кликнете Вметни -> Модул .

  • Потоа, копирајте следниов код и залепете го во кодот прозорец.
4227

Вашиот код сега е подготвен за извршување.

  • Сега, притиснете F5 на вашиот тастатура или од лентата со мени изберете Изврши -> Стартувај Sub/UserForm . Можете исто така само да кликнете на малата икона Run во лентата под-мени за да го извршите макрото.

По извршувањето на кодот, погледнете го GIF подолу за да го видите резултатот.

Како резултат на тоа, Marks што „ Edge“ ги доби во испит, 67 , е преземен во Ќелија G7 .

Објаснување на VBA код

2438

Дефинирање на променливата на Работен лист.

5643

Зачувајте го името на работниот лист. Името на нашиот лист е „Две димензии“, треба да го наведетеимето според вашата табела.

3985

Овој дел од кодот го избира опсегот C5:D14 како опсег на пребарување. Потоа побарајте го совпаѓањето што е зачувано во ќелијата G4 во опсегот B5:B14 и побарајте го совпаѓањето што е зачувано во ќелијата G5 во опсегот C4:D4 и префрлете го резултатот во ќелијата G6 .

Прочитајте повеќе: Како да користите INDEX MATCH со повеќе критериуми за опсег на датуми

Критериуми – 2: Примени макро за да ја пронајдете вредноста на MATCH по INDEX со функција дефинирана од корисникот (UDF)

Можете да извлечете соодветни вредности од базата на податоци со функција дефинирана од корисникот (UDF) . Од следнава слика, она што ќе го направиме е, ќе ги положиме Студентскиот ID и Испитните оценки на одреден студент и функцијата ќе ни го фрли Име на тој конкретен ученик.

Ајде да видиме како да го постигнеме тоа за Името на студентот „Фин“ со VBA .

Чекори:

  • Како што е прикажано претходно, отворете го Visual Basic Editor од картичката Developer и Вметнете Модул во прозорецот со код.
  • Потоа, во прозорецот со код, копирајте следниов код и залепете го .
7638

  • Не пуштај овој код, зачувај го.
  • Сега, вратете се на работниот лист од интерес. Изберете која било ќелија што сакате да го зачувате резултатот. Во нашиот случај, тоа е Ќелија F5 .
  • Во таа ќелија, напишете го UDF виештотуку создадовте во кодот ( MatchByIndex ) и положивте студентски ID и оценки за испит на конкретниот студент во заградите на функцијата.

Како што ние се обидуваме да го извлечеме името „ Фин“ од неговите ID (105) и Ознаки (84) , така што за нашиот случај формулата станува,

=MatchByIndex(105,84)

  • Потоа, притиснете Enter .

Погледнете ја следнава слика.

Во Cell F5 , успешно го вративме името „ Finn“ со едноставно предавање на неговите ID и ознаки во функцијата што ја создадовме во кодот VBA .

Објаснување на VBA кодот

6323

Креирање нова функција и пренесување на променливите во неа. Можете да дефинирате кое било име на функцијата.

7405

Нашиот ред започнува од редот број 4. Мора да го наведете бројот на редот од кој започнува вашата база на податоци.

9920

Дефинирање на променливите.

5590

Прво, дефинирајте го работниот лист со кој ќе работите. Името на нашиот лист е „UDF“, треба да го наведете името според вашата табела. Потоа започнете со пребарување во опсегот C:D од првиот ред што го дефиниравме до последниот ред.

1689

Започнете со повторување од првиот ред до последниот ред. Ако првата вредност што ќе ја пренесеме во функцијата падне во колоната C и ако втората вредност што ќе ја пренесеме во функцијата падне во колоната D , тогаш ќе се врати насе совпаѓаат од колоната B . Во спротивно, излезете од функцијата, завршете ги сите изјави и одете на следната линија.

8768

Ако претходниот услов не се исполни при извршувањето, тогаш пораката „Податоците не се пронајдени“ ќе се врати и кодот ќе ја напушти функцијата.

Прочитај повеќе: INDEX-MATCH со повеќе критериуми за делумен текст во Excel (2 начини)

Критериуми – 3: Имплементирајте VBA за да ја вратите вредноста на MATCH од табела со повеќе податоци во Excel

Во овој дел, ќе научиме како да вратиме усогласена вредност со индексите од табелата во MsgBox во VBA Excel.

Ајде да видиме како да ги извлечеме Ознаките од табелата прикажана во нашата база на податоци ( T Име на може: TableMatch ) на одреден ученик со обезбедување на Име и ID во кодот. За нашиот случај, Име и ID ќе бидат соодветно Finn и 105 .

Чекори :

  • Прво, отворете Visual Basic Editor од картичката Developer и Вметнете Модул во прозорецот со код.
  • Потоа, копирајте следниов код и залепете го во прозорецот со код.
7124

Вашиот код сега е подготвен за извршување.

  • Подоцна, Изврши овој код и погледнете ја следната слика за да видите што се случило како резултат.

Како што можете да видите од горната слика, постои Microsoft Excel pop-до полето за пораки што ви ги прикажува Ознаките: 84 од ID: 105 и Име: Финецот што ги наведовме во кодот.

Објаснување на VBA кодот

1638

Дефинирање на променливите.

3844

Поставување на името на листот и името на табелата во променливите.

9649

Зачувување вредностите за пребарување и колоните за пребарување за пребарување.

5775

Овој дел од кодот го скенира од почетокот до крајот на подлогата и ако најде совпаѓање со дефинираниот ID и Името во колоните за пребарување, тогаш зачувајте го резултатот и затворете ги сите изјави. Исто така, излезете од повторувањето и одете на следниот дел од кодот.

6551

Го фрла резултатот во MsgBox.

Прочитајте повеќе: Пребарување и враќање Повеќе вредности споени во една ќелија во Excel

Заклучок

За да заклучиме, овој напис ви покажа 3 различни методи за тоа како да извршите INDEX MATCH врз основа на повеќе критериуми во Excel со VBA макро . Се надевам дека овој напис беше многу корисен за вас. Слободно поставувајте какви било прашања во врска со темата.

Хју Вест е високо искусен тренер и аналитичар на Excel со повеќе од 10 години искуство во индустријата. Има диплома за сметководство и финансии и магистер по бизнис администрација. Хју има страст за предавање и има развиено уникатен пристап на наставата кој е лесен за следење и разбирање. Неговото стручно познавање на Excel им помогна на илјадници студенти и професионалци ширум светот да ги подобрат своите вештини и да се истакнат во нивните кариери. Преку својот блог, Хју го споделува своето знаење со светот, нудејќи бесплатни упатства за Excel и онлајн обука за да им помогне на поединците и бизнисите да го достигнат својот целосен потенцијал.