Kažkas kažkada manęs buvo klausęs, ar yra kokia funkcija, kuri į celę įrašytų to failo pavadinimą. Tada galvojau, kad vat taip paprastai tik su funkcijomis to padaryti negalima, o dabar kažko ieškodamas internete išsiaiškinau, kad tada buvau neteisus.
Taigi pavadinimą į celę įrašyti galima, tačiau tam prireiks kelių funkcijų. Pirmoji ir esminė yra =CELL(„filename”). Ši funkcija duoda ne tik failo pavadinimą, bet visą adresą iki darbo lapo (sheet) pavadinimo.
Tačiau turint tokią informaciją, galima pasinaudoti funkcija SUBSTITUTE ir iškarpyt nereikalingus žodžius ir simbolius:
Pasinaudodamas funkcija =SUBSTITUTE(SUBSTITUTE(CELL(„filename”);”C:\Users\Justinas\Desktop[”;””);”.xlsx]Lapas1″;””) nukirpau viską iki failo pavadinimo ir viską kas yra už jo. Tokiu būdu išgavus failo pavadinimą jis visada pasikeistų pervadinus patį failą, tačiau pakeitus jo buvimo vietą (pvz.: perkėlus į kitą aplanką), vėl reikėtų viską perdarinėti iš naujo.
Jeigu failo pavadinimas visada išlieka toks pats, bet keičiasi jo buvimo vieta, galima pasinaudoti keletu kitų funkcijų:
=LEFT(SUBSTITUTE(CELL(„filename”);LEFT(CELL(„filename”);
LEN(CELL(„filename”))-20);””);LEN(SUBSTITUTE(CELL(„filename”);
LEFT(CELL(„filename”);LEN(CELL(„filename”))-20);””))-12)
Čia skaičius „20” reiškia šiuos simbolius: Duomenys.xlsx]Lapas1; o „12” – šiuos: .xlsx]Lapas1
Spėju, visa tai galima ir protingiau aprašyti, bet dabar kažkaip tingisi apie tai galvoti. Taip pat, manau, jog galima išgauti ir bendrą efektą, kad ir failo pavadinimą būtų galima keisti ir jo vietą, bet kaip jau minėjau – šiandien tingiu apie tai galvoti 🙂
O paprasčiausio regex scriptuko pasirašyt neišeitų? 🙂 Tada nereiks sukt galvos, koks path
Čia parašiau apie tai, nes kažkas kažkada klausė ir norėjo išsiversti tiesiog su paprastomis funkcijomis, nenaudojant makrokomandų. Jas naudojant, žinoma, kad viskas paprasčiau būtų, bet kartais žmonėms norisi kažko elementaresnio, nors tai nebūtinai paprasčiau būna 🙂