Exceli valem: otsige viimast failiversiooni -

Üldine valem

=LOOKUP(2,1/(ISNUMBER(FIND(filename,range))),range)

Kokkuvõte

Viimase failiversiooni loendist otsimiseks võite kasutada funktsiooni LOOKUP põhist valemit koos funktsioonidega ISNUMBER ja FIND. Näidatud näites on lahtris G7 valem:

=LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files)

kus "failid" on nimega vahemik B5: B11.

Sisu

Selles näites on meil tabelis loetletud arv failiversioone koos kuupäeva ja kasutajanimega. Pange tähele, et failinimesid korratakse loenduriga revisjoninumbrina - 001, 002, 003 jne.

Faili nime puhul soovime hankida viimase või viimase redaktsiooni nime. On kaks väljakutset:

  1. Väljakutse on failinimede lõpus olevad versioonikoodid, mis raskendavad failinime sobitamist.
  2. Vaikimisi tagastavad Exceli vastevalemid esimese, mitte viimase vaste.

Nendest väljakutsetest ülesaamiseks peame kasutama mõnda keerukat tehnikat.

Selgitus

See valem kasutab funktsiooni LOOKUP viimase sobiva failinime leidmiseks ja hankimiseks. Otsingu väärtus on 2 ja otsingu_vektor luuakse sellega:

1/(ISNUMBER(FIND(G6,files)))

Selle fragmendi sees otsib funktsioon FIND väärtust G6 nimega vahemikus "failid" (B5: B11). Tulemuseks on selline massiiv:

(1;#VALUE!;1;1;#VALUE!;#VALUE!;1)

Siin tähistab number 1 vastet ja viga #VALUE tähistab mittevastavat failinime. See massiiv läheb funktsiooni ISNUMBER ja tuleb välja järgmiselt:

(TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)

Vea väärtused on nüüd FALSE ja number 1 on nüüd TRUE. See ületab väljakutse nr 1, meil on nüüd massiiv, mis näitab selgelt, millised loendis olevad failid sisaldavad huvipakkuvat failinime.

Järgmisena kasutatakse massiivi nimetajana, lugejana 1. Tulemus näeb välja selline:

(1;#DIV/0!;1;1;#DIV/0!;#DIV/0!;1)

mis läheb otsingu_vektorina LOOKUP-i. See on keeruline lahendus väljakutse nr 2 esitamiseks. Funktsioon LOOKUP töötab ainult ligikaudses sobitusrežiimis ja ignoreerib automaatselt vea väärtusi. See tähendab, et kui otsingu väärtus on 2, proovib VLOOKUP leida 2, ebaõnnestuda ja minna tagasi eelmisele numbrile (sobitades sel juhul viimase 1 positsiooni 7). Lõpuks kasutab LOOKUP failide loendis seitsmenda faili otsimiseks 7 nagu indeksit.

Tühjade otsingute käitlemine

Kummalisel juhul tagastab funktsioon FIND 1, kui otsingu väärtus on tühi string (""). Vale vaste vältimiseks võite valemi sisestada IF-i ja testida tühja otsingu olemasolu:

=IF(G6"",LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files),"")

Huvitavad Artiklid...