Formula Excel: Căutați ultima versiune de fișier -

Formula generică

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

rezumat

Pentru a căuta cea mai recentă versiune de fișier dintr-o listă, puteți utiliza o formulă bazată pe funcția CĂUTARE împreună cu funcțiile ISNUMBER și FIND. În exemplul prezentat, formula din celula G7 este:

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

unde „fișiere” este intervalul numit B5: B11.

Context

În acest exemplu, avem o serie de versiuni de fișiere listate într-un tabel cu o dată și un nume de utilizator. Rețineți că numele fișierelor se repetă cu un contor la sfârșit ca număr de revizuire - 001, 002, 003 etc.

Având un nume de fișier, dorim să preluăm numele ultimei sau ultimei revizuiri. Există două provocări:

  1. Provocarea este că codurile de versiune de la sfârșitul numelor de fișiere fac mai dificilă potrivirea cu numele fișierului.
  2. În mod implicit, formulele de potrivire Excel vor returna primul meci, nu ultimul meci.

Pentru a depăși aceste provocări, trebuie să folosim câteva tehnici dificile.

Explicaţie

Această formulă folosește funcția CĂUTARE pentru a găsi și a prelua ultimul nume de fișier care se potrivește. Valoarea căutării este 2, iar căutarea_vector este creată cu aceasta:

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

În interiorul acestui fragment, funcția FIND caută valoarea în G6 în intervalul numit „fișiere” (B5: B11). Rezultatul este o matrice ca aceasta:

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

Aici, numărul 1 reprezintă o potrivire, iar eroarea #VALUE reprezintă un nume de fișier care nu se potrivește. Această matrice intră în funcția ISNUMBER și apare astfel:

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

Valorile de eroare sunt acum FALSE, iar numărul 1 este acum ADEVĂRAT. Acest lucru depășește provocarea nr. 1, acum avem o matrice care arată clar care fișiere din listă conțin numele fișierului de interes.

Apoi, matricea este utilizată ca numitor cu 1 ca numărător. Rezultatul arată astfel:

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

care intră în căutare ca vectorul de căutare. Aceasta este o soluție dificilă pentru provocarea nr. 2. Funcția LOOKUP funcționează numai în modul de potrivire aproximativ și ignoră automat valorile erorilor. Aceasta înseamnă că 2 ca valoare de căutare, VLOOKUP va încerca să găsească 2, să nu reușească și să revină la numărul precedent (în acest caz se potrivește cu ultimul 1 în poziția 7). În cele din urmă, LOOKUP folosește 7 ca un index pentru a recupera al 7-lea fișier din lista de fișiere.

Gestionarea căutărilor necompletate

În mod ciudat, funcția FIND returnează 1 dacă valoarea de căutare este un șir gol (""). Pentru a vă proteja împotriva unei potriviri false, puteți înfășura formula în IF și puteți testa o căutare goală:

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

Articole interesante...