Формула на Excel: Динамична календарна мрежа -

Съдържание

Обобщение

Можете да настроите динамична календарна мрежа на работен лист на Excel с поредица от формули, както е обяснено в тази статия. В показания пример формулата в B6 е:

=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)

където „старт“ е наименуваният диапазон K5 и съдържа датата 1 септември 2018 г.

Обяснение

Забележка: Този пример предполага, че началната дата ще бъде предоставена като първото от месеца. Вижте по-долу формула, която динамично ще връща първия ден от текущия месец.

С оформлението на мрежата, както е показано, основният проблем е изчисляването на датата в първата клетка в календара (B6). Това се прави с тази формула:

=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)

Тази формула определя неделята преди първия ден от месеца, като използва функцията CHOOSE, за да "върне" правилния брой дни до предишната неделя. CHOOSE работи перфектно в тази ситуация, тъй като позволява произволни стойности за всеки ден от седмицата. Използваме тази функция, за да върнем нула дни назад, когато първият ден от месеца е неделя. Повече подробности за този проблем са предоставени тук.

С първия ден, установен в B6, другите формули в мрежата просто увеличават предишната дата с една, започвайки с формулата в C6:

=IF(B6"",B6,$H5)+1

Тази формула тества клетката веднага вляво за стойност. Ако не е намерена стойност, тя извлича стойност от колона H в реда по-горе. Забележка: $ H5 е смесена препратка, за да заключите колоната, докато формулата се копира в цялата мрежа. Същата формула се използва във всички клетки с изключение на B6.

Правила за условно форматиране

Календарът използва формули за условно форматиране, променя форматирането, за да засенчи предходните и бъдещите месеци и да подчертае текущия ден. И двете правила се прилагат към цялата мрежа. За предходни и следващи месеци формулата е:

=MONTH(B6)MONTH(start)

За текущия ден формулата е:

=B6=TODAY()

За повече подробности вижте: Условно форматиране с формули (10 примера)

Заглавие на календара

Заглавието на календара - месец и година - се изчислява с тази формула в клетка B4:

=start

Форматиран с персонализиран формат на числото "mmmm yyyy". За центриране на заглавието над календара, обхватът B4: H4 има хоризонтално подравняване, зададено на "центриране по избор". Това е по-добра опция от обединяването на клетки, тъй като не променя структурата на мрежата в работния лист.

Непрекъснат календар с текуща дата

За да създадете календар, който се актуализира автоматично въз основа на текущата дата, можете да използвате формула като тази в K5:

=EOMONTH(TODAY(),-1)+1

Тази формула получава текущата дата с функцията TODAY, след това получава първия ден от текущия месец, използвайки функцията EOMONTH. Заменете ДНЕС () с дадена дата, за да изградите календар в различен месец. Повече подробности за това как работи EOMONTH тук.

Стъпки за създаване

  1. Скриване на мрежовите линии (по избор)
  2. Добавете граница към B5: H11 (7R x 7C)
  3. Име K5 „старт“ и въведете дата като „1 септември 2018 г.“
  4. Формула в B4 = начало
  5. Формат B4 като „мммм гггг“
  6. Изберете B4: H4, задайте подравняването на "Центриране по избор"
  7. В диапазон B5: H5, въведете съкращения за деня (SMTWTFS)
  8. Формула в B6 = start-CHOOSE (WEEKDAY (start), 0,1,2,3,4,5,6)
  9. Изберете B6: H11, приложете персонализиран номер формат "d"
  10. Формула в C6 = IF (B6 "", B6, $ H5) +1
  11. Копирайте формула в C6 в останалите клетки в решетката на календара
  12. Добавяне на правило за предварително / следващо форматиране (вижте формулата по-горе)
  13. Добавете текущо правило за условно форматиране (вижте формулата по-горе)
  14. Променете датата в K5 на друга „първа от месеца“ за тестване
  15. За вечен календар формула в K5 = EOMONTH (ДНЕС (), - 1) +1

Интересни статии...