Создаем в MS EXCEL Календарь одной формулой массива

Для того, чтобы создать календарь на месяц, достаточно написать одну формулу массива.

Создадим обычный календарь на месяц.

Календарь разместим в диапазоне ячеек 7х6 (7 дней в неделе х 6 -максимальное количество недель в месяце).

Номера недель представим в виде вертикального массива констант ={0:1:2:3:4:5}. Дни недели - в виде горизонтального массива констант ={1;2;3;4;5;6;7}. В первом случае элементы массива разделены двоеточиями, в другом точками с запятой.

Присвоим этим массивам Имена: НомерНедели и ДеньНедели соответственно.

Месяц будем определять по дате в ячейке A4.

Создадим Именованную формулу Календарь:
=НомерНедели*7+ДеньНедели+$A$4-ДЕНЬНЕД($A$4;2)

Наконец, создадим формулу массива:

  • выделим наш диапазон 7х6 из 42 ячеек,
  • введем в Строке формул =ЕСЛИ(МЕСЯЦ(Календарь)= МЕСЯЦ($A$4);Календарь;""),
  • нажмем CTRL+SHIFT+ENTER.

Разберем подробнее результат вычисления этой формулы массива:

  • НомерНедели*7 – это результат умножения массива констант на число 7 : ={0:7:14:21:28:35};
  • НомерНедели*7+ДеньНедели - Сложение 2-х массивов констант (столбца и строки) дает в результате 2-х мерный массив: {1;2;3;4;5;6;7: 8;9;10;11;12;13;14: 15;16;17;18;19;20;21: 22;23;24;25;26;27;28: 29;30;31;32;33;34;35: 36;37;38;39;40;41;42} – это последовательные номера ячеек в календаре;
  • Теперь осталось правильно выставить точку отсчета: для этого нужно прибавить дату из ячейки А4 и вычесть день недели, на который попадает первое число месяца;
  • Чтобы исключить отображение нескольких дней из конца предыдущего месяца и дней из начала следующего (появляются в неделе 0 и 6) используем функцию ЕСЛИ().

В файле примера использовано Условное форматирование для выделения выходных, а также Элемент управления Полоса прокрутки для изменения даты в ячейке А4.

Связанные статьи

Похожие задачи
Прочитайте другие статьи, решающие похожие задачи в MS Excel. Это позволит Вам решать широкий класс подобных задач.
Средняя: 4.7 (3 оценок)
Яндекс.Метрика