WWW pro školy
Jak na Office - tutoriály, video návody











Vytvoř si párové triko

Poradna - Vzorec v jedné buňce, výsledek ve druhé

hlavní kategorie | zpět | + odpovědět na toto téma
Vzorec v jedné buňce, výsledek ve druhé - diskuze na toto téma
Dobrý den, nevím si rady. V buňce A1 mám např. text (22,0+22,0)*1,2. V buňce A2 bych potřeboval výsledek tohoto příkladu, ale tak, aby v případě editace příkladu v buňce A1 se výsledek v buňce A2 automaticky upravil. Nikde jsem v diskuzích nic nenašel. Potřebuji, abych ve výsledném dokumentu měl v jedné buňce viditelný vzorec výpočtu a v druhé buňce výsledek, který vznikne ale na základě editace příkladu první buňky. Děkuji za radu

elninoslov | 21.3.2017 13:24  
 
 
Ale v prvých 2. verziách bude problém s lokalizovanými vzorcami (napr. CZ)
Odpověď
Michal N. | 21.3.2017 14:08  
 
 
Děkuji, už je to na správné cestě, nejvíce by mi vyhovovala ta metoda UDF, ale když ji zapíši do svého souboru, tak to hodí chybu #Název?. Nevím proč. Pro upřesnění posílám tabulku, kterou potřebuji takto upravit.
Odpověď
elninoslov | 21.3.2017 18:45  
 
 
To pretože UDF znamená User Defined Function (užívateľsky definované funkcia = vlastná, makrom naprogramovaná funkcia). A Vy ju tam nemáte. Do súboru treba pridať Modul vo VBA (Alt+F11), do Modulu treba pridať novú funkciu, a až potom môžete funkciu použiť v liste. Samozrejme súbor treba uložiť ako súbor podporujúci makrá, teda XLSM, a nie XLSX. Našťastie pre Vaše potreby nieje potrebné použiť funkcie Excelu vo vzorcoch. To by totiž cez UDF nešlo. Máte CZ verziu, a tá má preložené názvy funkcií, ale makro pracuje s EN akvivalentami, a UDF nedokáže preložiť tieto názvy. Ale Vy keď máte iba +-*/(), tak to UDF zvládne. Vzorec by sa dal preložiť vložením ako FormulaLocal (CZ vzorec) do nejakej bunky, a prečítanie z nej cez Formula (EN vzorec), ale prečítanie rovno výsledku. To sa ale musí riešiť udalostným makrom, nie makro funkciou UDF (tá nedokáže zapisovať do iné bunky). Udalostné makro má ale zase nevýhodu, že prídete o možnosť Undo. ... Stačí takéto zjednodušené vysvetlenie ?
Odpověď
Michal N | 21.3.2017 19:17  
 
 
Ještě jednou dobrý den, tak teď už tomu rozumím. Na tohle bych nikdy nepřišel, natolik zdatný uživatel EXCELu opravdu nejsem. Děkuji za radu. A jak přijdete na ten kód co jste tam psal? Function VYPOCET(S As String) As Double VYPOCET = Evaluate("=" & Replace(S, ",", ".")) End Function To už musíte být skoro programátor, či se pletu a jsem 100 let za opicema?
Odpověď
elninoslov | 21.3.2017 22:45  
 
 
Definujete si vlastnú funkciu, ktorej vstupným parametrom bude reťazec S, a výstupným bude desatinné číslo. Metóda Evaluate vykoná vzorec zapísaný ako reťazec. Prvý problém ale je, že pracuje s EN názvami funkcií. Tento problém sa Vás netýka, lebo nepotrebujete, žiadne funkcie, ale iba +-*/(). Druhý problém je, že desatiny sú v EN oddelené ".", u nás ",", a parametre sú u nás oddelené ";" a v EN ",". Teda potrebujeme zmeniť v číslach naše "," za ".", s ktorými vie pracovať. A na to je vhodná funkcia Replace. Asi tak.
Odpověď