Excel képlet: Gyorsabb VLOOKUP 2 VLOOKUPS-tal -

Tartalomjegyzék

Általános képlet

=IF(VLOOKUP(id,data,1,TRUE)=id, VLOOKUP(id,data,col,TRUE), NA())

Összegzés

Nagy adatkészletek esetén a pontos egyezésű VLOOKUP fájdalmasan lassú lehet, de a VLOOKUP gyors megvilágítását két VLOOKUPS használatával végezheti el, az alábbiakban leírtak szerint.

Megjegyzések:

  1. Ha kisebb adathalmaz van, akkor ez a megközelítés túlzott. Csak akkor használja nagy adathalmazokkal, ha a sebesség valóban számít.
  2. A trükk működéséhez az adatokat a keresési érték szerint kell rendezni.
  3. Ez a példa megnevezett tartományokat használ. Ha nem nevezett tartományokat akar használni, akkor ehelyett abszolút referenciákat használjon.

A pontos egyezésű VLOOKUP lassú

Ha a VLOOKUP-ot "pontos egyezési módban" használja nagy adatkészleten, akkor ez valóban lelassíthatja a munkalap munkájának számítási idejét. Mondjuk 50 000 vagy 100 000 rekord esetén a számítás perceket vehet igénybe.

A pontos egyezést úgy állítja be, hogy negyedik argumentumként a FALSE vagy a null értéket adja meg:

=VLOOKUP(val,data,col,FALSE)

A VLOOKUP ebben a módban azért lassú, mert minden adatot meg kell vizsgálnia az adatkészletben, amíg egyezést nem talál. Ezt néha lineáris keresésnek nevezik.

A hozzávetőleges meccsű VLOOKUP nagyon gyors

Hozzávetőleges mérkőzés módban a VLOOKUP rendkívül gyors. A hozzávetőleges egyezésű VLOOKUP használatához az első oszlop (a keresési oszlop) szerint kell rendezni adatait, majd meg kell adnia az IGAZ értéket a 4. argumentumhoz:

=VLOOKUP(val,data,col,TRUE)

(A VLOOKUP alapértelmezés szerint igaz, ami ijesztő alapértelmezés, de ez egy másik történet).

Nagyon nagy adatsorok esetén a hozzávetőleges egyezésű VLOOKUP-ra váltás drámai sebességnövekedést jelenthet.

Szóval, nincs értelme, igaz? Csak rendezze az adatokat, használjon hozzávetőleges egyezést, és kész.

Nem olyan gyorsan (heh).

A "közelítő egyezés" módban a VLOOKUP problémája a következő: A VLOOKUP nem jelenít meg hibát, ha a keresési érték nem létezik. Rosszabb esetben az eredmény teljesen normálisnak tűnhet, annak ellenére, hogy teljesen helytelen (lásd a példákat). Nem olyasmi, amit meg akar magyarázni a főnökének.

A megoldás az, hogy kétszer használjuk a VLOOKUP-ot, mindkét alkalommal hozzávetőleges módban:

=IF(VLOOKUP(id,data,1,TRUE)=id, VLOOKUP(id,data,col,TRUE), NA())

Magyarázat

A VLOOKUP első példánya egyszerűen megkeresi a keresési értéket (az ebben a példában szereplő azonosítót ):

=IF(VLOOKUP(id,data,1,TRUE)=id

és csak akkor adja vissza az IGAZ értéket, ha a keresési érték megtalálható. Ebben az esetben
a képlet ismét hozzávetőleges módban futtatja a VLOOKUP-ot, hogy lekérdezzen egy értéket a táblából:

VLOOKUP(id,data,col,TRUE)

Nincs veszélye annak, hogy hiányzik a keresési érték, mivel a képlet első része már ellenőrizte, hogy ott van-e.

Ha a keresési érték nem található, akkor az IF függvény "value if FALSE" része fut, és tetszőleges értéket visszaadhat. Ebben a példában NA () -t használunk, # N / A hibát adunk vissza, de küldhet olyan üzenetet is, mint "Hiányzó" vagy "Nem található".

Ne feledje: az adatokat keresési érték szerint kell rendezni, hogy ez a trükk működhessen.

Jó linkek

Miért jobb 2 VLOOKUPS, mint 1 VLOOKUP (Charles Williams)

érdekes cikkek...