< návrat zpět

MS Excel


Téma: Provedení určité funkce napsané v buňce rss

Zaslal/a 3.10.2013 10:48

Dobrý den,
dár bych požádal o radu ohledně zpracovávání funkcí. Mám MS Office 2010.

Situace:
Sloupec A řádky 3-5 mám vypsány textově funkce
SVYHLEDAT(B2;tabulka1;1;NEPRAVDA)
SVYHLEDAT(B2;tabulka1;2;NEPRAVDA)
SVYHLEDAT(B2;tabulka2;1;NEPRAVDA)

V B2 je hodnota, která se má v tabulkách hledat.

V buňce C2 mám pomocí "Ověření dat" nastaveno použítí SVYHLEDAT funkcí z buňěk A3,A4,A5.

V buňce D2 bych rád, aby proběhla funkce A3-5 dle toho, co je nastaveno v B2.

V přiloženém souboru je v modré oblasti znázorněno, jak to potřebuji a v růžové, jak to mám nyní. Vím, že by mohl někdo namítat, že tak, jak to mám v růžové oblasti je to správně, ale funkce jsou tu velmi zjednodušeny. Momentálně má funkce ZVOLIT z růžové oblasti čítá 400 argumentů (13 funkcí) a je to velmi náročné, protože tato funkce je v každé buňce tabulky 13*20 buněk. Já bych potřeboval, abych dle příkladu v modré oblasti měl vypsáno těch 13 funkcí textově v nějaké tabulce a jen dle výběru v Ověření dat by se vybrala určitá funkce, kterou by excel vykonal.

Snad jsem popsal situaci co nejlépe.

Soubor
http://ulozto.cz/xqKiv2Ks/priklad-xlsx

Děkuji za odpovědi.

S pozdravem
Mirek

Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
#015536
avatar
No, jediné makro, které v sešitě používám je makro na zamčení všech listů najednou a to jsem někde obšlehl a upravil ;)

Nicméně, dohledal jsem, že EVALUATE je v češtině VYHODNOTIT, a je to přesně to, co jsem potřeboval.

Děkuji všem za pomoc a doufám, že jsem Vás svým neohrabaným snažením zpracovávat výpočty v excelu přes funkce přinejmenším pobavil :Dcitovat
#015537
Opičák
@eLCHa
@AL
v CZ excelu 2010 to funguje přesně tak, jak to napsal eLCHa

Makra jsou vždy v angl. Zápisem do oblasti je to pak VYHODNOTITcitovat
#015538
avatar
Tak, abych se taky trošku vzdělal ve VB, když dám na Vaše zkušené rady, jak mám upravit code od eLCHa, aby fungoval v mém případě :D

Function MY_EVALUATE(Formula As String)
MY_EVALUATE = Evaluate(Formula)
End Function


Protože když už bych měl řešit VB (snad to bude kompatibilní s nižšími verzemi MS O), tak bych v tom makru v podstatě udělat jako by funkci zvolit a přes if/than/else podle toho, co je buňka M19 bych provedl jeden z Evaluate.

Čili, v makru bych měl všechny své vzorce a ty by se vybrali podle toho, co odpovídá v M19.

Něco ve smyslu
If M19=1 Evaluate xx1
else M19=2 Evaluate xx2

Na syntax nehleďte z hlavy ho neznám a nechtěl se mi dohledávat, nicméně, asi je toto ta cesta, kterou jste mi doporočuvali že? ;)citovat
icon #015539
avatar
@Opičák: "v CZ excelu 2010 to funguje přesně tak, jak to napsal eLCHa"
eLCHa písal, že mu to nefunguje, nie, že funguje, ja som pochopiteľne poukazoval na český Excel, nie VBA...

@MirekCZ: Rozhodovanie cez If nahraď rozhodovaním cez Select Casecitovat
#015542
Opičák
@AL
AL já umím číst 1 LCHa psal, že mu to nefunguje, já jsem to dal do českýho excelu a u mě to tak, jak to napsal funguje.citovat
#015543
avatar
musim si rypnut :))

to len cesi maju tak super napad ze premenuju funkcie do svojho jazyka :))citovat
#015544
Opičák
@Palooo
my v Česku máme na všecho odborníky, 9 9 9 stačí se jen rozhlédnout a je jasno.
Ale to sem už nepatří. 4 4citovat
icon #015545
avatar
Ja radšej budem držať pusu páč v Česku žijem 1citovat
icon #015585
eLCHa
Takže jsem měl chvilku času a tohle mně zajímalo, taxem si s tím trochu hrál.

Pro slováky - jestli jsem to dobře pochopil - se nic nemění, protože ti nemají lokalizované názvy fcí.
Takže můžou v klidu použít
Function MY_EVALUATE(Formula As String)
MY_EVALUATE = Evaluate(Formula)
End Function

Výsledek bude shodný s Excel4 makrem (tedy použitím názvu)
Pro čechy a další postižené národy (pro Palooo - nejsme jediní http://www.tutoria.pl/blog/381-funkcje-excela-po-polsku-angielsku-i-niemiecku) se dá využít lokalizované fce EVALUATE (tedy pro nás VYHODNOTIT) - ta totiž naopak od VBA pracuje pouze s lokalizovanými názvy fcí (takže SUM nezná, ale SUMA ano)
Takže buď v názvu, jaxte psali výše, nebo na Listu maker Excel 4.
To má výhodu, že lze využít dalších příkazů - tedy využít např. IF-ELSE-END.IF (KDYŽ-JINAK-KONEC.KDYŽ) a ošetřit tak různé další záležitosti.
Nevýhodou je naopak, že nelze vyhodnotit "SUMA(A1:A4)" ale musí být zadáno s názvem listu "SUMA(List1!A1:A4)". Je to logické a při použití názvu je to vlastně taky, jenže tam se to doplní samo, takže na to nemusíte myslet.

Mimochodem - po deseti letech práce s excelem jsem dnes napsal své první excel4 makro a byl to boj ;)))
Příloha: zip15585_evaluate.zip (12kB, staženo 19x)
citovat
icon #015586
avatar
@eLCHa: Pro čechy a další postižené národy (pro Palooo - nejsme jediní
on to Paloo asi vie a bol to zrejme pokus o vtip 1citovat

Strana:  « předchozí  1 2 3   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje