Екцел формула: Претражи последњу верзију датотеке -

Генеричка формула

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

Резиме

Да бисте потражили најновију верзију датотеке на листи, можете користити формулу засновану на функцији ЛООКУП заједно са функцијама ИСНУМБЕР и ФИНД. У приказаном примеру, формула у ћелији Г7 је:

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

при чему је „датотеке“ именовани опсег Б5: Б11.

Контекст

У овом примеру имамо низ верзија датотека наведених у табели са датумом и корисничким именом. Имајте на уму да се имена датотека понављају са бројачем на крају као ревизијски број - 001, 002, 003 итд.

С обзиром на име датотеке, желимо да дохватимо име последње или најновије ревизије. Два су изазова:

  1. Изазов су кодови верзија на крају имена датотека који отежавају подударање назива датотеке.
  2. Подразумевано, Екцел формуле подударања враћају прво подударање, а не последње подударање.

Да бисмо превазишли ове изазове, морамо да користимо неке шкакљиве технике.

Објашњење

Ова формула користи функцију ЛООКУП за проналажење и проналажење последњег одговарајућег имена датотеке. Вредност претраживања је 2, а лоокуп_вецтор се креира са овим:

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

Унутар овог исечка, функција ФИНД тражи вредност у Г6 унутар именованог опсега „датотеке“ (Б5: Б11). Резултат је низ попут овог:

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

Овде број 1 представља подударање, а грешка #ВАЛУЕ представља име датотеке која се не подудара. Овај низ прелази у функцију ИСНУМБЕР и излази овако:

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

Вредности грешака су сада ФАЛСЕ, а број 1 је сада ТРУЕ. Ово превазилази изазов бр. 1, сада имамо низ који јасно показује које датотеке на листи садрже име датотеке која вас занима.

Даље, низ се користи као називник са 1 као бројилац. Резултат изгледа овако:

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

који улази у ЛООКУП као лоокуп_вецтор. Ово је лукаво решење за изазов бр. 2. Функција ЛООКУП ради само у режиму приближног подударања и аутоматски занемарује вредности грешака. То значи да ће са вредношћу 2 као вредност, ВЛООКУП покушати да пронађе 2, не успе и врати се на претходни број (у овом случају одговара последњем 1 на положају 7). Коначно, ЛООКУП користи 7 попут индекса да би преузео 7. датотеку са листе датотека.

Руковање празним претрагама

Чудно, функција ФИНД враћа 1 ако је вредност претраживања празан низ (""). Да бисте се заштитили од лажног поклапања, формулу можете умотати у ИФ и тестирати на празно тражење:

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

Занимљиви Чланци...