
Všeobecný vzorec
=LOOKUP(2,1/(ISNUMBER(FIND(filename,range))),range)
Zhrnutie
Na vyhľadanie najnovšej verzie súboru v zozname môžete použiť vzorec založený na funkcii LOOKUP spolu s funkciami ISNUMBER a FIND. V zobrazenom príklade je vzorec v bunke G7:
=LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files)
kde „súbory“ je pomenovaný rozsah B5: B11.
Kontext
V tomto príklade máme niekoľko verzií súborov uvedených v tabuľke s dátumom a menom používateľa. Upozorňujeme, že názvy súborov sa opakujú s počítadlom na konci ako číslom revízie - 001, 002, 003 atď.
Vzhľadom na názov súboru chceme získať názov poslednej alebo najnovšej verzie. Existujú dve výzvy:
- Výzvou sú kódy verzií na konci názvov súborov, ktoré sťažujú zhodu názvu súboru.
- V predvolenom nastavení vráti vzorce zhody Excel prvú zhodu, nie poslednú zhodu.
Na prekonanie týchto výziev musíme použiť niektoré zložité techniky.
Vysvetlenie
Tento vzorec využíva funkciu LOOKUP na vyhľadanie a získanie posledného zhodného názvu súboru. Hodnota vyhľadávania je 2 a vyhľadávací_vektor sa vytvorí pomocou tohto:
1/(ISNUMBER(FIND(G6,files)))
Vo vnútri tohto úryvku funkcia FIND vyhľadáva hodnotu v G6 vo vnútri pomenovaného rozsahu „súbory“ (B5: B11). Výsledkom je pole ako je toto:
(1;#VALUE!;1;1;#VALUE!;#VALUE!;1)
Číslo 1 tu predstavuje zhodu a chyba #HODNOTA predstavuje nezhodný názov súboru. Toto pole vstupuje do funkcie ISNUMBER a vychádza takto:
(TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;TRUE)
Chybové hodnoty sú teraz FALSE a číslo 1 je teraz TRUE. Toto prekoná výzvu č. 1, teraz máme pole, ktoré jasne ukazuje, ktoré súbory v zozname obsahujú požadovaný názov súboru.
Ďalej sa pole použije ako menovateľ a 1 ako čitateľ. Výsledok vyzerá takto:
(1;#DIV/0!;1;1;#DIV/0!;#DIV/0!;1)
ktorý ide do LOOKUPU ako vyhľadávací_vektor. Toto je zložité riešenie výzvy č. 2. Funkcia LOOKUP funguje iba v režime približnej zhody a automaticky ignoruje chybové hodnoty. To znamená, že s 2 ako vyhľadávacou hodnotou sa VLOOKUP pokúsi nájsť 2, zlyhá a vráti sa k predchádzajúcemu číslu (v tomto prípade sa zhoduje s posledným 1 na pozícii 7). Nakoniec, LOOKUP použije 7 ako index na získanie 7. súboru v zozname súborov.
Spracovanie prázdnych vyhľadávaní
Zvláštne je, že funkcia FIND vráti 1, ak je vyhľadávacou hodnotou prázdny reťazec („“). Aby ste sa vyhli nesprávnej zhode, môžete vzorec zabaliť do IF a otestovať prázdne vyhľadávanie:
=IF(G6"",LOOKUP(2,1/(ISNUMBER(FIND(G6,files))),files),"")