Excel

Vyhľadajte poslednú revíziu súboru

Lookup Last File Revision

Vzorec programu Excel: Vyhľadať poslednú revíziu súboruGenerický vzorec | _+_ | Zhrnutie

Na nájdenie polohy (riadka) poslednej revízie súboru v tabuľke môžete použiť vzorec založený na niekoľkých funkciách programu Excel: MAX, IF, ISERROR, ROW a INDEX.





V uvedenom príklade vzorec v bunke H6 je:

ako prepínať osi v excelovom grafe

{= MAX (IF (ISERROR (VYHĽADÁVANIE (H5 & '*', súbory)), 0, ROW (súbory) -ROW (INDEX (súbory, 1,1))+1))}





kde 'súbory' je pomenovaný rozsah C4: C11.

Poznámka: toto je vzorec poľa a musíte ho zadať kombináciou klávesov Ctrl + Shift + Enter.



Kontext

V tomto prípade máme v tabuľke niekoľko verzií súborov s dátumom a používateľským menom. Názvy súborov sa opakujú, okrem kódu, ktorý na konci predstavuje verziu („CA“, „CB“, „CC“, „CD“ atď.).

Pre daný súbor chceme nájsť pozíciu (číslo riadku) pre poslednú revíziu. Je to zložitý problém, pretože kódy verzií na konci názvov súborov sťažujú priradenie k názvu súboru. V predvolenom nastavení vzorce pre zhody programu Excel vrátia prvý zápas, nie posledný zápas, takže musíme túto výzvu vyriešiť niekoľkými záludnými technikami.

Vysvetlenie

V jadre tohto vzorca vytvoríme zoznam čísel riadkov pre daný súbor. Potom pomocou funkcie MAX získame najväčšie číslo riadka, ktoré zodpovedá poslednej revízii (poslednému výskytu) daného súboru.

Na nájdenie všetkých výskytov daného súboru používame funkciu VYHĽADÁVANIE, nakonfigurovanú so zástupným znakom hviezdička (*) tak, aby zodpovedala názvu súboru, pričom ignoruje kódy verzií. Ak sa text nenájde, funkcia SEARCH vyvolá chybu HODNOTY, takže vyhľadávanie zalamujeme v ISERROR:

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

Výsledkom je množstvo SKUTOČNÝCH a NEPRAVDNÝCH hodnôt takto:

{FALSETRUEFALSEFALSETRUETRUEFALSETRUE}

ako aplikovať zmrazovacie tabule v programe Excel

Je to mätúce, ale hodnota TRUE predstavuje chybu (text sa nenašiel) a hodnota FALSE predstavuje zhodu. Tento výsledok poľa je vložený do funkcie IF ako logický test. Pre hodnotu TRUE použijeme nulu a pre hodnotu true, ak zadáme tento kód, ktorý generuje relatívne čísla riadkov pre rozsah, s ktorým pracujeme:

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

Funkcia IF potom vráti pole hodnôt takto:

{10340070}

Všetky čísla okrem nuly predstavujú zhody pre „názov_súboru1“ - t. J. Číslo riadka v pomenovanom rozsahu „súbory“, kde sa zobrazuje „názov_súboru1“.

Nakoniec použijeme funkciu MAX na získanie maximálnej hodnoty v tomto poli, ktorá je v tomto prípade 7.

Použite INDEX s týmto číslom riadku na získanie informácií týkajúcich sa poslednej revízie (t. J. Úplné meno súboru, dátum, používateľ atď.).

Bez pomenovaného rozsahu

Pomenované rozsahy umožňujú rýchlo a ľahko nastaviť zložitejší vzorec, pretože adresy buniek nemusíte zadávať ručne. V tomto prípade však používame extra funkciu (INDEX) na získanie prvej bunky pomenovaného rozsahu „súbory“, čo veci trochu komplikuje. Bez pomenovaného rozsahu vyzerá vzorec takto:

 
 ROW (files)- ROW ( INDEX (files,1,1))+1)
Autor Dave Bruns


^