Dacă este necesară o evidenţă (superficială – adică, fără a apela la tot felul de CRM-uri -, dar totuşi o evidenţă) pentru angajaţi, Excel-ul poate fi utilizat pentru calculul automat, folosind funcţia DATEDIF.
Obs: Deşi, pe site-ul Microsoft, este figurat că funcţia poate fi folosită de la Excel 2007, interesant este că nu se regăseşte în asistentul de funcţii (wizard) al Excel-ului; deci, din acest punct de vedere, suntem, cum s-ar spune, „pe cont propriu”.
Sintaxa funcţiei DATEDIF este: =DATEDIF(start_date,end_date,unit)
Dacă primele două argumente sunt mai mult decât clare (data de început, respectiv de finalizare a perioadei), ultimul argument – unit – se referă la tipul de informaţii care se doreşte a fi calculat; pot fi diferinte unităţi:
- Y – numărul de ani întregi ale perioadei;
- M – numărul de luni întregi ale perioadei;
- D – numărul de zile ale perioadei.
De asemenea, unit mai poate avea şi câteva derivaţii faţă de unităţile de sus:
- MD – diferenţa de zile dintre cele două date, ignorându-se lunile şi anii acelor date;
- YM – diferenţa de luni, dintre cele două date; zilele şi anii sunt ignorate;
- YD – diferenţa de zile, dintre cele două date, cu ignorarea anilor.
Notă: Cei de la Microsoft recomandă evitarea utilizării unităţii MD, care poate furniza rezultate incorecte; explicaţia ar rezida, printre altele – din punctul meu de vedere -, din faptul că nu toate lunile au acelaşi număr de zile sau, cum este cazul lunii februarie, poate diferi, dacă e vorba de ani bisecţi.
Aşadar, în tabelul nostru:
- în coloana F avem anii întregi (
=DATEDIF(E4;NOW();"Y")
), fiind ignorate restul lunilor întregi; - lunile întregi se regăsesc în coloana G (
=DATEDIF(E4;NOW();"YM")
); - restul de zile care nu constituie o lună întreagă sunt în coloana H (
=DATEDIF(E4;NOW();"MD")
).
Propunerea mea ar fi să ne raportăm la câte zile are o lună şi, apoi să facem o diferenţă cu ziua angajării. Astfel, formula din coloana I (zile, v.1) ar fi: =DAY(EOMONTH(E4;0))-DAY(E4)+1
(acest 1 din finalul formulei este necesar pentru a fi luată în calcul şi ziua respectivă, de la care se porneşte numărarea). Singura remarcă ar fi pentru datele de 1 ale lunii, când formula pe care o recomand ar arăta numărul maxim de zile al acelei luni; de exemplu, azi fiind 1 mai 2020, având un avea angajat chiar azi, mi-ar reda 31 (numărul de zile al lunii mai) şi nu 0. Astfel, am făcut această ajustare, cu ajutorul funcţiei IF, în coloana J (zile, v.2) – fiind, din punctul meu de vedere, varianta cea mai bună (am şi colorat fundalul ei cu verde):
=IF(DAY(EOMONTH(E4;0))-DAY(E4)+1=DAY(EOMONTH(E4;0));0;DAY(EOMONTH(E4;0))-DAY(E4)+1)
La linkul de pe site-ul Microsoft (redat mai sus), propunerea este prin raportarea la prima zi a lunii, rezultând rezultatele din coloana K (zile, v.3), prin folosirea formulei: =E4-DATE(YEAR(E4);MONTH(E4);1)
Pentru a fi cât mai sugestive care din cele 3 variante se apropie de utilizarea simplă a funcţiei DateDiff cu unitatea „MD”, am comparat rezultatul acestor coloane cu coloana H, reflectând cu formatarea condiţionată valorile egale. Tot pentru o eventuală comparaţie, am adăugat şi ultima coloană, pentru a arăta câte zile au trecut de la data angajării şi până la cea de 1 mai 2020 (=DATEDIF(E4;NOW();"D")
).
Ca să punctez puţin şi despre mai puţin cunoscuta funcţie EOMONTH (=EOMONTH(start_date, months)
), pe care am folosit-o mai sus, afişează numărul serial pentru ultima zi din luna care este indicată de argumentul „months” înainte sau după „start_date”; este de la sine înţeles că, dacă argumentul „months” este o valoare pozitivă, va fi afişat pentru o dată viitoare, iar dacă este negativ, va afişa rezultatul pentru o dată trecută.
În condiţiile exemplului pe care l-am folosit am aflat numărul de zile maxim pe care-l are o lună, folosind valoarea 0 pentru argumentul „months” şi aplicând acestei formule funcţia Day, pentru a afla numărul ultimei zile a fiecărei luni (=DAY(EOMONTH(A2;0))
), după cum se poate vedea şi-n această figură.
O variantă de calcul a vechimii, dar folosind MS Access şi VBA am redat în acest articol.
Buna ziua,
Am facut un tabelcu calculul vechimii in munca, la final am adunat anii, lunile si zilele, ceva de genul 15 ani, 26 de luni 40 zile, mi-as dori ca rezultatul sa fie unul de genul 17 ani, 3 luni si 10 zile… adica ce trece de 12 luni sa.mi calculeze la ani si ce trece de 30 zile sa.mi calculeze la luni… sper ca sunt cat de cat inteles, nu am cea mai buna exprimare..
Ma puteti ajuta cu un raspuns?
Va multumesc!
Patriche Cosmin