Excel formula: Meklēt pēdējo faila versiju

Vispārēja formula

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

Kopsavilkums

Lai sarakstā meklētu jaunāko faila versiju, varat izmantot formulu, kuras pamatā ir funkcija LOOKUP kopā ar funkcijām ISNUMBER un FIND. Parādītajā piemērā formula šūnā G7 ir:

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

kur "faili" ir nosauktais diapazons B5: B11.

Konteksts

Šajā piemērā mums ir vairākas failu versijas, kas norādītas tabulā ar datumu un lietotāja vārdu. Ņemiet vērā, ka failu nosaukumi tiek atkārtoti ar skaitītāju beigās kā pārskatīšanas numurs - 001, 002, 003 utt.

Ņemot vērā faila nosaukumu, mēs vēlamies izgūt pēdējās vai pēdējās pārskatītās versijas nosaukumu. Ir divi izaicinājumi:

  1. Izaicinājums ir failu nosaukumu beigās esošie versiju kodi, kas apgrūtina faila nosaukuma saskaņošanu.
  2. Pēc noklusējuma Excel atbilstības formulas atgriezīs pirmo, nevis pēdējo.

Lai pārvarētu šīs problēmas, mums jāizmanto daži viltīgi paņēmieni.

Paskaidrojums

Šī formula izmanto funkciju LOOKUP, lai atrastu un izgūtu pēdējo atbilstošo faila nosaukumu. Uzmeklēšanas vērtība ir 2, un uzmeklēšanas_vektors tiek izveidots ar šo:

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

Šī fragmenta iekšpusē funkcija FIND meklē vērtību G6 nosauktajā diapazonā "faili" (B5: B11). Rezultāts ir šāds masīvs:

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

Šeit skaitlis 1 apzīmē atbilstību, bet kļūda #VALUE norāda faila nosaukumu, kas neatbilst. Šis masīvs nonāk funkcijā ISNUMBER un iznāk šādi:

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

Kļūdu vērtības tagad ir FALSE, un skaitlis 1 tagad ir PATIESA. Tas pārvar izaicinājumu Nr. 1, tagad mums ir masīvs, kas skaidri parāda, kuri faili sarakstā satur interesējošo faila nosaukumu.

Pēc tam masīvs tiek izmantots kā saucējs ar 1 kā skaitītājs. Rezultāts izskatās šādi:

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

kas tiek izmantots LOOKUP kā uzmeklēšanas_vektors. Tas ir grūts risinājums, lai izaicinātu 2. vietu. Funkcija LOOKUP darbojas tikai aptuvenajā spēles režīmā un automātiski ignorē kļūdu vērtības. Tas nozīmē, ka ar 2 kā uzmeklēšanas vērtību VLOOKUP mēģinās atrast 2, neizdoties un atgriezties pie iepriekšējā numura (šajā gadījumā atbilstot pēdējam 1 7. pozīcijā). Visbeidzot, LOOKUP izmanto 7 kā indeksu, lai izgūtu 7. failu failu sarakstā.

Apstrāde ar tukšiem uzmeklējumiem

Dīvainā kārtā funkcija FIND atgriež 1, ja uzmeklēšanas vērtība ir tukša virkne (""). Lai pasargātu no viltus sakritības, formulu varat ietvert IF un pārbaudīt, vai uzmeklēšana ir tukša:

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

Interesanti raksti...