Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  29 30 31 32 33 34 35 36 37   další »

Ne že by to nešlo řešit složitě, ale mně připadá, že stačí pro lhůtník aktivovat automatcký filtr, zadat výběr pro "počet dnů do konce" na 1 a vzniklý výběr zkopírovat na nový list.

Omluva - příloha na zvláštním talířku 5

Vladimir-Cepelak napsal/a:

co je prosím vlastnost Formula?

Vlastnost Formula je jedna z mnoha vlastností, vázaných v objektovém modelu Excel na každou buňku a která obsahuje interní podobu vzorce pro buňku. Pokud nepracujete s VBA, pak Formula není pro Vás zajímavá. Pro mne to byl poznatek zásadního významu. Na jeho základě jsem si napsal testovací příklad, který po zadání adresy buňky (např. H12) mi dodá hodnotu buňky H12 ze vzdáleného (i zavřeného) sešitu. Nevím, jestli Vám to k něčemu bude, ale sešit s popsanou funkční výbavou přikládám. Vzhledem k tomu, že můj příklad musí volat sice vzdálený, ale pro uživatele viditelný sešit, není nastavení sešitu pro otestování mého volání úplně jednoduché (pokusil jsem se ho ale v sešitě popsat).
Pokud Vám jde o volbu mezi několika předem známými možnostmi, použijte řešení od elninoslov a s jeho nápadem použít funkci ZVOLIT.

Podobnou úlohu pro sledování termínů jsem řešil s dobrou uživatelskou odezvou přímo ve "lhůtníku" s využitím podmíněného formátování a podbarvení buněk s termíny, vázaného na kritérium DNES() s možným rozlišením na "propadlé", "dnes", "zítra", "do týdne"... Aby splněné úkoly nestrašily jako propadlé, řádek obsahoval také indikaci "hotovo", kterou ten podmíněný formát bral v úvahu.

Riziko, že se v novém Excelu objeví nějaká nová funkce, bude existovat vždycky. To, že anglickou funkci začnou naši lokalizátoři v nové verzi Excelu překládat odlišně, je projev jejich totálního idiotismu. Lašákům bych tuhle zhovadilost určitě nevyčítal.
Bylo by dobré vědět, že vzorce v buňkách si Excel interně ukládá zásadně v anglické podobě a v R1C1 notaci. Jednotlivé varianty zápisu lze vyvolat jako vlastnosti Formula, FormulaR1C1, FormulaLocal a FormulaLocalR1C1. Stejný vzorec s anglickou funkcí LEFT zobrazí jeden český Excel jako VLEVO a jiný Excel jako ZLEVA a v obou případech to bude počítat správně. Vypadá to jako bordel, ale znalec se vyzná...
Každý nástroj typu samostatného převodníku, stojící mimo Excel, bude zákonitě zatížen výše uvedenými nedostatky. Proto se opakovaně přimlouvám za využívání okna Immediate pro převody mezi českým a anglickým zápisem vzorců, stejně jako pro převod mezi zápisy v notaci A1 a R1C1. V tom okně získáme vždycky přesně ten převod, který odpovídá aktuální verzi Excelu, se kterou zrovna pracujeme.

Jen pro upřesnění: není podstatné, že po A následuje cifra, ale že po něm nenásleduje otvírací závorka. Jenom string, následovaný otvírací závorkou, může být jménem funkce.

Každé složitější řešení obsahuje řadu implicitních omezujících podmínek, které lze nazvat jako rozumné chování. Za totální blbuvzdornost úlohy se zpravidla platí neúměrnou složitostí obsluhy. A ani to často nestačí.
Dopisování údajů do řádků nad tabulkou za rozumné chování nepokládám. Stejně tak použití vzorců s prázdnými hodnotami v řadách se záhlavím. Za blbost se má platit a nevadí mi, když nerozumné chování uživatele vede na nefunkčnost úlohy. Na druhou stranu je dobré upozornit, čeho se má uživatel vyvarovat.
Pokud názvy nefungují na tabletech, pak by na to měl Microsoft někde výrazně upozornit. O tomto problému slyším poprvé a takové omezení Excelu je opravdu na pováženou. Co ještě na tabletech z Excelu nefunguje? Jaký Excel je na tabletu nainstalovaný?
Jinak plně souhlasím, že se pokoušíme dělat účet bez hostinského. Je na čase, aby se do diskuse zapojil autor dotazu.

To by některé věci zjednodušilo a jiné otázky by to zase nastolilo (minimálně určení měsíců k sečtení). Vzorce by kvůli tomu možná byly dokonce složitější...

To je o hodně lepší 1 ! Jenom se nesměle ptám: o co kvalitnější výsledek poskytuje vzorec v buňce I2 proti prostému =Suma(H:H) ?
Abych tady nebyl za plného ignoranta přes vzorečky, pokusil jsem se vyřešit zadání s předchozím uspořádáním po svém. Militantně nesnáším supervzorce a v boji proti nim používám tzv. pojmenované vzorce. V příloze je původní sešit od Elninoslov s přidaným listem ode mne pro srovnání.
Je ovšem samozřejmé, že vystěhování celkového obratu za tabulku, jak je to uděláno v druhé verzi, situaci řádově zjednodušuje. Elninoslov tímto krokem skvěle potvrdil moji dřívější větu:
"Nepokládám za rozumné vytvářet zbytečně složité vzorce jen proto, že si úlohu málo rozmyslím..."

Pokud předložený převod vzorců opravdu pochází z dílny Lašáků (nemám důvod pochybovat), pak mne překvapuje ta hloupá chyba převodu, na kterou jsem narazil a kterou jsem již popsal. Lašáka osobně pokládám za mimořádně gramotného autora a chyba toho typu mne v jeho případě překvapuje.

Smekám před těmi vzorci i jejich autorem! Vzorec v buňce C1 je zvlášť vykutálený. Takové vzorce psát neumím a ani to nechci umět. Konstrukce tohoto typu pokládám za nevysvětlitelné a neudržovatelné, i když třebas pracují správně. Určitě bych něco podobného do svého sešitu nevložil. Jako ukázka, co všechno vzorec dovoluje, je to ovšem obdivuhodné.

Klobouk dolů, to muselo dát hrůzu práce! Vůbec se proto nedivím, když můj první pokus o překlad vzorce
=když(A1>0;1;2) do angličtiny dopadl následovně:
=If(AND1>0,1,2)
To se dá jistě opravit. Já pro ten účel používám okno Immediate z vývojového prostředí. Český vzorec do angličtiny převedu dotazem
?selection.formula, když do vybrané buňky napřed vložím české znění vzorce.
Okno Immediate mi odpoví anglickým vzorcem.
Překlad anglického vzorce do češtiny získám např. tak, že anglické znění vložím do buňky povelem
selection.formula=<anglický vzorec> a následně se zeptám
?selection.formulalocal
Okno Immediate mi odpoví českým zněním vzorce.
Co je zvláštní, ještě jsem nepotkal nikoho, kdo by tuto výbornou schopnost okna Immediate využíval.

To zadání mi připadne trochu nedomyšlené: co se má počítat při zadání "leden" a "únor"? Bude se vůbec nějak řešit přechod roků (může tabulka obsahovat stejné měsíce pro různé roky)? Nepokládám za rozumné vytvářet zbytečně složité vzorce jen proto, že si úlohu málo rozmyslím...

Mám dvě poznámky k tématu:
1. Konstanta 65000 je hrozný pozůstatek z Excelu XP (přesněji 65535), kdy to znamenalo max. počet řádků na listu. Ribbonový list jich umí víc než milion, takže 65 tisíc je velmi nedostatečné číslo. Dobře je UsedRange.Rows.Count od Opičáka, který ale určuje LastUsedRow, nikoliv FirstFreeRow!
2. První volný řádek má tedy o jedničku vyšší číslo než poslední obsazený. Existuje ale ještě jiný typ volného řádku, pokud mohou v obsazení řádků vznikat díry. Najít první díru je jiná úloha!

Úloha vypadá řešitelně, ale bez znalosti toho, jak vypadají data, nelze poradit, jak s nimi nakládat.


Strana:  1 ... « předchozí  29 30 31 32 33 34 35 36 37   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