Найти тему

📌 Сочетание формул, макросов и использование условного форматирования: наряжаем елку в Excel

Оглавление
В конце года, когда время, словно мастер иллюзий, приоткрывает завесу над прошлым, мы стоим перед выбором. Некоторые стремятся вперёд, стараясь быстрее оставить позади тень трудностей и грусти. Для других, каждый момент становится ценным, они пытаются замедлить ход времени, как будто держа в руках что-то драгоценное и ценное, боясь, что оно растает, как пойманная на ладони снежинка ...

Но не будем грустить! И давайте готовиться к Новому году вместе 😉

Если у Вас еще нет Новогодней елки, то предлагаем нарядить нашу.

Сочетание формул, макросов и использование условного форматирования: наряжаем елку в Excel
Сочетание формул, макросов и использование условного форматирования: наряжаем елку в Excel
У поставленной задачи безусловно может быть несколько решений.
В данном обзоре мы представляем свое видение, основанное на сочетании формул, макросов и использовании условного форматирования.
-2

📢 Файл с примером размещен в конце статьи 🔽

-3

▶️ Шаг 1. Создаем шаблон и задаем именованные диапазоны

🔘 Диапазон "снежинки"

Данный диапазон условно разделим на 4 части.

Для каждой из которой зададим формулу определяющую рандомные распределения снежинок:

Рандомное распределение снежинок
Рандомное распределение снежинок
Функции Excel | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен

Код символа снежинки в данном случае мы принимаем равным 84, что при установленном формате Wingdings позволит добиться нужного отображения:

Аргументы функции СИМВОЛ
Аргументы функции СИМВОЛ

🔘 Диапазон "елка"

Для заполнения области определяющей положение будущей елки зададим именованный диапазон Sample_Tree:

Задаем именованный диапазон будущей елки
Задаем именованный диапазон будущей елки

Теперь наша задача заполнить данный диапазон рядом случайных. Но прежде, чем реализовать этот этап назначим:

  • именованный диапазон Toys в котором будем хранить номера для будущих елочных игрушек -
Именованный диапазон Toys
Именованный диапазон Toys
  • именованную ячейку Number которая будет отображать общее число вариаций елочных игрушек -
Определяем общее число вариаций елочных игрушек
Определяем общее число вариаций елочных игрушек

Далее, аналогично рассмотренному выше приему зададим рандомное распределения значений для диапазона Sample_Tree.

Добавить автоматизации данному процессу поможет следующий макрос:

Макрос определяющий рандомное распределение значений для отображения елки
Формула использует функцию СИМВОЛ и ИНДЕКС, где Toys - именованный диапазон, а Number - значение из ячейки с адресом "Number" на листе "Лист2".
Макрос определяющий рандомное распределение значений для отображения елки Формула использует функцию СИМВОЛ и ИНДЕКС, где Toys - именованный диапазон, а Number - значение из ячейки с адресом "Number" на листе "Лист2".

Данный макрос устанавливает формулу в ячейку именованного диапазона "Sample_Tree".

В свою очередь, формула генерирует символ согласно указанному индексу в диапазоне "Toys":

Рандомное распределение значений для отображения елки: =СИМВОЛ(ИНДЕКС(Toys;СЛУЧМЕЖДУ(1;число)))
Рандомное распределение значений для отображения елки: =СИМВОЛ(ИНДЕКС(Toys;СЛУЧМЕЖДУ(1;число)))

И все хорошо! Но какая же елка без звезды?!

🔘 Диапазон "звезда"

Так как мы за динамичность в любом подходе, то предположим, что и число определяемых символов у звезды тоже может меняться.

А потому назначим:

  • именованный диапазон Stars - хранит номера символов определяющие вариации звезд:
Именованный диапазон Stars
Именованный диапазон Stars
  • именованную ячейку Number_Stars в которой определим общее число вариаций отображаемых звезд:
Общее число вариаций отображаемых звезд
Общее число вариаций отображаемых звезд

Подход к назначению символа звезды применим аналогичный:

Назначаем отображение символа звезды:  =СИМВОЛ(ИНДЕКС(Stars;СЛУЧМЕЖДУ(1;Number_Stars)))
Назначаем отображение символа звезды: =СИМВОЛ(ИНДЕКС(Stars;СЛУЧМЕЖДУ(1;Number_Stars)))

Теперь, когда подготовительная часть завершена осталось лишь автоматизировать процесс и навести красоту 😉

▶️ Шаг 2. Задаем логику при помощи VBA

Справочные материалы VBA | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен
Чтобы избавить пользователя от излишних формул на листе "чистовой" вариант отображаемой елки перенесем на новый лист.
  • Рабочей области в которой и будет располагаться елка присвоим имя -ChristmasTree:
Назначаем область в которой и будет располагаться елка
Назначаем область в которой и будет располагаться елка
  • Области из которой будем брать данные - Base:
Определяем область из которой будем брать данные
Определяем область из которой будем брать данные

Чтобы нарядить елку игрушками назначим макрос который позволит перенести данные из диапазона "Base" в диапазон "ChristmasTree":

Макрос позволит распределить игрушки по елке
Макрос позволит распределить игрушки по елке

Но, как то на наш взгляд, выглядит немного скучновато. А потому добавим немного динамики. Для этого:

  • обозначим ячейку определяющую число повторений:
Назначаем именованную ячейку Cycle - это число повторений
Назначаем именованную ячейку Cycle - это число повторений
  • применим следующий код:
-18

Данный макрос выполнит определенную выше процедуру указанное количество раз соответствующее значению в ячейке "Cycle". А достичь эффекта мерцания (для наблюдения изменений) поможет добавление задержки на короткое время.

Но, чтобы было совсем празднично "раскрасим" наши "игрушки" применив условное форматирование

▶️ Шаг 3. Назначаем условное форматирование

Условное форматирование | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен

Для целей условного форматирования будем использовать формулу, которая в общем виде имеет вид: =F5=СИМВОЛ("ячейка")

где "ячейка" - это абсолютная ссылка на ячейку содержащая число определяющее значение символа.

Например:

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

Данный подход позволит каждой игрушке назначить свой цвет.

▶️ Наслаждаемся результатом

Вот такой результат получился у нас.

-20
Новогодняя елка 2024
Новогодняя елка 2024

📝 Оформите лист по своему вкусу, добавьте свои символы и наслаждайтесь результатом!

🔔 Узнать больше о приемах и методах в Excel и быстро найти нужное решение поможет наш справочник 🔽

-23
Excel на ИЗИ

СКАЧАТЬ ПРИМЕР