Tabele cu zilele lunii. formula MONTH.

Presupunem că avem un tabel în Excel cu zilele lunii și alte informații. Problema este că luna ianuarie are 31 de zile, luna februarie are 28 sau 29 de zile etc. Dacă se refolosește tabelul, aproape în fiecare lună trebuie adăugate sau șterse rândurile de la final. În acest exemplu, când alegem o altă lună, Excel va afișa automat numărul de zile din acea lună și ne va scuti să tot adăugăm/ștergem rânduri.

Toate lunile au minim 28 de zile, deci tabelul va conține 28 de rânduri cu numere de la 1 la 28 și încă 3 rânduri (zilele 29, 30 și 31) care conțin formule –funcția MONTH, pentru ca Excel să afișeze sau nu acele zile în tabel.

Ulterior, tabelului i se pot aplica borduri normale pentru primele 28 de rânduri și borduri cu formatare condiționată pentru rândurile cu formulă.

Varianta simplă

(deasupra tabelului, luna este trecută ca și număr)

Excel preia anul din celula G5 și luna din celula E5 de deasupra tabelului.

Acolo unde este nevoie, celulele G5 și E5 pot fi formatate personalizat, ca să conțină deopotrivă text și numere – de exemplu, pentru Luna 2 formatarea va fi "Luna" #0). , iar pentru anul 2021 - "Anul" ###0.

În celulele în care vor apare zilele de 29, 30 și 31 se scrie formula

=IF(MONTH(DATE(G5,E5,X))=E5,X,"")

unde X va fi înlocuit cu 29, 30, respectiv 31 – pe rândurile corespunzătoare.

Ca să „traducem” formula:

DACĂ

(LUNA pentru

(DATA calendaristică preluată din celulele G5 (anul), E5 (luna), ziua ))

ESTE EGALĂ cu LUNA din E5,

scrie ziua - valoarea pentru TRUE,

ALTFEL nu scrie nimic, adică "" - valoarea pentru FALSE).

Formula se bazează pe o proprietate a funcției MONTH. Atunci când Excel primește ca informații valori mai mari sau mai mici (negative) decât valoarea normală (aici pentru numere zile), adună ce este în plus și trece la luna următoare / anul următor (sau luna anterioară / anul anterior - pentru valori negative).

Deci, pentru ziua a 29-a din februarie 2021, Excel va trece la luna martie, care nu va mai fi egală cu valoarea din E5 și va returna valoarea pentru FALSE.

În exemplele de mai jos, a 35-a ZI (DAY)din ianuarie este de fapt 4 februarie, LUNA (MONTH) 2 + 60 de zile returnează luna 4, LUNA (MONTH) a 14-a (Excel înțelege 12+2) devine februarie, iar ANUL (YEAR) 2021+14 luni returnează 2022.

Mai jos, câteva exemple pentru valori negative, pentru funcțiile DAY, MONTH și YEAR.

Varianta cu VLOOKUP

(deasupra tabelului, este trecută denumirea lunii - text)

În acest caz, în fișierul Excel mai este nevoie de un tabel separat cu numele lunilor în română și numărul care corespunde acestora. Tabelul poate fi pe aceeași foaie de lucru sau pe o alta (eventual ascunsă). În imaginea de mai jos, tabelul este alături, doar pentru a explica modul de lucru.

Pentru a prelua numele lunii, mai întâi a fost creat un tabel suplimentar (în celulele $K$22:$K$33) cu numele lunilor. În celula D21, a fost creată o listă cu Data – Data Tools – Data Validation.

În Setări, câmpul Allow (Permitere) se alege List - pentru a alege date din lista verticală. La Source (Sursă) se alege lista cu numele lunilor.

Dacă este nevoie, se pot adăuga mesaje de introducere sau avertizări de eroare în tab-urile Input Message și Error Alert.

După clic pe butonul OK, la selectarea celulei D21, în partea dreaptă a celulei ar trebui să apară o săgeată în jos care indică faptul că acea celulă este o listă ascunsă din care se pot alege informații.

Pentru formula DATE, Excel are nevoie doar de numere (pentru an, lună, zi). Dacă preia valoarea din D21, constată că nu este un număr și returnează o eroare.

De aceea, la dreapta fiecărui nume din intervalul K22:K33, am adăugat și numărul lunii, pe coloana L. Folosind VLOOKUP, Excel va compara numele lunii alese în celula D21 cu numele de pe coloana K și va returna numărul acelei luni.

În celulele corespunzătoare zilelor 29-31 (aici de la D31 până la D33) se introduce formula

=IF(MONTH(DATE(G21,VLOOKUP(D21,$K$22:$L$33,2,FALSE),X))=VLOOKUP(D21,$K$22:$L$33,2,FALSE),X,"")

unde X va fi înlocuit cu 29, 30, respectiv 31 – pe rândurile corespunzătoare.

Formula seamănă cu cea din varianta simplă. Singura deosebire este că am înlocuit adresa celulei pentru preluarea numărului lunii cu formula VLOOKUP.

Adăugarea automată a bordurilor

folosind formatarea condiționată

Pentru ca Excel să adauge automat borduri în jurul zilelor 29-31, se aplică o formatare condiționată.

Mai întâi se selectează celulele la care se va aplica formatarea, apoi din Home – Styles – Conditional Formatting se alege o regulă nouă (New Rule).

Formatarea se va aplica doar la celulele care NU sunt goale (No Blanks), ca în imaginea de mai jos.

Cu clic pe butonul Format se alege formatarea pentru celulele selectate - aici tab-ul Border și la Presets - Outline.

Fișierul folosit ca exemplu poate fi descărcat de aici:

https://drive.google.com/file/d/1yF3PYS8hm4u1ioF6ss3h4DgpnDU6lR89/view?usp=sharing