Excel VBA Funcție de potrivire

Funcția de potrivire VBA caută poziția sau numărul de rând al valorii de căutare în tabelul, adică în tabelul excel excelent. De exemplu, VLOOKUP, HLOOKUP, MATCH, INDEX, etc. Acestea sunt funcțiile de căutare care sunt mai importante decât altele. Cu regret, nu avem aceleași funcții disponibile în VBA pentru a facilita lucrurile. Cu toate acestea, putem utiliza aceste funcții ca funcții ale foii de lucru sub scriptul VBA pentru a ne face viața mai ușoară.

Astăzi, suntem pe cale să învățăm funcția MATCH care poate fi folosită ca funcție de foaie de lucru sub VBA.

VBA Match are aceeași utilizare ca formula de meci din Excel. Această funcție din MS Excel VBA găsește o potrivire într-un tablou cu referire la valoarea de căutare și îi imprimă poziția. Această funcție devine utilă atunci când trebuie să evaluați datele pe baza anumitor valori. De exemplu, VBA MATCH este util dacă aveți datele salariale ale angajaților și trebuie să aflați poziția numerică a unui angajat în datele dvs. care are un salariu mai mic / mai mare decât / este egal cu o anumită valoare. Este cu adevărat util în analiza datelor și, de asemenea, o linie de cod poate automatiza lucrurile pentru dvs.

Sintaxa funcției de potrivire în Excel VBA

VBA Match are următoarea sintaxă:

Unde,

  • Arg1 - Lookup_value - Valoarea de care aveți nevoie pentru a căuta într-un tablou dat.
  • Arg2 - Lookup_array - o serie de rânduri și coloane care conțin o valoare posibilă Lookup.
  • Arg3 - Match_type - Tipul de potrivire care ia valoarea -1, 0 sau 1.

Dacă match_type = -1 înseamnă că funcția MATCH va afla cea mai mică valoare care este mai mare sau egală cu valoarea de căutare. Pentru ca acest lucru să se întâmple, search_array trebuie sortat în ordine descrescătoare.

Dacă match_type = 0 înseamnă că funcția MATCH va afla valoarea care este exact aceeași cu cea a valorii de căutare.

Dacă match_type = +1 înseamnă că funcția MATCH va afla cea mai mare valoare care este mai mică sau egală cu valoarea de căutare. Pentru ca acest lucru să se întâmple, search_array trebuie să fie sortat în ordine crescătoare. Valoarea implicită pentru tipul de potrivire este +1.

Cum se utilizează funcția de potrivire Excel VBA?

Vom învăța cum să utilizăm o funcție VBA Match Excel cu câteva exemple.

Puteți descărca acest șablon VBA Match Excel aici - Modelul VBA Match Excel

Funcția de potrivire VBA - Exemplul # 1

Să presupunem că avem date după cum se arată mai jos:

Trebuie să găsim cine din această listă are salariu de 30.000 € împreună cu poziția în Excel.

Deși în acest set de date putem configura manual acest lucru, vă rugăm să vă gândiți la o imagine mai largă, ce se întâmplă dacă aveți milioane de rânduri și coloane?

Urmați pașii de mai jos pentru a utiliza funcția MATCH în VBA.

Pasul 1: Definiți o sub-procedură dând un nume macro.

Cod:

 Sub exmatch1 () End Sub 

Pasul 2: Acum, dorim ca ieșirea noastră să fie stocată în celula E2. Prin urmare, începeți să scrieți codul ca Range („E2”). Valoare =

Aceasta definește intervalul de ieșire pentru rezultatul nostru.

Cod:

 Sub exmatch1 () Interval ("E2"). Valoare = Sub End 

Pasul 3: Folosiți WorksheetFunction pentru a putea utiliza funcțiile VBA.

Cod:

 Sub exmatch1 () Interval ("E2"). Valoare = Foaie de lucruFuncție finală Sub 

Pasul 4: WorksheetFunction are o varietate de funcții care pot fi accesate și utilizate sub VBA. După „WorksheetFunction”, puneți un punct (.) Și apoi veți putea accesa funcțiile. Alegeți funcția MATCH din lista verticală.

Cod:

 Sub exmatch1 () Interval ("E2"). Valoare = WorksheetFunction.Match End Sub 

Pasul 5: Acum, dați argumentele funcției MATCH. Ca Look__valor. Valoarea noastră de căutare este stocată în celula D2, așa cum se arată în imaginea de mai jos. Îl puteți accesa sub funcția MATCH folosind funcția Range.

Cod:

 Sub exmatch1 () Interval ("E2"). Valoare = WorksheetFunction.Match (Range ("D2"). Value, Sub End 

Pasul 6: Al doilea argument este Lookup_array. Acesta este intervalul tabelului în care doriți să aflați poziția Lookup_value. În cazul nostru, este (B1: B11). Furnizați acest tablou folosind funcția Range.

Cod:

 Sub exmatch1 () Interval ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("B1: B11"), End Sub 

Pasul 7: Ultimul argument pentru rezolvarea acestui cod este Match_type. Am vrut să avem o potrivire exactă pentru Lookup_value în intervalul dat> Prin urmare, dați Zero (0) ca argument de potrivire.

Cod:

 Sub exmatch1 () Interval ("E2"). Valoare = WorksheetFunction.Match (Range ("D2"). Value, Range ("B1: B11"), 0) End Sub 

Pasul 8: Rulați acest cod apăsând butonul F5 sau Run și vedeți ieșirea.

Puteți vedea în celula E2, există o valoare numerică (6) care arată poziția valorii din celula D2 până la intervalul B1: B11.

Exemplul # 2 - Funcția de potrivire VBA cu bucle

Este ușor când aveți o singură valoare de căutat în întregul interval. Dar ce se întâmplă dacă trebuie să verificați poziția pentru un număr de celule? Ar fi dur pentru o persoană care se adaugă să-i ceară să scrie codurile separate pentru fiecare celulă.

În astfel de cazuri, funcția MATCH poate fi utilizată cu bucla (în special Pentru bucla în cazul nostru). Consultați pașii următori pentru a vă face o idee despre cum folosim funcția MATCH cu bucla.

Pasul 1: Definiți o subprocedură dând un nume macro.

Cod:

 Sub Exemplu2 () End Sub 

Pasul 2: Definiți un număr întreg care poate păstra valoarea pentru mai multe celule din buclă.

Cod:

 Sub Exemplu2 () Dim i Ca Subdiferent Întreg 

Pasul 3: Utilizați Pentru bucla de pe întregul număr pentru a utiliza diferitele valori de căutare a căror poziție poate fi stocată în coloana E.

Cod:

 Sub Exemplu2 () Dim i Ca număr întreg pentru i = 2 până la 6 Sub 

Pasul 4: Acum, utilizăm aceeași metodă pe care am folosit-o în exemplul 1, doar în loc de Range, vom folosi funcția Cells și vom folosi un tablou bidimensional (Rânduri și coloane), în contrast cu primul exemplu.

Cod:

 Sub exemplu2 () Dim i ca număr întreg pentru i = 2 până la 6 celule (i, 5) .Value = WorksheetFunction.Match (Cells (i, 4) .Value, Range ("B2: B11"), 0) Next i End Sub 

Aici, Celulele (i, 5) .Valor = stochează valoarea pozițiilor rezultate în fiecare rând de la 2 la 6 (rândul i) în coloana E (coloana numărul 5). În funcție de potrivire, celulele (i, 4). Valorile verifică pentru fiecare valoare de căutare prezentă în rândul 2 până la 6 în coloana a 4- a . Această valoare de căutare a fost apoi căutată în Array B2: B11 în foaia excel unde datele sunt prezente și pozițiile relative pot fi stocate în fiecare rând al coloanei 5 (coloana E).

Pasul 5: Rulați acest cod apăsând simultan F5 sau butonul Run și vedeți rezultatul. Aproape că va scoate magia într-o bucată de cod cu o singură linie.

În acest articol, am aflat cum putem folosi funcția MATCH sub VBA ca un caz special al funcției de lucru.

Lucruri de amintit

  • Lookup_value poate fi număr / text / valoare logică sau poate fi o referință a celulelor la un număr, text sau valoare logică.
  • În mod implicit, Match_type poate fi considerat ca 1, dacă este omis / nu este menționat.
  • La fel ca funcția Excel MATCH, VBA MATCH oferă și poziția relativă a unei căutare_valoare sub Lookup_array și nu valoarea în sine.
  • Dacă nu se găsește o potrivire, o celulă excel excelentă va fi completată cu # N / A.
  • Dacă funcția MATCH este utilizată pe valorile Text, nu este în măsură să diferențieze între minuscule și minuscule. De exemplu, Lalit și lalit sunt aceleași. La fel și LALIT și lalit.
  • Caracterele wildcard pot fi utilizate dacă aflați potrivirea exactă (adică tipul de potrivire este zero). Asteriskul caracterelor wildcard (*) poate fi utilizat pentru a afla o serie de caractere. În timp ce un semn de întrebare (?) Poate fi utilizat pentru a afla un singur personaj.

Articole recomandate

Acesta este un ghid pentru funcția de meci VBA. Aici discutăm VBA Match și cum să utilizăm funcția Excel VBA Match împreună cu exemple practice și șablon Excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Ghid complet la VBA la eroare
  2. Cum se utilizează formatul VBA?
  3. VBA VLOOKUP Funcție cu exemple
  4. Crearea funcției VBA în Excel
  5. Funcție de potrivire Excel (exemple)

Categorie: