Календар в Excel з однією формулою (введений масив, звичайно!) - Поради Excel

Створіть календар у Excel за допомогою однієї формули за допомогою введеної в масив формули.

Подивіться на цю цифру:

Календар в Excel - грудень

Ця формула,, =Cool- однакова формула в кожній клітинці з В5: Н10! Подивіться:

Основна формула календаря

Його було введено в масив після того, як вперше було обрано B5: H10. У цій статті ви побачите, що стоїть за формулою.

До речі, є комірка, яка ще не відображається, який місяць відображатиметься. Тобто, клітинка J1 містить =TODAY(), (і я пишу це в грудні), але якщо ви зміните її на 8.05.2012, ви побачите:

Місяць змінився на травень

Це травень 2012 року. Добре, однозначно круто! Почніть із самого початку, і просуньтесь до цієї формули в календарі і подивіться, як це працює.

Також припустимо, що сьогодні 8 травня 2012 року.

Спочатку подивіться на цю цифру:

Зразок формули

Формула насправді не має сенсу. Було б, якби воно було оточене =SUM, але ви хочете побачити, що стоїть за формулою, тому ви розгорнете її, вибравши її та натиснувши клавішу F9.

Виберіть формулу

Рисунок вище стає малюнком нижче, коли натискається клавіша F9.

Що стоїть за формулою

Зверніть увагу, що після 3 є крапка з комою - це вказує на новий рядок. Нові стовпці представлені комою. Тож ви збираєтеся цим скористатися.

Кількість тижнів у місяці різниться, але жоден календар не потребує більше шести рядків для представлення будь-якого місяця, і звичайно, всі вони мають сім днів. Подивіться на цю цифру:

Діапазон календаря

Введіть вручну значення від 1 до 42 у B5: H10, і якщо ви введете =B5:H10в клітинку, а потім розгорнете рядок формул, ви побачите, що показано тут:

Розгорніть формулу в рядку формул

Зверніть увагу на розміщення крапки з комою - після кожного кратного 7 - із зазначенням нового рядка. Це початок формули, але замість такої довгої ви можете використовувати цю коротшу формулу. Виберіть B5: H10. Тип

=(0;1;2;3;4;5)*7+(1,2,3,4,5,6,7)

як формулу, але не натискайте Enter.

Щоб сказати Excel, що це формула масиву, потрібно утримувати Ctrl + Shift лівою рукою. Утримуючи Ctrl + Shift, натисніть клавішу Enter правою рукою. Потім відпустіть Ctrl + Shift. Решту цієї статті цей набір натискань клавіш називатиметься Ctrl + Shift + Enter.

Якщо ви правильно ввели Ctrl + Shift + Enter, фігурні дужки з'являться навколо формули в рядку формул, а цифри від 1 до 42 відображатимуться в B5: H10, як показано тут:

Фігурні дужки навколо формули

Зверніть увагу, що ви берете числа від 0 до 5, розділені крапками з комою (новий рядок для кожного) і множите їх на 7, фактично даючи це:

Розгорнути більше - індекс рядка, помножений на 7

Вертикальна орієнтація цих значень, додана до горизонтальної орієнтації значень від 1 до 7, дає ті самі значення, що показані. Розширення цього ідентично тому, що ви мали раніше. Припустимо, тепер ви додасте СЬОГОДНІ до цих чисел?

Примітка: Редагувати існуючу формулу масиву дуже складно. Обережно виконайте такі дії: Виберіть B5: H10. Клацніть на рядку формул, щоб відредагувати існуючу формулу. Введіть + J1, але не натискайте Enter. Щоб прийняти відредаговану формулу, натисніть Ctrl + Shift + Enter.

Результат за 8 травня 2012 року:

Результат за 8 травня 2012 року

Ці номери є серійними номерами (кількість днів з 1/1/1900). Якщо відформатувати їх як короткі дати:

Форматований діапазон

Очевидно, не правильно, але ви туди потрапите. Що робити, якщо ви відформатуєте їх як просто "d" для дня місяця:

Формат як "день" місяця

Майже схожий на місяць, але жоден місяць не починається з дев’ятого числа. Ах, ось одна проблема. Ви використовували J1, який містить 8.05.2012, і вам дійсно потрібно вказати дату першого числа місяця. Отже, припустимо, ви =DATE(YEAR(J1),MONTH(J1),1)введете J2:

Дата першого числа місяця

Клітинка J1 містить 8.05.2012, а клітинка J2 змінює це до першого числа місяця того, що було введено в J1. Отже, якщо ви зміните J1 у формулі календаря на J2:

Змініть базову дату як першу дату місяця

Ближче, але все одно не правильно. Потрібно ще одне коригування, а саме потрібно відняти день тижня першого дня. Тобто, комірка J3 містить =WEEKDAY(J2). 3 представляє вівторок. Отже, якщо відняти J3 з цієї формули, ви отримаєте:

Зміна на робочий день

І це насправді правильно на травень 2012 року!

Гаразд, ти дуже близький. Все ще не так: 29 та 30 квітня з’являються у травневому календарі, а також з 1 по 9 червня. Вам потрібно це очистити.

Ви можете дати формулі назву для зручності посилання. Називайте це "Cal" (ще не "круто"). Дивіться цей малюнок:

Створіть іменовану формулу

Тоді ви можете змінити формулу на просто =Cal(все ще Ctrl + Shift + Enter):

Змініть формулу масиву на названу формулу

Тепер ви можете змінити формулу, щоб прочитати, що якщо результат знаходиться в рядку 5 і результат перевищує 20, скажімо, тоді цей результат повинен бути порожнім. Рядок 5 міститиме перший тиждень будь-якого місяця, тому ви ніколи не повинні бачити значень понад 20 (або будь-яке число понад сім було б помилковим - число на зразок 29, яке ви бачите в комірці B5 на малюнку вище, з попереднього місяця). Таким чином, ви можете використовувати =IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),Cal):

Дати попереднього місяця

Спочатку зверніть увагу, що клітинки B5: D5 порожні. Тепер формула читає "якщо це рядок 5, то якщо ДЕНЬ результату перевищує 20, показувати пустим".

Ви можете продовжувати видаляти низькі цифри в кінці - значення наступного місяця. Ось як це легко зробити.

Відредагуйте формулу та виберіть остаточне посилання на "Cal"

Дати наступного місяця - 1

Почніть набирати IF (ROW ()> 8, IF (DAY (Cal) <15, "", Cal), Cal), щоб замінити остаточну Cal.

Дати наступного місяця - 2

Кінцева формула повинна бути

=IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),IF(ROW()>8,IF(DAY(Cal)<15,"",Cal),Cal))

Натисніть Ctrl + Shift + Enter. Результат повинен бути:

Результат-1

Залишилося зробити дві справи. Ви можете взяти цю формулу і дати їй назву "Круто":

Назвіть формулу як "Cool"

Тоді скористайтеся цим у наведеній тут формулі:

Результат-2

До речі, визначені імена обробляються так, ніби вони введені в масив.

Залишилося лише відформатувати комірки та ввести дні тижня та назву місяця. Отже, ви розширюєте стовпці, збільшуєте висоту рядка, збільшуєте розмір шрифту та вирівнюєте текст:

Відформатуйте діапазон

Потім розмістіть межі навколо комірок:

Межі календаря

Об’єднайте та відцентруйте місяць та рік та відформатуйте:

Назва місяця та рік

Потім вимкніть лінії сітки і вуаля:

Остаточний результат - календар

Ця гостьова стаття від Excel MVP Боба Умласа. Це з книги "Excel нестандартно". Щоб переглянути інші теми книги, натисніть тут.

Цікаві статті...