Függvényből futtatható függvény

2018. november 13. - Office Guru

Nem valószínűsítem, hogy ez sokaknál előfordult már egyáltalán kérdésként és ha valakinél elő is jött, valószínűleg ott is egy nem igazán átlagos feladat részeként - a cél az lenne, hogy egy formulát tartalmazó cellából ki kell olvasnunk a formulát, majd még le is kellene futtatnunk egy másik cellában.

capture1_3.JPGA feladat annyi lenne, hogy egy másik cellába olvastassuk ki ezt a függvényt, majd futtassuk is le, tehát egy másik cellába is kapjuk meg a szummánk eredményét. Az Excel ehhez már kínál nekünk beépített funkciót is, ez a FORMULATEXT nevű függvény, amely szépen vissza is adja szövegként a függvényünket:

capture2_3.JPG

capture3_3.JPGViszont a futtatáshoz szükségünk van egy aprócska kódra VBA-ban, úgyhogy gyorsan ugorjunk is be ALT+F11-gyel a VBA-editorba. A következő funkciót fogjuk definiálni egy modulban:


Function Futtat (Content as String)

    Futtat = Evaluate (Content)

End Fuction

A funkció a cella szöveges tartalmát felveszi paraméterként, majd az evaluate funkcióval végrehajtuk a megadott formulát és visszaadjuk az eredményt.

capture4_3.JPGInnentől kezdve ezzel a custom funkcióval már végre tudjuk hajtani a FORMULATEXT segítségével kiszedett, szövegformátumú függvényt. 

A másik megoldáshoz nem kell VBA, bár az egy kicsit macerásabb. Első lépésként lépjünk be a Formulas ribbonfül Defined Names szekciójában lévő Name Managerbe és hozzunk létre egy új nevesített tartományt:

capture5_3.JPG
Ez legyen mondjuk a "Futtat" névre hallgató tartomány, amely az EVALUATE funkció segítségével lefuttatja a sheetünk megadott cellájában lévő, szövegformátumú függvényt.

capture6_3.JPGFontos, hogy az EVALUATE kizárólag a Name managerben használható, ha nem hoztuk létre a custom funkciót, akkor nem tudjuk cellából közvetlenül meghívni. Szóval ha megvan a definált tartomány, akkor már csak beírjuk egy cellába és kész is vagyunk:

capture7_2.JPG

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr9114371133

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.