Оглавление
В Excel нет функции, позволяющей производить вычисления на основе цвета ячеек. Но с помощью функции Microsoft Visual Basic for Applications (VBA) можно сделать пользовательские функции для вычисления на основе цвета ячеек. В этой статье я покажу вам, как можно создать и использовать ColorFunction в Excel.
Допустим, у нас есть набор данных о заказах продукции компании. Столбец Количество заказов Доставленные заказы окрашиваются в светло-зеленый цвет, а заказы, находящиеся в процессе доставки - в светло-оранжевый. Теперь мы можем найти количество клиентов, которые получили или не получили свои заказы, подсчитав те же цветные ячейки. Общее количество доставленных или находящихся в процессе доставки заказов можно найти, сложив те же цветные ячейки.
Скачать Рабочую тетрадь для практических занятий
Цветовая функция в Excel.xlsmФункция цвета в Excel
Шаг 1 : Открытие макромодуля в окне VBA
Сначала необходимо открыть VBA окно, нажав ALT+F11. После этого щелкните правой кнопкой мыши на имени листа на левой панели и перейдите к пункту Вставка> Модуль
В результате Модуль ящик будет открыт.
Шаг 2 : Вставка кода VBA для создания функции ColorFunction
Вставьте следующий код в Модуль и закройте VBA окно.
Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean) Dim rCell As Range Dim lCol As Long Dim vResult lCol = rColor.Interior.ColorIndex If SUM = True Then For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = WorksheetFunction.SUM(rCell, vResult) End If Next rCell Else For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = 1 +vResult End If Next rCell End If ColorFunction = vResult End Function
Здесь код VBA создает пользовательскую функцию с именем ЦветФункция который будет считать цветные ячейки, если мы зададим аргумент в виде FALSE и будет суммировать цветные ячейки, если мы дадим аргумент в виде TRUE.
Шаг 3 : Сохранение рабочей книги как рабочей книги с поддержкой макросов Excel
Вы должны сохранить рабочую книгу Excel в .xlsm формат для сохранения вашей пользовательской функции. Сначала перейдите в раздел Файл в левом верхнем углу окна Excel.
После этого выберите Сохранить как.
Затем выберите Рабочая книга Excel с поддержкой макросов (*xlsm) и нажмите на Сохранить.
Шаг 4 : Использование функции ColorFunction для подсчета цветных ячеек
Теперь вы можете использовать свои пользовательские ЦветФункция.
Чтобы получить количество светло-зеленых ячеек, введите в пустую ячейку следующую формулу,
=ColorFunction(F5,$D$5:$D$11,FALSE)
Вот, F5 = Критериальная ячейка, цвет которой будет учитываться
$D$5:$D$11 = Диапазон для подсчета
FALSE указывает, что будет подсчитано количество клеток, имеющих одинаковый цвет с клеткой критерия
Нажмите ENTER и вы получите количество светло-зеленых клеток.
Аналогичным образом можно получить подсчет для светло-оранжевых клеток.
Шаг 5 : Использование функции ColorFunction для суммирования цветных ячеек
Чтобы получить сумму ячеек светло-зеленого цвета, введите в пустую ячейку следующую формулу,
=ColorFunction(F5,$D$5:$D$11,TRUE)
Вот, F5 = Ячейка критерия, цвет которой будет суммироваться
$D$5:$D$11 = Диапазон для суммы
TRUE указывает, что количество ячеек, имеющих одинаковый цвет с ячейкой критерия, будет суммироваться.
вы получите сумму светло-зеленых клеток, нажав кнопку ENTER.
Аналогичным образом можно получить сумму светло-оранжевых ячеек.
Альтернативные способы подсчета и суммирования цветных клеток
Вместо того чтобы использовать ЦветФункция, вы можете получить количество цветных клеток или суммировать цветные клетки двумя разными способами.
1. использование функций ФИЛЬТР и СУБТОТАЛ
Вы можете получить количество и сумму цветных ячеек с помощью функции Фильтр и функция СУММЕСЛИ .
Сначала зайдите в Данные вкладку и нажмите на Фильтр.
После этого рядом с заголовком каждого столбца появится стрелка вниз. Нажмите на стрелку вниз рядом со столбцом Количество заказов (Цветная колонка), перейдите к Фильтр по цвету , и выберите светло-зеленый цвет.
Теперь в этом столбце вы увидите только данные, окрашенные в светло-зеленый цвет. Для получения подсчета введите следующую формулу,
= ПРОМЕЖУТОЧНЫЙ ИТОГ(2,D5:D11)
Здесь 2 указывает на то, что клетка будет подсчитана и D5:D11 это диапазон данных.
После нажатия ENTER вы получите количество клеток светло-зеленого цвета.
Чтобы получить сумму цветных ячеек, введите следующую формулу,
= ПРОМЕЖУТОЧНЫЙ ИТОГ(9,D5:D11)
Здесь 9 указывает на то, что ячейка будет суммироваться и D5:D11 диапазон данных
После нажатия ENTER вы получите сумму клеток светло-зеленого цвета.
Изменив фильтр на светло-оранжевый цвет, можно получить количество и сумму клеток, окрашенных в оранжевый цвет.
2. Использование функции GET.CELL
С помощью ПОЛУЧИТЬ.ЦЕЛЛ Вы также можете подсчитывать и суммировать цветные ячейки.
Сначала зайдите в Формулы вкладку и выберите Определить имя.
A Новое имя появится окно. Введите имя, например Цвет в Имя Вставка. и Вставьте формулу в Относится к поле и нажмите OK.
=GET.CELL(38,'GET CELL'!$D5)
Здесь 38 указывает на то, что формула будет выдавать код цвета упомянутой ячейки, а 'GET CELL'!$D5 ссылающаяся ячейка (первая ячейка после заголовка столбца цветного столбца)
Теперь наберите = Цвет (Имя, указанное вами ранее в Определить имена поле) в соседнем столбце вашей цветной колонки.
После нажатия ENTER и перетащить ячейку E5 до конца вашего набора данных, вы получите цветовые коды всех ваших цветных ячеек столбца E .
Теперь введите следующую формулу, чтобы получить количество ячеек светло-зеленого цвета
=COUNTIF($E$5:$E$11,50)
Вот, $E$5:$E$11 это диапазон для подсчета, а 50 - цветовой код светло-зеленого цвета.
После нажатия Войти вы получите количество клеток, окрашенных в зеленый цвет.
Введите следующую формулу, чтобы получить сумму ячеек, окрашенных в светло-зеленый цвет,
=SUMIF(E5:E11,50,D5:D11)
Вот, E5:E11 это диапазон критериев, 50 обозначает цветовой код светло-зеленого и D5:D11 это диапазон сумм.
Нажмите ENTER и вы получите сумму всех клеток, окрашенных в зеленый цвет.
Аналогичным образом можно получить количество и сумму клеток, окрашенных в светло-оранжевый цвет.
Заключение
Надеюсь, что после прочтения статьи вы сможете создать и использовать ColorFunction в Excel. Если у вас возникнут какие-либо проблемы, пожалуйста, оставьте комментарий.