Nastavení popisků a dělení osy X v grafech XY Excelu jako čas

jako doplněk pro Microsoft Excel


   Protože už od verze Excelu 2007 včetně postrádám při tvorbě grafů XY kreslených v závislosti na čase (čas je na vodorovné ose X) možnost jednoduše zadat parametry takové osy jako čas, pro urychlení práce jsem kdysi udělal doplněk pro Excel, který toto dělá.

   Popis jak v Excelu funguje a dřív fungovalo (před Excelem 2007) formátování osy jako čas: když se v XY grafu Excelu na osu použijí časové údaje, Excel je chápe jako číslo podle jeho reprezentace času (v základním nastavení počítá dny od 1.1.1900 a hodiny jsou jako desetiny takto: 24 hodin = 1 den, tedy jednička, potom třeba 12 hodin = 0,5 a např. časový údaj 12:00:00 hodin dne 1.1.2023 bude v reprezentaci Excelu číslo 44927,50) a dělení osy udělá desetině pro tuto číselnou reprezentaci, což ale neodpovídá dělení času 24/60/60, takže popis osy je dost „guláš“. U dřívějších verzí Excelu (před Excelem 2007) stačilo, když se v takovém případě do okna pro nastavení osy zadal časový údaj formátovaný jako čas (např. ve tvaru 12:00:00 1.1.2023) a Excel to převedl na jeho reprezentaci času a takto to po vložení ve vstupním okně zobrazil. Nebylo sice moc intuitivní vidět v okně pro vstup dělení osy místo času jakési číslo, ale aspoň něco, a hlavně Excel tenkrát osu nastavil podle této vložené hodnoty a její popisky v grafu byly v tomto případě formátované jako čas, takže to celkem vyhovovalo, zobrazení čísla u nastavování se dalo překousnout. Jenže od verze 2007 včetně podle mých zkušeností už excel takovéto nastavení nebere, např. Excel 2016 to pravděpodobně chápe jako chybu, ovšem neřekne nic, takovýto vstup nevezme a do příslušného pole vrátí původní číselnou hodnotu, která tam byla před tímto vstupem, hrrrůza jak už jsem u tady jiných programů pro Excel psal, Excel je čím dál tím „lepší a lepší“.

   Takže jsem udělal zde popisovaný doplněk (soubor .xlam), který je po jeho instalaci do Excelu vždy k použití (volá se z pásu karet při vybraném – aktivním – grafu který má na vodorovné ose X časové údaje a byl dříve v Excelu vyroben) a po zavolání zobrazí okno s údaji pro X osu a po změně těchto údajů se hned mění také graf, takže je vidět „co to udělá“. Nakonec je provedené změny možno buď použít, nebo zrušit a vrátit graf do stavu před zavoláním tohoto doplňku.

   Doplňky pro Excel mají tu výhodu, že na jejich funkčnost (podle mých zkoušek) nemá vliv nastavení volby povolení nebo zakázání spouštění tzv. maker v centru zabezpečení Excelu, ale nevýhoda je v trochu složitější instalaci do Excelu, což bude dále popsáno.

   Protože, jak už bylo zmíněno, doplněk se spouští z tzv. pásu karet, je určen pro Ekscél od verze 2007 a novější („nejnovější“ verze na které byl zkoušen je verze 2019, novější ani Ekscél 365 nemám, ale fungovat by to v novějších verzích mělo), ve verzích před 2007 pravděpodobně fungovat nebude, protože ještě pás karet nemají, a také by doplněk musel být uložen jako soubor .xla, což není. Funguje tedy JEN ve verzích Excelu od 2007 včetně a novějších, ve starších Excelech a jinde nefunguje, takže tam ani neručím za funkčnost.


Instalace doplňku do Excelu:

    Instalaci popíšu pro verze Excelu novější než 2007, protože ve verzi 2007 je nepatrně jiná a moc nepředpokládám, že Excel 2007 ještě někdo používá. (Například Excel 2007 instaluje doplňky do adresáře s názvem lokalizovaným do použitého jazyka, třeba v češtině je název adresáře "Doplňky", místo v pozdějších verzích použitého "Add-Ins" bez ohledu na lokalizaci, jak je zde dále popisováno.)

   Nejlépe je doplněk stažený z odkazu tady níže (soubor „Časové parametry osy X.xlam“) zkopírovat do adresáře Excelu pro doplňky, i když Excel umožňuje doplňky mít i v jiných adresářích, jejich přidávání umožňuje adresáře procházet. Já tady popíšu instalaci do implicitního adresáře pro doplňky, ovšem pokud by někdo neměl tzv. práva pro přístup do něj (tzn. měl by na počítači úplné bezpráví), může jej instalovat odkudkoliv, ale pokud by soubor doplňku později někdo smazal, už by samozřejmě nešel spustit. Implicitní adresář pro doplňky má tu „výhodu“, že je jednak dost schovaný a druhak ani nevím, a jak je to na různých verzích Windows s přístupovými právy k němu, tedy jestli se na něj dostane každý „používatel“, jestli jde vůbec smazat atp. Takže implicitní adresář pro doplňky (pro novější verze Ekscelu než 2007) se jmenuje „AddIns“ (bez uvozovek) a je (většinou) v následující cestě:

       C:\Users\“používatel“\AppData\Roaming\Microsoft\AddIns

       Kde:      C:                      je systémový disk (je na něm instalován operační systém)
                     "používatel"    je název účtu na počítači, pro který chceme doplněk instalovat

   A stažený doplněk (soubor „Časové parametry osy X.xlam“) se tedy do tohoto adresáře zkopíruje.

   Potom se spustí (nejlépe prázdný, ale není to podmínka) Excel a v něm se postupně klepne na: „Soubor“ a tam na „Možnosti“ a v okně které se po klepnutí na „Možnosti“ otevře se klepne na „Doplňky“:

Instalace doplňků 01

   a po klepnutí na „doplňky“ by mělo být viděti toto:


   Zde se klepne na „Přejít“, jak je na obrázku naznačeno, a potom se zobrazí okno pro volbu doplňků, které vypadá nějak takto:

Instalace doplňků 03

   Pokud byl tedy soubor doplňku „Časové parametry osy X.xlam“ dříve zkopírován do adresáře „…AddIns“ bude v podokně „Dostupné doplňky“ vidět řádek „Nastavení vodorovné osy(X) jako čas“, tak jak je to na obrázku. To je vkládaný doplněk, jak je vidět i z textu, který je zobrazen pod podoknem, takže se klepne na prázdný čtvereček před textem (zafajfkuje se), jak je na obrázku naznačeno. Tím je doplněk zařazen k používání a v pásu karet přibude ucho „Programy ŇUF“.

   Jestliže doplněk není v podokně viděti, s největší pravděpodobností nebyl (není to nutné), nebo nemohl být (bezpráví v přístupových právech), do adresáře „…AddIns“ zkopírován a musí se nejprve klepnutím na tlačítko „Procházet“ vedle podokna s doplňky najít a vybrat z jiného adresáře kam byl při stažení uložen, potom už by vidět měl být, takže se klepnutím na prázdný čtvereček zafajfkuje.


Ovládání doplňku:

   Ucho „Programy ŇUF“ s myšokurzorem ukazujícím na tlačítko doplňku při aktivním grafu v samostatném okně ukazuje následující obrázek:

Vytvořený gřaf bez úpraf

   Aby doplněk fungoval, musí mít vybrán (aktivní) nějaký graf dříve vytvořený v excelu s vodorovnou osou, která se dá jako čas formátovat, a je jedno, jestli je graf na samostatném listě, nebo je jen součástí nějakého listu. Vybrán však být musí (klepnutím myši na graf a graf by měl být orámovaný jako na obrázku) aby doplněk věděl, který graf má zpracovávat, jinak se po klepnutí na tlačítko doplňku v pásu karet zobrazí jen chybová hláška.

   Na zobrazeném grafu je vidět osa X jako čas, tak jak ji udělá Excel, kdy rozdělení na minimum, maximum, velké a malé dílky je desetinné, což z popisků formátovaných jako čas není na první pohled patrné. V okně „Formát osy“ vedle grafu je vidět, jak Excel postupuje při zadávání párametrů osy, tedy že se jedná o čísla a s desetinným dělením na velké a malé dílky. Například u zadání minima osy v tomto případě Excel nabídne hodnotu 43581,74, kde celá část je datum měření 26.4.2019 a desetinná část 0,74 odpovídá času 17:45:36. U času je chyba pravděpodobně způsobená zadáním hodnoty jen na dvě desetinná místa, protože „kulatý“ čas 17:45:00 odpovídá v desetinné reprezentaci číslu 0,73958333…, takovou hodnotu Excel ovšem nenabídne, ale nicméně ji umožňuje vložit, no, ale kdo to má počítat, zvláště když s grafy s časovou osou pracuje často… A z grafu je jasně vidět, jak to potom dopadne, že tím pádem rozdělení na dílky neodpovídá rozdělení podle hodin, minut a sevteřin, předpokládalo by se třeba rozdělení na velké dílky po 15 minutách kdy by jejich hodnoty byly 17:45:00; 18:00:00; 18:15:00 atd. a ne jak je v tomto grafu po 14 minutách a 24 sevteřinách, a pro dělení velkých dílků po 15 minutách by malé dílky měly být třeba po minutě, mělo by jich tedy být 15, a ne jako Excel v grafu nabízí jen 5 dělených asi po 3 minutách a 8,33… vteřinách, hezké kulaté dělení je to, že…

   Jeli tedy graf vybrán, po klepnutí na tlačítko doplňku se zobrazí jeho okno s hodnotami, které umí měnit. Nejsou to samozřejmě všechny možnosti, které osy v grafech Excelu mají, ale snažil jsem se tam dát ty nejhlavnější pro běžné používání. Okno doplňku otevřené nad grafem vypadá takto:

Gřaf s formulářem s upravenýma hodnotama osy

   Zde už je zobrazený stav po klepnutí na tlačítko „Aut. dopočítat přes celý rozsah dat“, kdy je časová osa X zobrazena od 18:00:00 do 20:30:00 s rozdělením na velké dílky po 30 minutách a malé dílky po 10 minutách.

   Jak je z okna doplňku viděti, kromě dělení osy umí nastavovat i následující další hodnoty: formát popisků osy, jejich orientaci, kreslení malých a velkých dílků a mřížky, kreslení prázdných buněk a volit formát času 12/24 hod. Kromě změn dělení osy se změny ostatních parametrů zobrazí v grafu hned po jejich provedení, změny dělení osy se projeví až po vybrání jiného prvku (klepnutí na něj myší), což je kvůli kontrolám zadávaných údajů po jejich vstupech, aby byly v grafu zobrazovány jen „jedlé“ hodnoty. Takže je možné provedené změny hned kontrolovat v grafu, případně je upravovat až bude graf odpovídající představám, a potom buď klepnutím na tlačítko „Nastavit“ předat změny do grafu a zavřít doplněk, nebo klepnutím na tlačítko „Zrušit (nic nebude změněno)“ změny zahodit, tedy graf se vrátí do stavu před úpravami a doplněk ukončit. Po klepnutí na „Nastavit“ jsou sice změny dány do grafu, ovšem soubor Excelu s grafem je potřeba s nimi ještě ručně uložit Excelem, mají-li být změny v něm uloženy natrvalo.

   Hodnoty pro minimum, maximum a průsečík s osou Y se vždy nastavují ve tvaru „dd.mm.rrrr hh:mm:ss“ když časové údaje obsahují i datum, nebo jen ve tvaru „hh:mm:ss“ když datum neobsahují. Není možno použít datum v jiných formátech, např. „rrrr.mm.dd“ a jiných, to by program buď chápal jako chybu a vstup neumožnil, anebo by to špatně interpretoval. Hodnoty pro dělení na velké a malé dílky vstupují buď ve tvaru „hh:mm:ss“ pro dělení podle hodin, minut a sevteřin , anebo, pokud má graf rozsah přes více dnů tak ve tvaru „000 hh:mm:ss“, kde na pozici 000 vstupuje počet dnů pro dílek. Příklad grafu s dělením na dny je na následujícím obrázku:


   Poznámka: doplněk umožňuje (zatím) časové údaje nastavovat JEN NA HLAVNÍ VODOROVNÉ OSE. Neumožňuje tedy nastavovat časové údaje na vedlejší vodorovné ose, ani na svislých osách.


Program je ke stažení zde: Časové parametry osy X.xlam