Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  25 26 27 28 29 30 31 32 33   další » ... 36

Ještě že existují staré dobré manuály. U Walkenbacha jsem našel "podmíněné formátování čísel" a s trochou násilí jsem sesmolil formát, který u mne pracuje správně. Ten formát vypadá hrozně:

[<1000]0,00;[>999999]#\.###\.000,00;#\.##0,00

Když ale funguje, tak se dá použít 5 !

to marjankaj: žádná mezera nevadí; zbytečné # se vynechají, natvrdo vložené \. se zobrazí ...

dodatečné upřesnění: místo >999999 je správnější >=1000000

marjankaj radí dobře, až na to, že kratší číslo, např. 1234, se zobrazí jako .1.234,00. Pokud ta tečka vlevo nevadí, je to řešení.

Úloha, jak jste ji shora popsal, není úplně začátečnická. Hlavní komplikace spočívá v tom, že roční přírůstek může obsahovat nové výrobky a jiné výrobky v něm mohou chybět. Pokud si na to netroufáte s VBA (to myslím u vás nehrozí) bude to chtít poměrně rafinované ruční zpracování. Těžká rada! Žádnou jednoduchou neznám ...

Ze zvědavosti jsem si provedl výkonový test pro milion výpočtů funkce listu Ceiling proti shodnému zadání pro milion výpočtů funkce RoundX. Toto je výsledek srovnání:

milion realizací =Ceiling(123.456, 0.1) ........ 4,570 sec,
milion realizací =RoundX(123.456, 0.1, 1) ... 5,551 sec.

Ano Ceiling počítá o něco rychleji, ale sekunda rozdílu na milion výpočtů celou dobu zpracování úlohy prodlouží právě o tu jednu sekundu!

to marjankaj: OO Calc se tady opravdu moc nezmiňuje. Jeho StarBasic jsem si prohlédl jen zběžně, ale z logiky věci se mi zdá, že by mohl UDF umět. Víc než z devadesáti procent má VBA se StarBascem shodný kód. Zatím jsem si ale nenašel čas na to, abych otestoval, jak nejlépe převést VBA do StarBasicu a následně ho odladit. Kdyby s tím někdo měl zkušenost, rád se poučím!
Jinak svůj RoundX jsem napsal spíš kvůli tomu, abych si dokázal, že to dokážu. Jak už jsem napsal, všechno zaokrouhluji stejnou standardní funkcí, pro níž ovšem vhodně upravím vstupní parametry. Vzorec na listu u mne aby pohledal!

Pomalost UDF je jedna z rozšířených pověr o VBA. Samozřejmě lze napsat UDF, které nám umožní uvařit si kafe, než se spočítá. Ale znám i taková UDF, která v rychlosti moc nezaostávají za složitějšími vzorci, a někdy jsou dokonce rychlejší. RoundX mezi ty nejrychlejší funkce patřit nebude, ale s výjimkou obsluhy velkých oblastí na listu nebude ani příliš zdržovat. Vzhledem k tomu, že jsem si dělal výkonové testy na některé ze svých UDF, vím co říkám.

Podle mne si věc kritiku zaslouží. Z pohledu začátečníka je velmi frustrující, když mu Excel nabízí osm způsobů zaokrouhlení, které se v popisu liší často velmi nezřetelně. I z pohledu znalostí Excelu na běžné úrovni je těžké k uchápání, proč ZAOKR.DOLŮ a ZAOKR.NAHORU mají v druhém parametru interval, zatímco ZAOKROUHLIT tam má počet desetinných míst. A problém zaokrouhlit záporné číslo pro MROUND je už jen třešinka na dortu.
Jako ukázku toho, že nepotřebuji mít osm podmíněně fungujících zaokrouhlovacích funkcí, uvádím svou uživatelsky definovanou funkci (UDF) se jménem RoundX. Tato jediná funkce pokrývá všech osm vyjmenovaných funkcí a ještě navíc varianty, které Excelu jaksi už nestálo zato pokrýt. Je napsaná ve VBA a používá výhradně to, co VBA samo umí.
Funkce RoundX je obsahem přílohy včetně testů její funkčnosti. Přes veškerou snahu o odladění nevylučuji, že může mít mouchy (já o nich nevím). Tu funkci dávám do oběhu spíš jako ukázku toho, že to jde takto napsat. Prosím každého, kdo by funkci RoundX chtěl prakticky využít, aby si její fungování sám napřed prověřil. Pokud najde vady, prosím o jejich sdělení (nejlépe na můj mail, aby se toto fórum odlehčilo).

Ta rozšířená tabulka se mi líbí, protože celý zmatek pěkně dokresluje! Na téma záporných intervalů jsem se právě chystal udělat vlastní dodatek do tabulky. Jeden z možných závěrů zní, že pokud nedovolím záporný interval, MROUND nebude umět zaokrouhlit záporná čísla. A pokud ho povolím, vyvolám možnost chyb pro kladné hodnoty k zaokrouhlení. Prostě bordel a stav nedůstojný profesionálního nástroje typu Excel !!!

Jak už to u dlouhých vláken bývá, původní dotaz se rozdvojil. Na jedné straně je přímá linka na tazatele, která je zpravidla jednoduchá: obsahuje doporučení, které tazatel buď přijme nebo taky ne. Druhou linku představuje polemika mezi odpovídajícími, v čem je ta která cesta lepší a horší.
Pokud fórum beru jako jednotku poslední pomoci, pak je ta druhá linka v podstatě zbytečná. Pokud ho chápu jako místo pro setkávání názorů, pak ta druhá linka má často daleko vyšší hodnotu než původní dotaz. Pro mne jsou dotazy zdrojem inspirace a diskusi nad nimi vítám jako zdroj pro tříbení názorů a poučení.
Doporučuji diskusi tady přerušit a pro případnou nedokončenou diskusi otevřít nové vlákno.

Až teď mi doklaplo, že mohu poslat ukázku testu, i když se odkazuji na soubor, který vy nemáte. Mělo by stačit, abyste nepovolili aktualizaci propojení a sešit ukáže moji naplněnou "konzervu" se vzorečky

Snad včera se do diskuse na tomto fóru zapojil Lubek, kterého pokládám a špičkového znalce vzorců. V příspěvku navrhl pro přijímající sešit vytvoření pracovního listu, který obsahuje výhradně propojovací odkazy do vzdáleného listu. Na tento pracovní list se podmíněné formátování v přijímajícím sešitu může odvolávat bez výhrad.
To řešení je zcela univerzální a naprosto čisté. Před chvílí jsem si provedl otestování popsané metody. Vše jsem doplnil tím, že propojovací relativní adresu do vzdáleného listu jsem vložil do definovaného názvu a pracovní list jsem vyplnil odkazem na tento název.
Celé jsem to měl hotové za pět minut zcela bez použití VBA. Funguje to, jako když vystřelí z praku.
Lubka tady na fóru vítám a ostatním doporučuji jeho příspěvky číst 10

V diskusi o zaokrouhlování se tady objevilo několik nepřesností při popisu funkcí listu pro zaokrouhlení. Vzhledem k tomu, že tyto funkce (s výjimkou ZAOKROUHLIT) prakticky nepoužívám, začal jsem mít z té diskuse v hlavě guláš.
Pro vlastní archiv jsem si zpracoval tabulku toho, co Excel nabízí. Měl bych sto chutí napsat několik peprných slov jak na adresu Microsoftu, tak zejména pro naše lokalizátory. Když se tak na tu tabulku koukám, ani se nedivím, že ve hře mezi uživateli Excelu nepanuje jasno.
Tabulka je v příloze. Je interaktivní, takže každý si může ověřit, jak které zaokrouhlování funguje. Komentář ponechám na vás.

to Devil: Valná většina dotazů je definována tak, že chtějí jen řešení...
Tak by se měli ptát jenom ti, kterým teče voda do zadku a potřebují okamžitou pomoc. Kdo dostane řešení něčeho, co sám nedokázal a pak se ani nepodívá, jak se to dělá, ten si podle mne nezaslouží, aby mu někdo radil. To je čisté somrování bez snahy něco se přiučit. Tenhle typ tazatelů nepatří mezi ty, kterým radím rád. Odpověď má být inspirace, ne kus žvance k nasycení.

Konečně se téma lokalizace vzorců dalo do pohybu 5 . Jsem rád, že nejsem sám, kdo pokládá lokalizaci vzorců v Excelu za krok stranou. Znovu děkuji elCHa za objevení a technicky korektní popis důsledků spuštění TransFormula na jiné již spuštěné úlohy v Excelu.
S tím nástrojem jsem si pohrál a vychytal jsem mouchy, které jsem objevil. V této chvíli neumím vyvolat žádnou jeho další kolizi. Pokud máte chuť, zkuste mne nachytat na švestkách! Kdysi jsem u velkého projektu veřejně prohlásil, že kdo v mých programech najde chybu, může mi do telefonu říct, že jsem vůl. Telefon se na začátku netrhl. Do čtrnácti dnů jsem ale měl celý systém od provozních chyb dočista vyčištěný.

K výhradám elCHa:
Při spuštění nástroje se skryje aplikace a to i v případě, že už je otevřen jiný sešit. - to je oprávněná výhrada a opravdu k tomu dojde. Testoval jsem to jenom, když jiná aplikace v Excelu neběžela. Podívám se na to a snad něco vymyslím.
I další výhrady s tím související (v případě, že při spuštění úlohy již nějaký sešit je otevřený) odpovídají skutečnosti. Jinými slovy: spustit TransFormula v době, kdy běží jiný Excel, se blíží sebevraždě. Za to se omlouvám a jistě najdu recept. Dík za upozoznění.
O variantě s doplňkem jsem uvažoval, ale ta je naopak vázaná na to, že mám spuštěnou nějakou jinou úlohu v Excelu. To byl případ, o který jsem nestál a který jsem ke škodě všech ve spojení s TransFormula řádně neotestoval. Spouštět tento doplněk pro jinou excelskou úlohu jsem totiž pokládal za nošení dříví do lesa, protože tam mám k dispozici přímé možnosti Excelu, jak si znění vzorců opatřit. Bohužel jsem nevzal v potaz, že mohu mít spuštěný Excel z úplně jiného důvodu a k tomu se chci podívat, jak to vypadá se vzorci. Pak dojde ke karambolu, který elCHa dost podrobně popsal.
Jdu zjednat nápravu. Zatím prosím:
POKUD JIŽ MÁTE SPUŠTĚNÝ EXCEL, NESPOUŠTĚJTE K NĚMU MŮJ TransFormula !!!


Strana:  1 ... « předchozí  25 26 27 28 29 30 31 32 33   další » ... 36

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