to Lubo: budeme se přetahovat, na které straně testu je hranice intervalu? Stejně tak bych se mohl ptát, jak se vyhodnotí v jiných vzorcích M27 = -50?
Citlivost na hranici u vzorce v dotazu je 0,01. Mám se ptát, jak podle něj dopadne M27 = 12,005 ?
Vždycky jsem pokládal za sporné, že lokalizace Excelu znamená také lokalizaci názvů pro funkce listu. Kdo spolupracuje s jinojazyčnými Excely, má problém. Kdo používá VBA, má problém. Vše "vylepšuje" používání rozdílných oddělovačů v různých jazykových skupinách.
Bohužel to tak je a nikdo s tím asi nic nenadělá. Uvedená situace se promítá mj. do příspěvků na tomto fóru. V Čechách je jaksi normální pracovat s českým Excelem, který užívá české názvy funkcí s českou interpunkcí. Vedle toho určitá skupina vývojářů pracuje s jinými (naštěstí téměř výhradně s anglickými) verzemi Excelu. Takže se v příspěvcích potkáme s radou "použij =PROPER(A1)" a s reakcí "to já jsem našel jinou funkci =VELKÁ2(A1)". Jak má začátečník vědět, že jde o totožnou funkci? Toto fórum přijalo bohulibý úkol pomáhat méně zkušeným. Je rozumné právě od nich chtít, aby tušili, že SUMPRODUCT je SOUČIN.SKALÁRNÍ a INDIRECT je NEPŘÍMÝ.ODKAZ? A že čárka je středník a lomítko je tečka?
V zájmu skupiny tazatelů na tomto fóru se obracím na uživatele anglické verze Excelu: uvádějte prosím znění vzorců na tomto fóru pokud možno v české notaci (slovenský Excel ji, pokud vím, také používá). Kdyby vám to činilo potíže, uveďte prosím alespoň upozornění, že vzorec je zapsaný v anglické notaci. Pomůže to snížit zmatek kolem validity odpovědí. Jak se anglický vzorec přepíše do češtiny, si pak i začátečník dokáže zjistit, když si přečte diskusi, která na tomto fóru nedávno k danému tématu proběhla .
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
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 !
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.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.