Направите календар у Екцелу са једном формулом помоћу формуле унете у низ.
Погледајте ову цифру:

Та формула,, =Cool
је иста формула у свакој ћелији од Б5: Х10! Погледајте:

Унет је у поље када је први пут изабран Б5: Х10. У овом чланку ћете видети шта стоји иза формуле.
Узгред, постоји ћелија која још није приказана који је месец за приказ. Односно, ћелија Ј1 садржи =TODAY()
, (и ово пишем у децембру), али ако је промените у 8.5.2012, видећете:

Ово је мај 2012. ОК, дефинитивно супер! Почните од почетка и пређите на ову формулу у календару и погледајте како она функционише.
Такође, претпоставимо да је данас 8. мај 2012.
Прво погледајте ову цифру:

Формула заправо нема смисла. Било би, да је окружен =SUM
, али желите да видите шта стоји иза формуле, па ћете га проширити тако што ћете га одабрати и притиснути тастер Ф9.

Горња слика постаје слика испод када се притисне тастер Ф9.

Приметите да после тачке 3 стоји тачка - то указује на нови ред. Нове колоне су представљене зарезом. Дакле, искористићете то.
Број недеља у месецу варира, али ниједном календару није потребно више од шест редова да представља било који месец, и наравно, сви они имају седам дана. Погледајте ову цифру:

Ручно унесите вредности од 1 до 42 у Б5: Х10, а ако унесете =B5:H10
у ћелију, а затим проширите траку са формулама, видећете шта је овде приказано:

Обратите пажњу на место тачке и запете - после сваког вишеструког од 7 - означавајући нови ред. Ово је почетак формуле, али уместо тако дугачке можете да користите ову краћу формулу. Изаберите Б5: Х10. Тип
=(0;1;2;3;4;5)*7+(1,2,3,4,5,6,7)
као формулу, али не притискајте Ентер.
Да бисте Екцел-у рекли да је ово формула низа, левом руком морате притиснути Цтрл + Схифт. Док држите Цтрл + Схифт, притисните Ентер десном руком. Затим отпустите Цтрл + Схифт. У остатку овог чланка овај скуп притиска тастера зваће се Цтрл + Схифт + Ентер.
Ако сте правилно урадили Цтрл + Схифт + Ентер, коврџаве заграде ће се појавити око формуле на траци са формулама, а бројеви од 1 до 42 појавит ће се у Б5: Х10, као што је овде приказано:

Приметите да узимате бројеве од 0 до 5 одвојене тачком и зарезом (нови ред за сваки) и множите их са 7, ефективно дајући ово:

Вертикална оријентација ових вредности додата хоризонталној оријентацији вредности од 1 до 7 даје исте вредности као што је приказано. Ово проширење је идентично ономе што сте имали раније. Претпоставимо да сада овим бројевима додате ДАНАС?
Напомена: Уређивање постојеће формуле низа је врло незгодно. Пажљиво следите ове кораке: Изаберите Б5: Х10. Кликните на траку са формулама да бисте уредили постојећу формулу. Откуцајте + Ј1, али не притискајте Ентер. Да бисте прихватили уређену формулу, притисните Цтрл + Схифт + Ентер.
Резултат за 8. мај 2012. године је:

Ови бројеви су серијски бројеви (број дана од 1/1/1900). Ако их форматирате као кратке датуме:

Јасно је да није у реду, али стићи ћете тамо. Шта ако их форматирате као једноставно "д" за дан у месецу:

Скоро да изгледа као месец, али ниједан месец не почиње са деветим у месецу. Ах, ево једног проблема. Користили сте Ј1 који садржи 8.5.2012. И заиста треба да користите датум првог у месецу. Па претпоставимо да сте ставили =DATE(YEAR(J1),MONTH(J1),1)
Ј2:

Ћелија Ј1 садржи 8.5.2012., А ћелија Ј2 то мења на први у месецу оно што је унето у Ј1. Дакле, ако промените Ј1 у формули календара у Ј2:

Ближе, али ипак није у праву. Потребно је још једно прилагођавање, а то је да одузмете радни дан првог дана. Односно, ћелија Ј3 садржи =WEEKDAY(J2)
. 3 представља уторак. Дакле, ако од ове формуле одузмете Ј3, добићете:

И то је заправо тачно за мај 2012. године!
Ок, стварно сте блиски. Оно што још увек није у реду је то што се 29. и 30. април појављују у мајском календару, а појављују се и 1. до 9. јуна. Морате ово очистити.
Формули можете дати име ради лакшег сналажења. Назовите то "Цал" (још није "цоол"). Погледајте ову слику:

Тада формулу можете променити тако да једноставно буде =Cal
(и даље Цтрл + Схифт + Ентер):

Сада можете променити формулу тако да гласи: ако је резултат у реду 5, а резултат преко 20, рецимо, тај резултат треба да буде празан. Ред 5 ће садржати прву недељу било ког месеца, тако да никада не бисте смели видети вредности веће од 20 (или било који број преко седам био би погрешан - број попут 29 који видите у ћелији Б5 горње слике је из претходног месеца). Дакле, можете користити =IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),Cal)
:

Прво приметите да су ћелије Б5: Д5 празне. Формула сада гласи „ако је ово ред 5, онда ако је ДАН резултата већи од 20, прикажи празно“.
Можете да наставите да уклањате мале бројеве на крају - вредности следећег месеца. Ево како то лако учинити.
Уредите формулу и изаберите последњу референцу на „Цал“

Почните да куцате ИФ (РОВ ()> 8, ИФ (ДАИ (Цал) <15, "", Цал), Цал) да бисте заменили коначни Цал.

Коначна формула би требала бити
=IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),IF(ROW()>8,IF(DAY(Cal)<15,"",Cal),Cal))
Притисните Цтрл + Схифт + Ентер. Резултат би требао бити:

Две ствари су преостале да се ураде. Можете узети ову формулу и дати јој име „Цоол“:

Затим то употребите у овде приказаној формули:

Иначе, дефинисана имена третирају се као да су унета у низ.
Преостало је само да форматирате ћелије и унесете дане у недељи и назив месеца. Дакле, проширите колоне, повећајте висину реда, повећајте величину фонта и поравнајте текст:

Затим ставите ивице око ћелија:

Спојите и центрирајте месец и годину и форматирајте их:

Затим искључите решетке и воила:


Овај гостујући чланак је из програма Екцел МВП Боб Умлас. То је из књиге Екцел Оутсиде тхе Бок. Да бисте видели остале теме у књизи, кликните овде.