![](https://cdn.wiki-base.com/7103147/excel_formula_dynamic_calendar_grid__2.png.webp)
Sažetak
Dinamičku mrežu kalendara možete postaviti na Excel radnom listu s nizom formula, kao što je objašnjeno u ovom članku. U prikazanom primjeru formula u B6 je:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)
gdje je "start" imenovani raspon K5, a sadrži datum 1. rujna 2018.
Obrazloženje
Napomena: Ovaj primjer pretpostavlja da će datum početka biti naveden kao prvi u mjesecu. U nastavku pogledajte formulu koja će dinamički vratiti prvi dan tekućeg mjeseca.
S prikazom rasporeda mreže, glavni je problem izračunati datum u prvoj ćeliji kalendara (B6). To se postiže ovom formulom:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)
Ova formula utvrđuje nedjelju prije prvog dana u mjesecu pomoću funkcije IZBOR za "vraćanje" pravog broja dana na prethodnu nedjelju. CHOOSE savršeno funkcionira u ovoj situaciji jer omogućuje proizvoljne vrijednosti za svaki dan u tjednu. Ovu značajku koristimo za vraćanje na nulti dan kada je prvi dan u mjesecu nedjelja. Više detalja o ovom problemu nalazi se ovdje.
S prvim danom uspostavljenim u B6, ostale formule u mreži jednostavno povećavaju prethodni datum za jedan, počevši od formule u C6:
=IF(B6"",B6,$H5)+1
Ova formula testira ćeliju za vrijednost odmah s lijeve strane. Ako nije pronađena vrijednost, ona povlači vrijednost iz stupca H u gornjem retku. Napomena $ H5 mješovita je referenca za zaključavanje stupca dok se formula kopira kroz mrežu. Ista se formula koristi u svim stanicama, osim u B6.
Pravila uvjetnog oblikovanja
Kalendar koristi formule za uvjetno oblikovanje kako bi promijenio oblikovanje kako bi zasjenio prethodne i buduće mjesece i istaknuo trenutni dan. Oba se pravila primjenjuju na cijelu mrežu. Za prethodne i sljedeće mjesece formula je:
=MONTH(B6)MONTH(start)
Za tekući dan formula je:
=B6=TODAY()
Za više detalja pogledajte: Uvjetno oblikovanje s formulama (10 primjera)
Naslov kalendara
Naslov kalendara - mjesec i godina - izračunavaju se ovom formulom u ćeliji B4:
=start
Formatirano s prilagođenim formatom broja "mmmm yyyy". Za centriranje naslova iznad kalendara, raspon B4: H4 ima vodoravno poravnanje postavljeno na "centriranje preko odabira". Ovo je bolja opcija od spajanja ćelija, jer to ne mijenja strukturu mreže na radnom listu.
Vječni kalendar s trenutnim datumom
Da biste stvorili kalendar koji se automatski ažurira na temelju trenutnog datuma, možete upotrijebiti formulu poput ove u K5:
=EOMONTH(TODAY(),-1)+1
Ova formula dobiva trenutni datum s funkcijom DANAS, a zatim dobiva prvi dan tekućeg mjeseca pomoću funkcije EOMONTH. Zamijenite DANAS () bilo kojim danom da biste izgradili kalendar u drugom mjesecu. Više detalja o tome kako EOMONTH radi ovdje.
Koraci za stvaranje
- Sakrij linije mreže (nije obavezno)
- Dodavanje obruba na B5: H11 (7R x 7C)
- Naziv K5 "početak" i unesite datum poput "1. rujna 2018"
- Formula u B4 = početak
- Oblikujte B4 kao "mmmm yyyy"
- Odaberite B4: H4, postavite poravnanje na "Centriraj odabir"
- U rasponu B5: H5, unesite kratice dana (SMTWTFS)
- Formula u B6 = start-IZBOR (TJEDAN (početak), 0,1,2,3,4,5,6)
- Odaberite B6: H11, primijenite prilagođeni format broja "d"
- Formula u C6 = IF (B6 "", B6, $ H5) +1
- Kopirajte formulu u C6 u preostale ćelije u mreži kalendara
- Dodavanje pravila prethodnog / sljedećeg uvjetnog oblikovanja (vidi gornju formulu)
- Dodajte trenutno pravilo uvjetnog oblikovanja (pogledajte gornju formulu)
- Promijenite datum u K5 u drugi datum "prvog u mjesecu" za testiranje
- Za vječni kalendar, formula u K5 = EOMONTH (DANAS (), - 1) +1