Vzorec aplikace Excel: Vyhledání poslední verze souboru -

Obecný vzorec

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

souhrn

Chcete-li vyhledat nejnovější verzi souboru v seznamu, můžete použít vzorec založený na funkci VYHLEDAT společně s funkcemi ISNUMBER a FIND. V zobrazeném příkladu je vzorec v buňce G7:

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

kde „soubory“ je pojmenovaný rozsah B5: B11.

Kontext

V tomto příkladu máme několik verzí souborů uvedených v tabulce s datem a uživatelským jménem. Všimněte si, že názvy souborů se opakují s počitadlem na konci jako číslo revize - 001, 002, 003 atd.

Vzhledem k názvu souboru chceme načíst název poslední nebo poslední revize. Existují dvě výzvy:

  1. Úkolem jsou kódy verzí na konci názvů souborů, které znesnadňují shodu názvu souboru.
  2. Ve výchozím nastavení vrátí vzorce shody aplikace Excel první shodu, nikoli poslední shodu.

K překonání těchto výzev musíme použít některé záludné techniky.

Vysvětlení

Tento vzorec používá funkci VYHLEDAT k vyhledání a načtení posledního shodného názvu souboru. Hodnota vyhledávání je 2 a lookup_vector je vytvořen s tímto:

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

Uvnitř tohoto úryvku hledá funkce FIND hodnotu v G6 uvnitř pojmenovaného rozsahu „files“ (B5: B11). Výsledkem je pole jako toto:

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

Zde číslo 1 představuje shodu a chyba #HODNOTA představuje neodpovídající název souboru. Toto pole jde do funkce ISNUMBER a vypadá takto:

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

Chybové hodnoty jsou nyní NEPRAVDA a číslo 1 je nyní PRAVDA. To překonává výzvu č. 1, nyní máme pole, které jasně ukazuje, které soubory v seznamu obsahují požadovaný název souboru.

Dále se pole používá jako jmenovatel s 1 jako čitatelem. Výsledek vypadá takto:

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

který jde do LOOKUP jako lookup_vector. Toto je složité řešení výzvy č. 2. Funkce LOOKUP funguje pouze v režimu přibližné shody a automaticky ignoruje chybové hodnoty. To znamená, že s 2 jako vyhledávací hodnotou se VLOOKUP pokusí najít 2, selže a vrátí se k předchozímu číslu (v tomto případě odpovídá poslední 1 na pozici 7). Nakonec LOOKUP používá 7 jako index k načtení 7. souboru v seznamu souborů.

Zpracování prázdných vyhledávání

Kupodivu funkce FIND vrací 1, pokud je vyhledávací hodnotou prázdný řetězec (""). Chcete-li se chránit před falešnou shodou, můžete zabalit vzorec do IF a otestovat prázdné vyhledávání:

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

Zajímavé články...