Formula za izračun delovne dobe v Excelu
Ima kdo mogoče idejo, kako bi se dalo v Excelu sestaviti formulo tako, da bi izračunavala delovno dobo v letih, mesecih in dnevih.
Npr. Izračuna naj delovno dobo od 3.8.1982-14.11.2004.
Po ročnem izračunu pride to natanko 22 let, 3 mesece in 12 dni.
Predlogi?
Živjo !
Kaj pa če bi probala v MS Project-u? Je veliko lažje mislim da. Ker tam maš prav opcije za to. Mi smo ga mel na faxu – v sklopu predmeta ekonomika in management- pri managmentu.
LP, Pavle
huh, a ni bil klelele en post od dr. saj vemo kakšnega??
Bohved, komu je idejo ukradel, pa so ga zbrisali 🙂
Skratka, tukaj imaš eno izmed možnih verzij te zadeve.
V Excelu odpri VB editor (Alt+F11), zgoraj desno v oknu Project-VBAProject klikni z desno mišjo nekam na prazen prostor in izberi Insert in Module.
Potem v veliko okno, ki ima na vrhu (General) in (Declarations), prekopiraj tolele :
Function DatumRazlika(Datum1 As Date, Datum2 As Date) As String
Dim d, m, l As Integer
d = Day(Datum2) – Day(Datum1)
If d Function in pod User defined najdeš funcijo DatumRazlika. Naprej pa mislim da bo šlo.
Hej “Hmmm”, tvoj predlog resnično deluje! Hvala tisočkrat! Sedaj bom lahko v službi delovno dobo izračunavala z računalnikom in mi ne bo treba stalno računati na roke! HVALA HVALA HVALA.
Genij si!
Lp
Tarin
Hmmm, še malo pomoči potrebujem. Formulo sem namreč stestirala in nato preverila še z ročnim izračunom. Oglej si spodnje zapise
30.03.2004 30.04.2004 1d 1m 0l – pravilno
29.02.2004 31.07.2004 3d 5m 0l- dodal je 1 dan preveč
28.02.2003 31.07.2003 4d 5m 0l – dodal je 1 dan preveč
31.03.2004 30.04.2004 0d 1m 0l – premalo 1 dan
26.02.2004 29.02.2004 4d 0m 0l – premalo 1 dan
01.02.2004 29.02.2004 29d 0m 0l – izpisati bi moral 1 mesec, saj gre za cel mesec februar
01.02.2003 28.02.2003 28d 0m 0l – izpisati bi moral 1 mesec, saj gre za cel mesec februar
01.08.2004 31.10.2004 31d 2m 0l – izpisati bi moral 3 mesece
01.01.2004 15.04.2004 15d 3m 0l – pravilno
Misliš, da bi se dalo formulo izboljšati glede na moje komentarje zraven? ( Ročni izračun gre po formuli 30-x +1 – torej npr. za drugi primer 30-29 dni +1=2 dni in 5 mesecev )
Lp
Tarin
Poskusi tole: izračunaj koliko si stara. Vpiši datum tekočega dne (današnji), rojstni datum in celice oblikuj na splošno. Sedaj pa rojstni datum odštej od trenutnega, dobila boš dneve. Celico z rezultatom spremeni nazaj v datum in preberi od desne proti levi. Leta, meseci, dnevi.
Moja doba se tako čisto ujema z ročnim izračunom. Lahko, da ga “mede” Februar… saj veš, vsake 4 leta je prestopen.
Lady L, sem sprobala tudi tvoj predlog, vendar tudi po tej poti mi delovne dobe ne izračunava točno. Namreč, delovna ali zavarovalna doba se izračuanava po formuli 30 – x +1., saj se pri izračunu šteje, da ima vsak mesec 30 koledarksih dni – tudi februar, čeprav ima včasih 28 ali 29 dni ter doda se 1 dan ( to je 1. dan zaposlitve ).To na konkretnih primeih pomeni :
1. primer: 01.02.2003-28.02.2003- v excelu po tvoji formuli pride rešitev 27 dni, dejansko pa gre za točno 28 dni in glede na to, da štejemo vsak mesec 30 dni je to točno 1 mesec.
ali
2. primer
30.03.2004-31.04.2004 – po tvoji formuli 30 dni, po moji 1 mes in 1 dan, ker dobim ven 31 dni, ker pa štejemo, da ima vsak mesec 30 dni je to 1 mes in 1 dan.
3. primer:
01.08.2003-31.10.2003 – po tvoji formuli 91 dni, kar je sicer številno pravilno, vendar pa se šteje, da ima tudi oktober 30 dni in zato pretvorimo to število pravilno v mesece kot 3 mesece in ne 3 mesece in 1 dan ( kar pride po tvoji formuli )
Ti izračuni so 100 % točni, saj mi tako kot jaz izračunam na roke, izračuna tudi kadrovska baza, v katero vnašam delovno dobo.
Upam, da ti nisem preveč zakomplicirala, ampak tako pač je.
Imaš še kakšen predlog?
Tele tvoji izračuni imajo en cel kup enih pravil, tako da kake univerzalne formule za to verjetno ne boš našla. Če češ mi lahko po mailu razložiš vso to logiko, da ne bova preveč tule razpredala, pa ti skup vržem formulo, potem jo bova pa še semle pripopala, če jo mogoče še kdo potrebuje.
A mi lahko napišeš svoj mail “Hmmm”?
Lp
Tarin
Forum je zaprt za komentiranje.