
Általános képlet
(=MAX(IF(ISERROR(SEARCH(H5&"*",files)),0,ROW(files)-ROW(INDEX(files,1,1))+1)))
Összegzés
A táblázat utolsó fájlváltozatának pozícióját (sorát) megkeresheti egy több Excel-függvényen alapuló képlettel: MAX, IF, ISERROR, ROW és INDEX.
A bemutatott példában a H6 cellában szereplő képlet a következő:
(= MAX (HA (ISERROR (KERESÉS (H5 & "*", fájlok)), 0, ROW (fájlok) -ROW (INDEX (fájlok, 1,1)) + 1)))
ahol a "fájlok" a C4: C11 megnevezett tartomány.
Megjegyzés: ez egy tömbképlet, amelyet a control + shift + enter billentyűkombinációval kell megadni.
Kontextus
Ebben a példában számos fájlverzió van felsorolva egy táblázatban, dátummal és felhasználónévvel. Vegye figyelembe, hogy a fájlnevek megismétlődnek, kivéve a végén csatolt kódot, amely a verziót ábrázolja ("CA", "CB", "CC", "CD" stb.).
Egy adott fájlhoz meg akarjuk keresni az utolsó verzió pozícióját (sorszámát). Ez trükkös probléma, mert a fájlnevek végén található verziókódok megnehezítik a fájlnévhez való illesztést. Ezenkívül alapértelmezés szerint az Excel egyezési képletei az első mérkőzést adják vissza, nem az utolsó mérkőzést, ezért ezt a kihívást néhány trükkös technikával kell megoldanunk.
Magyarázat
Ennek a képletnek a lényege, hogy összeállítjuk az adott fájl sorszámainak listáját. Ezután a MAX függvény segítségével kapjuk meg a legnagyobb sorszámot, amely megfelel az adott fájl utolsó verziójának (utolsó előfordulásának).
Egy adott fájl összes előfordulásának megkereséséhez a csillag (*) helyettesítő karakterrel konfigurált KERESÉS funkciót használjuk, hogy megfeleljen a fájl nevének, figyelmen kívül hagyva a verziókódokat. A KERESÉS VALUE hibát dob, ha a szöveg nem található, ezért a keresést ISERROR-ba csomagoljuk:
ISERROR(SEARCH(H5&"*",files))
Ez egy TRUE és FALSE értékek tömbjét eredményezi, mint ez:
(HAMIS; IGAZ; HAMIS; HAMIS; IGAZ; IGAZ; HAMIS; IGAZ)
Zavaros, de a TRUE hibát jelent (a szöveg nem található), a FALSE pedig egyezést jelent. Ez a tömb eredmény logikai tesztként bekerül az IF függvénybe. Ha az értéke IGAZ, akkor nulla értéket használunk, és ha igaz, akkor ezt a kódot adjuk meg, amely relatív sorszámokat generál ahhoz a tartományhoz, amellyel dolgozunk:
ROW(files)-ROW(INDEX(files,1,1))+1)
Az IF függvény ezután egy ilyen értéktömböt ad vissza:
(1; 0; 3; 4; 0; 0; 7; 0)
A nulla kivételével minden szám egyezik a "fájlnév1" egyezésével, vagyis a "fájlok" nevű tartományon belüli sorszámmal, ahol a "fájlnév1" szerepel.
Végül a MAX függvény segítségével kapjuk meg a tömb maximális értékét, amely ebben a példában 7.
Az INDEX használatával ezzel a sorszámmal lekérheti az utolsó verzióhoz kapcsolódó információkat (pl. Teljes fájlnév, dátum, felhasználó stb.).
Megnevezett tartomány nélkül
A megnevezett tartományok megkönnyítik a bonyolultabb képlet beállítását, mivel nem kell kézzel megadni a cellacímeket. Ebben az esetben azonban egy extra függvényt (INDEX) használunk a megnevezett tartomány "fájljainak" első cellájának megszerzésére, ami kissé bonyolítja a dolgot. A megnevezett tartomány nélkül a képlet így néz ki:
(=MAX(IF(ISERROR(SEARCH(H5&"*",C4:C11)),0,ROW(C4:C11)-ROW(C4)+1)))