Pßnem Φasu v Excelu

Datum a Φas

autor: Ing. Petr PechßΦek

http://officir.web3.cz

Ulo₧it na disk SeÜit Excelu s uveden²mi p°φklady (komprese ZIP)

Na ·vod

MS Excel standardn∞ pracuje v systΘmu 1900. To znamenß, ₧e najza₧Üφm datumem, se kter²m umφ poΦφtat, je 1.1.1900. (Existujφ nadstavby pro poΦφtßnφ s d°φv∞jÜφmi datumy.) Ka₧dΘ datum mß svΘ po°adovΘ Φφslo. Datum 1. ledna 1900 mß po°adovΘ Φφslo jedna a nap°φklad 2. kv∞tnu 2004 odpovφdß Φφslo 38109. Z toho vypl²vß, ₧e prost²m odeΦtenφm dvou datum∙ zφskßme rozdφl ve dnech. Excel pochopiteln∞ uva₧uje i p°estupnΘ roky, tedy 29. ·nora. Musφm ovÜem uvΘst, ₧e na rozdφl od roku 2000 rok 1900 nebyl p°estupn², jak nßm p°edklßdß Excel. Paradoxnφ je to, ₧e v²vojß°i ·mysln∞ tuto chybu zakomponovali z d∙vodu kompatibility tΘ₧ chyby v Lotusu 1-2-3. A nakonec tohoto odstavce jedna poznßmka. AΦkoliv se Φasto v hovorovΘ °eΦi setkßvßme s pojmem data ve smyslu datumy, pokusφm se v₧dy pou₧φvat slovo datumy.

Zadßvßme datum a Φas

Zadßvßme datum a Φas
Excel za urΦit²ch okolnostφ automaticky formßtuje vlo₧enß data na typ datum nebo Φas. N∞kdy je to v²hodnΘ, jindy ne. ObzvlßÜt∞ problematickΘ typy hodnot jsou v obrßzku vyznaΦeny Φerven∞. TeΦka, dvojteΦka, lomφtko, pomlΦka Φi znamΘnko mφnus p°edurΦujφ vklßdanß data k autoformßtovßnφ. Zadßvßme-li rok pouze dvojΦφslφm, °φdφ se Excel uveden²m nastavenφm. Dle mΘho nßzoru nenφ t°eba jej m∞nit.

Formßtujeme datum

Formßtujeme datum
Jak jste ji₧ asi post°ehli, formßt bu≥ky pro datum urΦujφ t°i zßkladnφ pφsmenka (d ... den, m ... m∞sφc, y ... rok), kdy jejich poΦet vedle sebe urΦuje typ zobrazenφ danΘ ΦasovΘ jednotky. Ta zßkladnφ zobrazenφ jsou uvedena, ostatnφ vyzkouÜejte (menu Formßt / Bu≥ky / karta ╚φslo). Nejprve klepn∞te na polo₧ku datum, vyberte typ, p°epn∞te se na typ vlastnφ, a podle p°edlohy zam∞≥ujte sled pφsmenek v p∙vodnφm zßpisu. V²znam formßtovßnφ je jak vizußlnφ, tak ·Φelov². U₧ te∩ nap°φklad umφte zjistit, kter² den jste se vlastn∞ narodili a co je podstatnΘ, bez pou₧itφ funkce!

Zßkladnφ funkce

Zßkladnφ funkce pro datum a Φas
Aktußlnφ datum Φi Φas se vklßdß pomocφ funkcφ DNES a NYN═, kterΘ se obnovujφ p°i p°epoΦφtßvßnφ listu nebo nap°φklad otevφrßnφ seÜitu. (Jednorßzov∞ lze kombinacφ Ctrl+; vlo₧it do bu≥ky aktußlnφ datum a kombinacφ Ctrl+Shift+: aktußlnφ Φas.) Funkce DATUM si ponechßvß neevropskou posloupnost rok-m∞sφc-den. PovÜimn∞te si chovßnφ tΘto funkce p°i "p°eteΦenφ" m∞sφc∙ p°es dvanßctku. Cifry po°adovΘho Φφsla za desetinnou Φßrkou pak vyjad°ujφ Φßsti dne, tj. nap°φklad 0,5 vyjad°uje polovinu dne, jinak °eΦeno 12 hodin.

PoΦφtßme s datumem

Obrßzek vlevo je vyst°i₧en z kalendß°e systΘmu Windows a slou₧φ k ov∞°enφ vzorc∙ uveden²ch a popsan²ch nφ₧e. (I takov² nekoneΦn² kalendß° lze vytvo°it v Excelu.) A nynφ u₧ se v∞nujme p°φklad∙m.
 
╪ßdek 4 a 9:
Vyu₧φvßno je zde v podstat∞ jen formßtovßnφ Φφsla bu≥ky (Formßt bu≥ky/karta ╚φslo/Druh: Vlastnφ, kdy vychßzφme z formßt∙ pro datum).
╪ßdek 5:
Funkce DENT▌DNE vracφ po°adovΘ Φφslo dne t²dne, jen₧ je zφskßno z ΦφselnΘho vyjßd°enφ datumu. Dvojka p°ed pravou zßvorkou °φkß Excelu, ₧e t²den mß zaΦφnat pond∞lφm s po°adov²m Φφslem jedna.
╪ßdek 6 a 10:
Zdßnliv∞ jde o zbyteΦnΘ pou₧itφ funkce HODNOTA.NA.TEXT v porovnßnφ s °ßdky 4 a 9. OvÜem jedna podstatnß obm∞na tu je. V²sledkem je toti₧ text (viz automatickΘ zarovnßnφ v bu≥ce). Pokud bychom cht∞li nap°φklad kopφrovat °et∞zec 25.2.2004 z bu≥ky C1 na jinΘ mφsto Excelu, dostaneme v₧dy po°adovΘ Φφslo (zde 38042), nikoliv text a to i v p°φpad∞ volby ┌pravy/Vlo₧it jinak.../Hodnoty, kde₧to v p°φpad∞ kopie z bu≥ky, u nφ₧ byl aplikovßn vzorec HODNOTA.NA.TEXT, zφskßme skuteΦn∞ text. (Ve Visual Basicu for Application je vÜe v po°ßdku, nebo¥ vlastnost Range("C1").Text vrßtφ oΦekßvan² °et∞zec "25.2.2004".) Mßme-li zßjem o kopii °et∞zce p°edstavujφcho datum do textovΘho editoru Φi jinΘ externφ aplikace p°es schrßnku, nemusφme se tφmto zab²vat.
╪ßdek 7:
Prvnφ skuteΦn∞ u₧iteΦn² °ßdek, kdy s pomocφ funkce WORKDAY najdeme datum posunutΘ o dan² poΦet pracovnφch dnφ dop°edu Φi zp∞t. Funkce vy₧aduje instalaci Analytick²ch nßstroj∙ (viz Nßstroje/Dopl≥ky) a umφ vylouΦit i svßtky zapsanΘ do oblasti listu.
╪ßdek 8:
Funkce WEEKNUM vracφ po°adovΘ Φφslo t²dne roku odpovφdajφcφ vstupnφmu datumu. Funkce vy₧aduje instalaci Analytick²ch nßstroj∙ (viz Nßstroje/Dopl≥ky). Zde byl vynechßn ·mysln∞ druh² parametr, jeho₧ v²znam je stejn² jako u funkce DENT▌DNE (viz nßpov∞da). P°eΦt∞te si (v angliΦtin∞) ·vahu na strßnkßch Chipa Pearsona na danΘ tΘma. Autor se rovn∞₧ vyjad°uje k normovanΘmu ISO v²poΦtu t²dne roku.
╪ßdek 11:
Zaokrouhlovacφ funkce ROUNDUP zde hraje ·lohu p°i v²poΦtu Φtvrtletφ. Myslφm, ₧e nenφ t°eba vysv∞tlovat princip.
╪ßdek 12 a 13:
Tyto °ßdky krom∞ slo₧it∞jÜφho algoritmu obsahujφ i vlastnφ funkci VBA nazvanou CISLODNE, je₧ je vlastn∞ dopl≥kovou funkcφ k DENT▌DNE. Narozdφl od nφ p°φjφmß jako vstupnφ parametr slovn∞ zadan² den t²dne, nikoliv datum. Jste-li programßtory, jejφ k≤d si m∙₧ete prohlΘdnout v editoru VBA (stiskn∞te Alt+F11 v prost°edφ Excelu) po spuÜt∞nφ seÜitu s p°φklady (dostupn² ke sta₧enφ z tΘto strßnky).
╪ßdky 14 a₧ 17:
Fakt, ₧e Excel pracuje s datumy jako po°adov²mi Φφsly je zde uplatn∞na k p°iΦφtßnφ a odΦφtßnφ dnφ Φi t²dn∙.
╪ßdek 18 a 19:
Pro zjiÜt∞nφ datumu posunutΘho od danΘho datumu o n∞jak² ten m∞sφc nabφzφ Excel funkci EDATE urΦenou p∙vodn∞ pro hospodß°skΘ v²poΦty. Funkce vy₧aduje instalaci Analytick²ch nßstroj∙ (viz Nßstroje/Dopl≥ky).
╪ßdek 20 a₧ 23:
M∙₧e se stßt, ₧e pot°ebujeme ohraniΦit m∞sφc, ve kterΘm se datum nachßzφ. VystaΦφme si s b∞₧n²mi funkcemi. Funkce EOMONTH je zde uvedena jen jako alternativnφ mo₧nost a vy₧aduje instalaci Analytick²ch nßstroj∙ (viz Nßstroje/Dopl≥ky).

PoΦφtßme s Φasem

PoΦφtßme s Φasem
P°φklady ukazujφ, jak se vypo°ßdat s nejΦast∞jÜφmi problΘmy: p°evod jednotky Φasu na jin² zßpis, sΦφtßnφ hodin p°esahujφcφch jeden den a rozdφly Φas∙ p°ekraΦujφcφch p∙lnoc.

Mezi dv∞ma datumy...

Mezi dv∞ma datumy
Jak ji₧ bylo °eΦeno, prost²m odeΦtem dvou datum∙ zφskßme rozdφl ve dnech (bu≥ku je nutno p°eformßtovat na obecn² typ). Ale jak je tomu p°i v²poΦtu m∞sφc∙ a let? Roky jsou p°estupnΘ, m∞sφce majφ prom∞nliv² poΦet dn∙... nebudu Vßs nynφ trßpit teoriφ, jen zd∙raznφm, ₧e rozdφl poΦφtan²ch jednotek je v₧dy zßvisl² na jednotkßch o °ßd menÜφch (roky na m∞sφcφch, m∞sφce na dnech atd.). Jak tedy z toho ven? Jak se dopoΦφtat nap°φklad stß°φ patnßcti let, t°i m∞sφc∙ a dvou dn∙? Smutn²m faktem je neznalost mßlo prezentovanΘ a dokumentovanΘ funkce DATEDIF (kterß naÜt∞stφ dφky zachovßnφ kompatibility s Lotusem 1-2-3 v Excelu z∙stßvß - v nßpov∞d∞ ji hledejte z karty Rejst°φk). No a pokud vßm to nedß a vytvo°φte svou vlastnφ funkci, m∙₧ete ji porovnat s ostatnφmi (v p°ilo₧enΘm seÜitu viz k≤d VBA, strßnky Chipa Pearsona)

Generßtor Φasov²ch °ad

Generßtor °ad
Generßtor °ad, a¥ u₧ datumov² Φi Φasov² (v seÜitu ke sta₧enφ jsou uvedeny oba) slou₧φ k pohodlnΘmu vytvß°enφ posloupnostφ s p°φr∙stkem jednΘ jednotky, Φi vφce Φasov²ch jednotek souΦasn∞. VolitelnΘ je jak poΦßteΦnφ datum, tak jednotka kroku. Po vypln∞nφ po₧adovan²ch hodnot pouh²m ta₧enφm bu≥ky (za ·chytn² bod) v °ßdku 12 a pat°iΦnΘm sloupci dojde k automatickΘmu vygenerovßnφ °ady, jφ₧ nßsledn∞ kopφrovßnφm p°esunete do svΘho seÜitu.
Generßtor pracovnφch dnφJi₧ d°φve byla zmφn∞na mo₧nost zahrnutφ svßtk∙ do funkcφ NETWORKDAYS a WORKDAY. Zde je toho vyu₧ito k vytvo°enφ generßtoru pracovnφch dnφ. SamotnΘ datumy svßtk∙ jsou vytvß°eny automaticky v zßvislosti na zadanΘm roku v bu≥ce U3. V korespondenci s tφm je nutnΘ volit i poΦßteΦnφ datum °ady v bu≥ce U23. Ta₧enφm U24 stejn∞ jako v p°edeÜlΘm p°φpad∞ zφskßme pokraΦovßnφ °ady.

┌lohy k zamyÜlenφ

  • Zkuste s pomocφ Excelu pop°ßt sv²m znßm²m p°i p°φle₧itosti 10000 dn∙, co jsou na sv∞te!
  • Vφte, kdo jsou (byli) prvot°φdnφ experti pro v²poΦty s Φasem? Odpov∞∩ znφ: Vojßci zßkladnφ slu₧by. Jejich nßstrojem byla papφrovß tabulka o zhruba 365 dnech, tzv. "hektarka". Dokß₧ete vytvo°it elektronickou podobu s ·daji o dnech uplynul²ch, zb²vajφcφch? Tabulka by m∞la poΦφtat s dovolenou, svßtky, vφkendov²mi dny...
  • Napadß vßs, jak ov∞°it, zda-li je rok p°estupn²?

P°estupn² rok

Ov∞°φme existenci 29. ·nora roku umφst∞nΘho nap°φklad v bu≥ce A1. V²sledkem je PRAVDA v p°φpad∞, ₧e se jednß o rok p°estupn², jinak dostaneme v²sledek NEPRAVDA.

=KDYÄ(M╠S═C(DATUM(A1;2;29))=2;"PRAVDA";"NEPRAVDA")

A jeÜt∞ jednou... Rok je p°estupn², jestli₧e je beze zbytku d∞liteln² Φty°mi a ned∞liteln² stem nebo je d∞liteln² stem a souΦasn∞ Φty°mi sty. Ov∞°φme takto hodnotu umφst∞nou v bu≥ce A1. V²sledkem je PRAVDA v p°φpad∞, ₧e se jednß o rok p°estupn², jinak dostaneme v²sledek NEPRAVDA.

=NEBO(A(MOD(A1;4)=0;MOD(A1;100)>0);A(MOD(A1;100)=0;MOD(A1;400)=0))

P°ipomφnßm, ₧e rok 1900 p°estupn² nebyl, i kdy₧ Excel tvrdφ n∞co jinΘho.

VelikonoΦnφ pond∞lφ

Tento svßtek je zßvisl² na ·pl≥ku m∞sφce. O tom, jak autor doÜel k nßsledujφcφmu vzorci, je znßmo jen velmi mßlo. PodstatnΘ je, ₧e je funkΦnφ. V nßsledujφcφm p°φkladu zjiÜ¥ujeme datum pro rok umφst∞n² v bu≥ce A1.

=K╚(("4/"&A1)/7+MOD(19*MOD(A1;19)-7;30)*14%;)*7-5

Ulo₧it na disk SeÜit Excelu s uveden²mi p°φklady (komprese ZIP)

pro Φasopis