MAGYAR CSILLAGÁSZATI EGYESÜLET - CSILLA LISTA ARCHIVUM #6828

Válas Péter Naptáras-exceles kérdés


Dátum: Sat, 4 Sep 2010 22:48:37 +0200
Feladó: Válas Péter
Tárgy: Naptáras-exceles kérdés


Üdv a nagyérdeműnek!

Az Excel 1900. január 1-jétől kezel dátumokat. (Mégpedig az 1900. március 1.
előttieket hibásan, mivel valamelyik agytröszt az 1900-at is szökőévnek
tekintette, de a Microsoft már megmondta, hogy ezt a hibát kompatibilitási
okból nem fogják kijavítani. Ki lehet próbálni, az egyik cellába írjunk
1900. febr. 28-at, a másikban meg adjunk hozzá egyet, kijön a febr. 29.)

Na most hogyan lehetne kezelni az 1900 előtti dátumokat? Pl. megállapítani,
milyen napra estek, vagy meghatározni a köztük eltelt időt. Mi persze azt
mondjuk, hogy logikus lenne mindent JD-be vagy MJD-be konvertálni, és akkor
nem is lenne ez az 1900-as korlát, de a Microsoft, mivel nem szólt nekik
senki, hogy 400 éve fel van találva a megoldás, más utat választott (minden
dátum egy számnak felel meg, 1900. január 1. = 1 stb.), és én szeretnék
ennél megmaradni, és az Excel beépített függvényeit használni (már csak
azért is, mert továbbadható tudásra van szükségem, de egyszerűbb is így).
Tekintsünk most el a naptárak bonyodalmaitól, tehát korlátozzuk
Gergely-naptár szerinti dátumokra a problémát.

Valamikor azt találtam ki, hogy az 1900 előtti évszámokhoz hozzáadok
2000-et, tehát ha az A1, B1, C1 cellák tartalmazzák a dátum komponenseit (é,
h, n), akkor a DÁTUM(A1+2000;B1;C1) képletet használom. Erre a következő
gondolatmenet ösztönzött:
2000*365 = 730 000. Ehhez jön 485 nap, mert 2000 évben 15 darab 400-zal nem
osztható százas van, tehát 500-15 szökőév. Az összesen 730 485, ami egy
héttel osztható szám. Tehát az évszámhoz 2000-et adva olyan dátumot kapok,
amelyik a hét ugyanazon napjára esik, és szökőévek tekintetében is az
eredetivel egyformán viselkedik, mivel öt teljes 400 éves ciklussal van
eltolva. Vagyis ugyanannyi lesz a két dátum között eltelt napok száma is.

Most viszont azt látom, hogy ha a fenti cellaelrendezésnél A1-be 1900 előtti
évszámot írok, és simán a DÁTUM(A1;B1;C1) képletet használom, akkor egy 1900
évvel nagyobb dátum jelenik meg. (Excel 2000, 2003 alatt tesztelve.) Hol a
bibi?
a) Én számoltam jól, és ők tévedtek.
b) Ők számoltak jól, és én tévedtem.
c) Valami módon ez a száz év kompenzálná az 1900-as évben elkövetett hibát?
Nem valószínű.
d) Mivel negatív tartományba esett, laza mozdulattal hozzáadták a
kezdődátumnak tekintett 1900-at, és nem is foglalkoztak a naptári
következményekkel, csak akartak kapni valamilyen dátumot az értelmezési
tartományból (a user meg olvasson manuált, és vegye tudomásul, hogy 1900
előtt nem léteztek évek). (Ez hihetőbbnek tűnik az előzőnél.)
e) Mindenki tévedett.
f) Egyéb, éspedig:

Segítsetek, mert összezavarodtam kicsit.
Teknőc


   
Kezdőlap | Levelezőlisták