
Generička formula
=LOOKUP(2,1/(ISNUMBER(FIND(filename,range))),range)
Sažetak
Za traženje najnovije verzije datoteke na popisu možete upotrijebiti formulu koja se temelji na funkciji LOOKUP zajedno s funkcijama ISNUMBER i FIND. U prikazanom primjeru formula u stanici G7 je:
=LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files)
gdje je "datoteke" imenovani raspon B5: B11.
Kontekst
U ovom primjeru imamo niz verzija datoteka navedenih u tablici s datumom i korisničkim imenom. Napominjemo da se nazivi datoteka ponavljaju s brojačem na kraju kao revizijski broj - 001, 002, 003 itd.
S obzirom na naziv datoteke, želimo dohvatiti ime posljednje ili najnovije revizije. Dva su izazova:
- Izazov su kodovi verzija na kraju naziva datoteka koji otežavaju podudaranje naziva datoteke.
- Prema zadanim postavkama, Excel podudarajuće formule vraćaju prvo podudaranje, a ne posljednje podudaranje.
Da bismo prevladali ove izazove, moramo se poslužiti nekim lukavim tehnikama.
Obrazloženje
Ova formula koristi funkciju LOOKUP za pronalaženje i dohvaćanje zadnjeg odgovarajućeg naziva datoteke. Vrijednost pretraživanja je 2, a lookup_vector se kreira s ovim:
1/(ISNUMBER(FIND(G6,files)))
Unutar ovog isječka, funkcija FIND traži vrijednost u G6 unutar imenovanog raspona "datoteke" (B5: B11). Rezultat je niz poput ovog:
(1;#VALUE!;1;1;#VALUE!;#VALUE!;1)
Ovdje broj 1 predstavlja podudaranje, a pogreška #VALUE predstavlja naziv datoteke koja se ne podudara. Ovaj niz ulazi u funkciju ISNUMBER i izlazi ovako:
(TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)
Vrijednosti pogrešaka sada su FALSE, a broj 1 sada je TRUE. Ovo je prevladalo izazov br. 1, sada imamo niz koji jasno pokazuje koje datoteke na popisu sadrže naziv datoteke koja vas zanima.
Dalje, niz se koristi kao nazivnik, a 1 kao brojnik. Rezultat izgleda ovako:
(1;#DIV/0!;1;1;#DIV/0!;#DIV/0!;1)
koji ulazi u LOOKUP kao lookup_vector. Ovo je lukavo rješenje za izazov br. 2. Funkcija LOOKUP radi samo u načinu približnog podudaranja i automatski zanemaruje vrijednosti pogreške. To znači da će s vrijednošću pretraživanja 2 VLOOKUP pokušati pronaći 2, neuspješno i vratiti se na prethodni broj (u ovom slučaju podudaranje s posljednjim 1 na položaju 7). Napokon, LOOKUP koristi 7 poput indeksa za dohvaćanje 7. datoteke s popisa datoteka.
Rukovanje praznim pretragama
Čudno, funkcija FIND vraća 1 ako je vrijednost pretraživanja prazan niz (""). Da biste se zaštitili od lažnog podudaranja, formulu možete umotati u IF i testirati na prazno traženje:
=IF(G6"",LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files),"")