A hozzád hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A Vlookup az Excel alapvető funkciója, és az adatfeldolgozás létfontosságú részévé vált. Biztosít néhány olyan funkciót, amelyet általában egy teljes körű adatbázishoz társíthat.

De mi van, ha automatizálni szeretné ezt a funkciót? Igen, ez lehetséges, különösen, ha tudja, hogyan kell használni az Excel natív automatizálási nyelvét, a VBA-t. Így automatizálhatja a vlookup funkciót az Excel VBA-ban.

A Vlookup szintaxisa

A vlookup függvény szintaxisa meglehetősen egyszerű, de négy szempontra kell összpontosítania, még akkor is, ha az Excel VBA-ban automatizálja.

=vlookup (keresési_érték, keresési_tömb, oszlopindex, pontos egyezés/részleges egyezés)

A függvény argumentumainak jelentése a következő:

  • lookup_value: Ez az elsődleges érték, amelyet meg szeretne keresni a keresési tömbből.
  • lookup_array: Ez a forrásadat, amelyet a lookup_value referenciaként fog használni.
  • instagram viewer
  • oszlop_index: Oszlop, amelyből visszaadja az értéket.
  • pontos_egyezés/részleges_egyezés: Használja a 0-t vagy az 1-et az egyezés típusának meghatározásához.

Adatok előkészítése

Ez az adatkészlet két részből áll: egy keresési táblázatból és a cél adatpontokból.

A keresési táblázat három oszlopból áll, amelyekben adatok töltik fel az Alkategória és a Terméknév mezőket:

A céltáblázatban vannak egyező oszlopok, alkategória vagy terméknév adatok nélkül. Ne feledje, hogy a Rendelési azonosító oszlopában lévő értékek a keresőtábla ugyanabban az oszlopában is megtalálhatók:

A Vlookup közvetlen használata Excel-táblázatban

A céloszlopok (B és C) kitöltéséhez megteheti használja az Excel vlookup funkcióját.

A cellában B2, írja be a következő képletet:

=VLOOKUP($A2, $F$3:$H$17, 2, 0)

Hasonlóképpen a cellában C2, írja be ezt a képletet:

=VLOOKUP($A2, $F$3:$H$17, 3, 0)

A képletet lefelé húzhatja a B2 cellából az oszlop végéig, a B17-ig. Ismételje meg ezt a folyamatot a C oszlopra is. Az egyes következő bejegyzések értékei automatikusan frissülnek mindkét oszlopban.

A vlookup függvénynek átadott értékek a következők:

  • A2: A keresési érték ebben a cellában található.
  • F3:H17: Ez a keresési tartományból áll.
  • 2/3: Azok a referenciaoszlopok, amelyekből az értéket le kell kérni.
  • 0: Pontos egyezést jelöl.

Az Excel VBA Vlookup funkciója

A vlookup funkciónak sok hasonlósága van, akár közvetlenül Excelben, akár VBA-n keresztül használja. Akár adatsorokkal foglalkozó adatelemző, akár rendszeresen új termékekkel foglalkozó készletmenedzser, a vlookup előnyeit élvezheti.

Amikor dinamikus keresési tartományt használ, mindig a legjobb, ha automatizálja a képleteket, hogy elkerülje a képletek ismételt alkalmazását az Excelben. A Vlookup funkció automatizálásával a VBA-ban egyetlen kattintással többoszlopos számításokat hajthat végre.

1. Hajtsa végre a szükséges beállítást

Kezdje a kódszerkesztő megnyitásával (nyomja meg a Alt + F11 vagy navigáljon a Fejlesztő lapon) egy új Excel-munkafüzetben, és adjon hozzá egy modult a kód írásának megkezdéséhez. A kódszerkesztőben adja hozzá a következő sorokat a kódolóablak tetejéhez egy alrutin létrehozásához:

 Sub vlookup_fn1()End Sub

Az alrutin a VBA-kód tárolója, és elengedhetetlen a sikeres futtatáshoz. Alternatíva az hozzon létre egy VBA felhasználói űrlapot hogy interaktívabbá tegye a felhasználói felületet.

2. Deklarálja változóit, és hozza létre a referenciatartományait

Először is deklarálnia kell a változó adattípusokat a Homályos nyilatkozat:

 Dim i egész számként, utolsó sor hosszú

Ezután hozzon létre a utolsó sor változó, a keresési tartományon belüli utolsó kitöltött sor értékének tárolásához. Az utolsósor függvény a vége (xldown) függvény a végsor hivatkozásának kiszámításához a megadott tartományon belül.

Ebben az esetben a lastrow változó tárolja a keresési tartomány utoljára kitöltött sorértékét,17.

 lastrow = Lapok("Lap2").Tartomány("F3").End (xlDown).Sor

A fenti példában a céltábla innen terjed ki A2:C17, míg a forrástábla innen terjed ki F2:H17. A vlookup képlet végigfut minden, az A oszlopban tárolt értéken, megkeresi a forrástáblázatban, és beilleszti a megfelelő bejegyzéseket a B és C oszlopokba.

Mielőtt azonban a ciklusra ugorna, el kell tárolnia a tartomány értékeit egy új változóban (my_range), alábbiak szerint:

 my_range = Lapok("Lap2").Tartomány("F3:H" & utolsó sor)

Explicit módon meg kell határoznia a kezdő cella hivatkozást (F3) és az utolsó oszlop hivatkozása (H). A VBA automatikusan hozzáfűzi a sor értékét a keresési tömb befejezéséhez.

3. Írjon egy hurkot az egyes keresési értékek áthaladásához

A ciklus írása előtt adja meg a kezdősor értékét, 2. A ciklus kezdőértékének meghatározása elengedhetetlen, mivel dinamikus elemekkel foglalkozik. A céltáblázatban a 2. sor az adatok első sora. Módosítsa ezt az értéket, ha az adatok egy másik sorban kezdődnek.

 i = 2

Használhatja a csinálni, miközben hurok az egyes sorok feldolgozásához, a 2. sortól kezdve és a 17. sorig. A kód többi részéhez hasonlóan ez a szempont dinamikus; a ciklus addig fut, amíg a feltétel hamis lesz. A feltétel segítségével ellenőrizze, hogy az aktuális sor első cellájában van-e nem üres érték.

 Do While len (Sheets("Sheet2").Cells (i, 1).érték) <> 0

A hurkon belül meghívhatja a VLookup függvényt a cellák feltöltéséhez:

 Sheets("Sheet2").Cellák (i, 2).Érték = _ Alkalmazás. MunkalapFunkció. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Érték, saját_tartomány, 2, False) Sheets("Sheet2").Cellák (i, 3).Érték = _ Alkalmazás. MunkalapFunkció. VLookup (Sheets("Sheet2") _ .Cells (i, 1). Value, my_range, 3, False)

Ezek az utasítások az aktuális sor celláinak értékét állítják be, a 2. és 3. oszlopban. Használják a MunkalapFunkció kifogást hívni a VLookup függvényt, átadva a megfelelő értéket az 1. oszlopból a kereséshez. Ezenkívül átadják a korábban meghatározott tartományt és a vonatkozó oszlop indexét, amelyből lekérik a végső értéket.

A vlookup kód készen áll, de továbbra is növelnie kell a sorváltozót minden alkalommal a ciklus körül:

 i = i + 1

Minden alkalommal, amikor a hurok fut, növeli az értékét én által 1. Ne feledje, hogy a kezdősor értéke 2, és a növekedés minden alkalommal megtörténik, amikor a ciklus fut. Használja a hurok kulcsszó a ciklus kódblokkjának végének beállításához.

A teljes kód futtatásakor a forrástábla értékei alapján mindkét oszlopban feltölti az eredményeket.

Íme a teljes kód referenciaként:

 Sub vlookup_fn1() Dim i As Integer lastrow = Sheets("Sheet2").Tartomány("F3").End (xlDown).Row my_range = Sheets("Sheet2").Tartomány("F3:H" & utolsó sor) i = 2 Do While Len (Sheets("Lap2").Cellák (i, 1).Érték) <> 0 Hiba esetén Folytatás a következő lapok("Sheet2").Cellák (i, 2).Érték = _ Alkalmazás. MunkalapFunkció. VLookup (Sheets("Sheet2") _ .Cells (i, 1).Érték, saját_tartomány, 2, False) Sheets("Sheet2").Cellák (i, 3).Érték = _ Alkalmazás. MunkalapFunkció. VLookup (Sheets("Sheet2") _ .Cells (i, 1). Value, my_range, 3, False) i = i + 1 LoopEnd Sub

4. Hozzon létre egy gombot a kód futtatásához

Ha a kód nincs útban, létrehozhat egy gombot az Excel-munkafüzetben, amely egyetlen kattintással futtatható. Szúrja be a kívánt alakzatot egy üres Excel lapra, kattintson rá jobb gombbal, majd kattintson a ikonra Makró hozzárendelése választási lehetőség.

A párbeszédpanelen válassza ki az alrutin nevét, majd kattintson a gombra rendben.

Ha futtatni szeretné a kódot, kattintson a gombra, hogy megtekinthesse, hogyan jelennek meg azonnal az adatok.

Az Excel VBA használata a keresési funkciók automatizálására

Az Excel VBA egy rugalmas nyelv, amely jól hangolt az automatizálás megkönnyítésére az MS Excel különböző oldalain belül. Az MS Excel VBA-ban számos lehetőség létezik, az Excel-funkciók automatizálásától a bonyolult pivot táblák automatikus létrehozásáig.

Amikor különböző Excel-szegmensekkel dolgozik, különféle lehetőségekkel kísérletezhet, hogy megkönnyítse és hatékonyabbá tegye életét.