Turinys
Šioje pamokoje nagrinėsime, kaip kartu naudoti IFERROR ir VLOOKUP funkcijas įvairioms klaidoms gaudyti ir tvarkyti. Be to, sužinosite, kaip "Excel" programoje atlikti nuoseklias vlookup funkcijas, įterpiant kelias IFERROR funkcijas vieną į kitą.
"Excel" VLOOKUP ir IFERROR - šias dvi funkcijas gali būti gana sunku suprasti atskirai, o ką jau kalbėti apie tai, kai jos sujungiamos. Šiame straipsnyje rasite keletą lengvai suprantamų pavyzdžių, kuriuose aptariami dažniausi naudojimo būdai ir aiškiai iliustruojama formulių logika.
Jei neturite daug patirties su IFERROR ir VLOOKUP funkcijomis, pirmiausia vertėtų peržiūrėti jų pagrindus, pasinaudojus pirmiau pateiktomis nuorodomis.
IFERROR VLOOKUP formulė, skirta #N/A ir kitoms klaidoms tvarkyti
Kai "Excel Vlookup" nepavyksta rasti paieškos reikšmės, išmetama #N/A klaida, pvz., tokia:
Priklausomai nuo verslo poreikių, klaidą galite užmaskuoti savo tekstu, nuliu arba tuščiu langeliu.
1 pavyzdys. IFERROR su VLOOKUP formule klaidoms pakeisti savo tekstu
Jei norite standartinį klaidos užrašą pakeisti savo pasirinktiniu tekstu, VLOOKUP formulę įrašykite į IFERROR, o į 2-ąjį argumentą įrašykite bet kokį tekstą ( value_if_error ), pavyzdžiui, "Nerastas":
IFERROR(VLOOKUP( ... ), "Nerastas")Kai paieškos vertė yra B2 pagrindinėje lentelėje ir paieškos diapazonas A2:B4 paieškos lentelėje, formulė įgauna tokią formą:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Nerastas")
Toliau pateiktoje ekrano nuotraukoje parodyta mūsų "Excel" IFERROR VLOOKUP formulė:
Rezultatas atrodo daug suprantamesnis ir ne toks bauginantis, ar ne?
Panašiai galite naudoti INDEX MATCH kartu su IFERROR:
=IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")
Formulė IFERROR INDEX MATCH ypač naudinga, kai norite ištraukti reikšmes iš stulpelio, esančio į kairę nuo paieškos stulpelio (kairioji paieška), ir grąžinti savo tekstą, kai nieko nerandama.
2 pavyzdys. IFERROR su VLOOKUP, kad būtų grąžinama tuščia arba 0, jei nieko nerasta
Jei nenorite nieko rodyti, kai nerandama paieškos reikšmė, tegul IFERROR rodo tuščia eilutė (""):
IFERROR(VLOOKUP( ... ),"")Mūsų pavyzdyje formulė yra tokia:
=IFERROR(VLOOKUP(B2,'Paieškos lentelė'!$A$2:$B$5, 2, FALSE), "")
Kaip matote, jis nieko negrąžina, kai paieškos reikšmės nėra paieškos sąraše.
Jei norite klaidą pakeisti klaida nulinė vertė , į paskutinį argumentą įrašykite 0:
=IFERROR(VLOOKUP(B2,'Paieškos lentelė'!$A$2:$B$5, 2, FALSE), 0)
Atsargiai! "Excel" funkcija IFERROR fiksuoja visas klaidas, ne tik #N/A. Ar tai gerai, ar blogai? Viskas priklauso nuo jūsų tikslo. Jei norite užmaskuoti visas galimas klaidas, IFERROR Vlookup yra tinkamas būdas. Tačiau daugelyje situacijų tai gali būti neprotingas metodas.
Pavyzdžiui, jei sukūrėte pavadintą lentelės duomenų intervalą ir Vlookup formulėje neteisingai parašėte tą pavadinimą, IFERROR užfiksuos klaidą #NAME? ir pakeis ją į "Nerastas" arba bet kokį kitą jūsų pateiktą tekstą. Todėl galite niekada nesužinoti, kad jūsų formulė pateikia neteisingus rezultatus, nebent patys pastebėsite rašybos klaidą. Tokiu atveju tikslingiau būtų gaudyti tik #N/A klaidas.Šiuo tikslu "Excel 2013" ir naujesnėse versijose naudokite IFNA VLOOKUP formulę, o visose "Excel" versijose - IF ISNA VLOOKUP.
Svarbiausia: būkite labai atsargūs rinkdamiesi VLOOKUP formulės palydovą :)
Lizdas IFERROR per VLOOKUP, kad visada ką nors rastumėte
Įsivaizduokite tokią situaciją: ieškote konkrečios reikšmės sąraše ir jos nerandate. Kokias galimybes turite? Arba gauti N/A klaidą, arba rodyti savo pranešimą. Tiesą sakant, yra ir trečioji galimybė - jei jūsų pirminis vlookup suklumpa, tada ieškokite ko nors kito, kas tikrai yra!
Tęsdami pavyzdį, sukurkime naudotojams skirtą prietaisų skydelį, kuriame būtų rodomas konkretaus biuro vidinis numeris. Kažkas panašaus:
Taigi, kaip iš B stulpelio ištraukti plėtinį pagal D2 esantį biuro numerį? Naudojant šią įprastą Vlookup formulę:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
Ir tai puikiai veiks, jei vartotojai įves galiojantį numerį D2. Bet ką daryti, jei vartotojas įves numerį, kuris neegzistuoja? Tokiu atveju leiskite jam paskambinti į centrinį biurą! Šiuo tikslu pirmiau pateiktą formulę įterpkite į vertė argumentą IFERROR ir įveskite kitą Vlookup į value_if_error argumentas.
Visa formulė yra šiek tiek ilga, tačiau ji puikiai veikia:
=IFERROR(VLOOKUP("biuras"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("centrinis biuras",$A$2:$B$7,2,FALSE))
Jei biuro numeris randamas, naudotojas gauna atitinkamą vidinį numerį:
Jei biuro numerio nerandama, rodomas centrinio biuro vidinis numeris:
Kad formulė būtų šiek tiek kompaktiškesnė, galite naudoti kitą metodą:
Pirmiausia patikrinkite, ar D2 skaičius yra paieškos stulpelyje (atkreipkite dėmesį, kad nustatėme col_index_num į 1, kad formulė ieškotų ir grąžintų A stulpelio vertę): VLOOKUP(D2,$A$2:$B$7,1,FALSE)
Jei nurodyto biuro numerio nerandame, tada ieškome eilutės "centrinis biuras", kuri neabejotinai yra paieškos sąraše. Tam pirmąją VLOOKUP funkciją apvyniojame IFERROR ir visą šią kombinaciją įterpiame į kitą VLOOKUP funkciją:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "centrinis biuras"),$A$2:$B$7,2)
Na, šiek tiek kitokia formulė, bet rezultatas tas pats:
Bet kodėl reikia ieškoti "centrinis biuras", galite manęs paklausti. Kodėl nepateikus vidinio numerio tiesiogiai IFERROR? Nes vidinis numeris gali pasikeisti kada nors ateityje. Jei taip atsitiktų, turėsite atnaujinti duomenis tik vieną kartą pradinėje lentelėje, nesirūpindami dėl kiekvienos savo VLOOKUP formulės atnaujinimo.
Kaip atlikti nuosekliuosius VLOOKUP veiksmus programoje "Excel
Tais atvejais, kai reikia atlikti vadinamąjį nuoseklusis arba prikabinta Vlookups "Excel" programoje, priklausomai nuo to, ar ankstesnė paieška buvo sėkminga, ar ne, įkelkite dvi ar daugiau funkcijų IFERROR, kad paleistumėte savo Vlookups po vieną:
IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Nerastas"))))Formulė veikia pagal tokią logiką:
Jei pirmasis VLOOKUP nieko neranda, pirmasis IFERROR užfiksuoja klaidą ir paleidžia kitą VLOOKUP. Jei antrasis VLOOKUP nepavyksta, antrasis IFERROR užfiksuoja klaidą ir paleidžia trečiąjį VLOOKUP ir t. t. Jei visi VLOOKUP suklumpa, paskutinis IFERROR grąžina jūsų pranešimą.
Ši įterpta IFERROR formulė ypač naudinga, kai reikia Vlookup per keli lapai kaip parodyta toliau pateiktame pavyzdyje.
Tarkime, trijuose skirtinguose darbalapiuose turite tris vienodų duomenų sąrašus (šiame pavyzdyje - biuro numerius) ir norite gauti tam tikro numerio plėtinį.
Darant prielaidą, kad paieškos reikšmė yra dabartinio lapo ląstelėje A2, o paieškos diapazonas yra A2:B5 trijuose skirtinguose darbalapiuose (šiauriniame, pietiniame ir vakariniame), ši formulė veikia puikiai:
=IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE), "Nerastas"))))
Taigi, mūsų "grandininės Vlookups" formulė ieško trijuose skirtinguose lapuose tokia tvarka, kokia juos įterpėme į formulę, ir pateikia pirmą rastą atitikmenį:
Štai kaip "Excel" programoje naudoti IFERROR su VLOOKUP. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!
Galimi atsisiuntimai
"Excel" IFERROR VLOOKUP formulės pavyzdžiai