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.