Excel-kaava: Hae viimeinen tiedostoversio -

Sisällysluettelo

Yleinen kaava

(=MAX(IF(ISERROR(SEARCH(H5&"*",files)),0,ROW(files)-ROW(INDEX(files,1,1))+1)))

Yhteenveto

Voit löytää taulukon viimeisen tiedostoversioiden sijainnin (rivin) käyttämällä kaavaa, joka perustuu useisiin Excel-funktioihin: MAX, IF, ISERROR, ROW ja INDEX.

Esitetyssä esimerkissä solun H6 kaava on:

(= MAKSIMI (JOS (VIRHE (HAKU (H5 & "*", tiedostot)), 0, RIVI (tiedostot) -NUOLI (HAKEMISTO (tiedostot, 1,1)) + 1)))

missä "tiedostot" on nimetty alue C4: C11.

Huomaa: tämä on matriisikaava ja se on syötettävä näppäimillä + + shift + enter.

Asiayhteys

Tässä esimerkissä taulukossa on useita tiedostoversioita, joissa on päivämäärä ja käyttäjänimi. Huomaa, että tiedostojen nimet toistuvat, lukuun ottamatta lopussa olevaa koodia, joka edustaa versiota ("CA", "CB", "CC", "CD" jne.).

Tietylle tiedostolle haluamme etsiä viimeisen version sijainnin (rivinumeron). Tämä on hankala ongelma, koska tiedostonimien lopussa olevat versiokoodit vaikeuttavat tiedostonimen vastaavuutta. Lisäksi oletusarvoisesti Excel-ottelukaavat palauttavat ensimmäisen ottelun, ei viimeisen ottelun, joten meidän on kiertettävä tämä haaste tietyillä hankalilla tekniikoilla.

Selitys

Tämän kaavan ytimessä rakennetaan luettelo rivinumeroista tietylle tiedostolle. Sitten käytämme MAX-toimintoa saadaksemme suurimman rivinumeron, joka vastaa kyseisen tiedoston viimeistä versiota (viimeistä esiintymistä).

Löydämme kaikki tietyn tiedoston esiintymät käyttämällä HAKU-toimintoa, joka on määritetty tähdellä (*) jokerilla vastaamaan tiedoston nimeä, sivuuttamatta versiokoodeja. HAKU heittää VALUE-virheen, kun tekstiä ei löydy, joten haemme ISERROR: iin:

ISERROR(SEARCH(H5&"*",files))

Tuloksena on joukko TOSI ja EPÄTOSI arvoja, kuten tämä:

(EPÄTOSI; TOSI; EPÄTOSI; EPÄTOSI; TOSI; TOSI; TOSI; TOSI)

Se on hämmentävää, mutta TOSI edustaa virhettä (tekstiä ei löydy) ja EPÄTOSI edustaa ottelua. Tämä taulukon tulos syötetään IF-funktioon loogisena testinä. Jos arvo on TOSI, käytämme arvoa nolla, ja jos arvo on tosi, toimitamme tämän koodin, joka tuottaa suhteelliset rivinumerot työskentelyalueelle:

ROW(files)-ROW(INDEX(files,1,1))+1)

IF-funktio palauttaa tämän jälkeen joukon arvoja:

(1; 0; 3; 4; 0; 0; 7; 0)

Kaikki luvut nollaa lukuun ottamatta edustavat "tiedostonimi1" - ts. Rivinumero nimettyyn alueeseen "tiedostot", jossa "tiedostonimi1" näkyy.

Lopuksi käytämme MAX-toimintoa saadaksesi tämän taulukon maksimiarvon, joka on 7 tässä esimerkissä.

Käytä hakemistoa INDEX tämän rivinumeron kanssa saadaksesi viimeiseen versioon liittyviä tietoja (esim. Koko tiedostonimi, päivämäärä, käyttäjä jne.).

Ilman nimettyä aluetta

Nimettyjen alueiden ansiosta monimutkaisemman kaavan määrittäminen on nopeaa ja helppoa, koska sinun ei tarvitse kirjoittaa solun osoitteita käsin. Tässä tapauksessa käytämme kuitenkin lisätoimintoa (INDEX) saadaksesi nimettyjen alueiden "tiedostot" ensimmäisen solun, mikä vaikeuttaa asioita hieman. Ilman nimettyä aluetta kaava näyttää tältä:

(=MAX(IF(ISERROR(SEARCH(H5&"*",C4:C11)),0,ROW(C4:C11)-ROW(C4)+1)))

Mielenkiintoisia artikkeleita...