Excel-formel: Slå opp siste filversjon -

Generisk formel

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

Sammendrag

For å slå opp den siste filversjonen i en liste, kan du bruke en formel basert på LOOKUP-funksjonen sammen med ISNUMBER og FIND-funksjonene. I eksemplet vist er formelen i celle G7:

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

hvor "filer" er det navngitte området B5: B11.

Kontekst

I dette eksemplet har vi en rekke filversjoner oppført i en tabell med dato og brukernavn. Merk at filnavn gjentas med en teller på slutten som revisjonsnummer - 001, 002, 003, etc.

Gitt et filnavn, vil vi hente navnet på den siste eller siste revisjonen. Det er to utfordringer:

  1. Utfordringen er at versjonskodene på slutten av filnavnene gjør det vanskeligere å matche filnavnet.
  2. Som standard returnerer Excel-matchformler den første kampen, ikke den siste kampen.

For å overvinne disse utfordringene, må vi bruke noen vanskelige teknikker.

Forklaring

Denne formelen bruker LOOKUP-funksjonen til å finne og hente det sist samsvarende filnavnet. Oppslagsverdien er 2, og oppslagsvektoren er opprettet med dette:

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

Inne i dette utdraget, FINN-funksjonen ser etter verdien i G6 inne i det nevnte området "filer" (B5: B11). Resultatet er en matrise som dette:

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

Her representerer tallet 1 et treff, og feilen #VALUE representerer et filnavn som ikke samsvarer. Denne matrisen går inn i ISNUMBER-funksjonen og kommer ut slik:

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

Feilverdier er nå FALSE, og tallet 1 er nå SANT. Dette overvinner utfordring nr. 1, vi har nå en matrise som viser tydelig hvilke filer i listen som inneholder filnavnet som er av interesse.

Deretter brukes matrisen som nevner med 1 som teller. Resultatet ser slik ut:

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

som går inn på LOOKUP som lookup_vector. Dette er en vanskelig løsning for å utfordre nr. 2. LOOKUP-funksjonen fungerer bare i omtrentlig kampmodus og ignorerer automatisk feilverdier. Dette betyr at med 2 som oppslagsverdi, vil VLOOKUP prøve å finne 2, mislykkes og gå tilbake til forrige nummer (i dette tilfellet samsvarer med den siste 1 i posisjon 7). Til slutt bruker LOOKUP 7 som en indeks for å hente den 7. filen i listen over filer.

Håndtering av blanke oppslag

Merkelig nok, returnerer FINN-funksjonen 1 hvis oppslagsverdien er en tom streng (""). For å beskytte deg mot en falsk kamp, ​​kan du pakke inn formelen i IF og teste for en tom oppslag:

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

Interessante artikler...