Příspěvky uživatele


< návrat zpět

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

Pokud se zjišťuje časový interval mezi změřeným začátkem a koncem akce, je filozoficky nesprávné odečítat zaokrouhlené časy. Daleko správnější je zaokrouhlit až rozdíl změřených časů. Dotaz v tomto vlákně hledá správné zaokrouhlení hraničních časů, což ukazuje spíš na ten nesprávný postup.
V případě odděleného zaokrouhlení začátku a konce může běžně vzniknout celkem devět typů rozdílu. Při zaokrouhlení rozdílu mohou vzniknout jen tři podoby:
- neutrálně k bližší hranici intervalu,
- dolů ke spodní hranici intervalu,
- nahoru k horní hranici intervalu.
K tomu přibývá tzv. účetnické zaokroulení. V Excelu všechno komplikuje taková nejapnost, že formát pro funkci ZAOKROUHLIT chce znát počet desetinných míst, zatímco funkce ZAOKR.DOLŮ a ZAOKR.NAHORU vyžadují velikost zaokrouhlovacího intervalu. Začínající uživatel Excelu z toho může mít hlavu jak pátrací balón.

Jestli jsem si to nemyslel:
- deklarační příkaz nemůže být součástí procedury, a proto ho nelze podřídit příkazu If
- volání jména funkce ani Alias nemůže pocházet z proměnné ani z konstanty. Pokus o to vede na kompilační chybu "Expecting string constant"
Jediné, co fungovat podle mého soudu může (a bude), je deklarovat obě API, ale z algoritmu volat jenom tu, která odpovídá konkrétním podmínkám úlohy.

Nevím, jestli je možné deklaraci API vložit do podmínky If ... Else ... End If
Na stejné úrovni "nevím" je otázka, jestli knihovna a Alias mohou být volány textem z proměnné Kdyby to šlo, bylo by to docela elegantní.
Když o tom přemýšlím, tak bych řekl, že nebude fungovat ani jedno, ani druhé. Jdu si to vyzkoušet 4

A co říkáte na vzorec

=KDYŽ(M27>0;CELÁ.ČÁST(M27/12)+1;0)

Myslím, že fungující ukázka v sešitě je nejprůkaznější

Dnes jsem Gorgymu poslal řešení, se kterým jsem ho zjevně potěšil. Bližší informace o použití Řešitele od Luba bohužel nedorazily, takže sem dávám alespoň to svoje řešení, které sice nenachází se zárukou skutečné optimum, ale přesto velmi slušné suboptimální řešení.

Omlouvám se za moc drsný posudek, asi nemám nejlepší den. Na Listu2 jsou data ve sloupcích L:O v pořádku. Rozhoduje to, že ty sloupce mají uvedený dobrý formát.
Myslím, že chcete použít vzorce. Pak do druhého řádku sloupců L:O napište vzorce:
=ČÁST(List1!L2;1;10)
=ČÁST(List1!L2;11;10)
=ČÁST(List1!L2;21;10)
=ČÁST(List1!L2;31;10)
Takto vyplněný řádek zkopírujte do potřebného počtu dalších řádků. Není nutné řešit ani mezery místo dat, ani existenci datumu v poslední položce. Vzorce si s tím poradí samy. Důležité je, že texty ve sloupci L na Listu1 tvrdě dodržují rozdělení po 10 znacích.

Všechno jde, když to má nějaká pravidla. Váš příklad není z hlediska svých pravidel moc šikovně vymyšlený. Řetězec 40 znaků, kde jsou bez separátorů vloženy čtyři termíny s časovým oddělovačem tečka, je klasická ukázka, jak se to dělat nemá. Ale rozluštit to jde. Jen to bude zbytečně složité.
Převod termínů v podobě data na List2, ale jen když na Listu2 žádné datumy nejsou, je už problematický. Ve vašem příkladu jsou buňky ve sloupcích L:O obsazeny, ovšem nikoliv datumy, ale špatně vyhodnocenými znakovými řetězci. Jde o obsazené buňky, nebo to jsou logicky prázdné buňky?

Myslím, že každém dotazu by měl předcházet pokus o využití zabudované nápovědy. Během jedné minuty jsem pod heslem sdílení v nápovědě našel vše, co potřebujete vědět. Nevidím důvod, proč bych měl tu nápovědu tlumočit (je v češtině). Tohle je plýtvání časem lidí, kteří by mohli dělat něco užitečnějšího 9 !

To je typický případ pro využití události Worksheet_Change. V události je nutno pečlivě ošetřit, kterých buněk se událost týká, jinak ta událost může mít "nedozírné následky". A taky by bylo dobré vymyslet, čím viditelnost skrytých sloupců obnovit. Samo se to neudělá!

Nejspíš došlo ke kolizi při duplicitní změně ve stejných buňkách v době mezi dvěma uloženími. Zkuste odstranit tu kolizi. Excel na to má nástroj, který jsem nikdy nemusel použít, protože se úzkostlivě vyhýbám módu sdílení s přístupem více uživatelů do stejných dat. Proto ani neumím poradit, jak taková náprava má probíhat.

Kdysi jsem objevil příčinu záhadného chování u některých sloučených buněk. Roky mi to sloužilo výhradně k tomu, že jsem věděl, jak to chování vzniká a jak ho napravit. Teď poprvé vidím, že by se to mohlo hodit i jako záměrné a chtěné chování.
Klasicky při sloučení obsazených buněk dojde k zachování obsahu pouze první buňky ve sloučené oblasti. Pokud ale na slučovanou oblast vložím formát jiné sloučené oblasti (Domů/Schránka/Kopírovat formát), použije se ten formát bez promazání buněk, které sloučení v tomto případě pouze překryje.
Pokud tedy ve sloupci Přípravek natvrdo uvedu názvy do všech řádků a následně bloky se shodným obsahem překryjí importovaným formátem sloučené oblasti, pak se vlk nažere a koza zůstane celá. Když bude vidět celá sloučená oblast, uvidím jen její první řádek. Pokud se při filtrování něco ze sloučené oblasti skryje, začnou být vidět jinak skryté texty.
Doteď jsem si myslel, že jde o chybu Excelu, dobrou maximálně tak pro rafinované skrytí obsahu buněk. V daném případě to má skutečný logický význam.

V příloze je zobecnění úlohy pro nestejné počty cyklistů v cílových městech. To zadání je užitečné v tom, že použití druhé fáze neposkytuje úplné řešení a že musí nastoupit fáze s vracením dříve vyškrtnutých polí do hry. Pro tuto fázi mne nenapadl žádný jednoduchý postup. Řešení, které v sešitě uvádím, stojí pouze na empirických úvahách.

Metoda branch and bound sama o sobě je velmi prostá. Jiná otázka je, v jakém vědeckém trojobalu ji dnes na internetu prezentují. O její průhlednosti svědčí to, že jsem si celou metodu bez velkých potíží vybavil, a to jsem lhal se třiceti roky. Z výzkumáku jsem odešel v roce 1975, takže optimalizace už nedělám ne třicet, ale čtyřicet let...
Na své sekernické řešení úlohy jsem se šel ještě jednou podívat a s překvapením jsem zjistil, že na první fázi škrtání extrémů lze plynule navázat. Když v tabulce zůstanou bílé hodnoty, znamená to, že každou z nich mohu bez narušení podmínek úlohy smazat; jak v řádku, tak ve sloupci zatím je pro její smazání prostor. Teprve kdyby smazáním nepodbarvené hodnoty došlo k nepřípustnému podbarvení jiných hodnot, pak by nastala skutečná chyba a musel bych se vrátit krok zpátky. Konkrétně v našem příkladu mi po první fázi zbyly nepodbarvené hodnoty C4, D6 a C9. Jejich postupné mazání nezpůsobilo žádnou poruchu, takže tím nakonec vzniklo zdravé a úplné řešení případu.
Netvrdím, že by to takhle dobře nutně dopadlo pokaždé, ale ta druhá fáze stojí za povšimnutí.
Vzpomínka na moji výzkumnickou éru ve mně probudila zájem o tu úlohu. Nevylučuji, že pro ni vytvořím optimalizační algoritmus s využitím zmíněné metody branch and bound. To na počest naší tehdejší skupině matematických metod a Jirkovi Kubátovi, na kterého jsem si dnes se slzou v oku vzpomněl...
Ale to až jestli na mne přijde ta správná "sedmá chuť".

Existuje deset rozumných cest, jak takovou kontrolu provést. S propojovacím odkazem v podmíněném formátu jste použil tu jedenáctou 8.


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

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse