Excel сумма по цвету
Добрый день, уважаемые читатели и подписчики блога! Сегодня мы поговорим о суммировании ячеек по цвету в Excel.
Начнём немного издалека - в Excel есть несколько "цветов", нас будут интересовать цвет фона (заливки) ячейки и цвет шрифта в ячейке. Но как их узнать? Для человека всё просто, а вот для программы не совсем.
Начиная, если не изменяет память, с версии Excel 2007 основной метод заливки - назначение кода цвета от 0 до 16777215, то есть всего может быть шестнадцать миллионов семьсот семьдесят семь тысяч двести шестнадцать цветов. Неплохо.
Если кому-то интересно - можно почитать официальную документацию ДОКА.
Цвет фона (заливки)
Последуем по пути наименьшего сопротивления. Имеется таблица вида.
Как видно из образца - имеется цвет фона ячеек жёлтый (A2, A10, A14). Пока нас интересовать будут именно эти ячейки.
Визуально цвет определён, осталось найти его код. Создадим для этого небольшую функцию. На вкладке "Разработчик" вставляем новый модуль (мы рассматривали этот процесс много раз, так что ссылок приводить не буду).
Public Function get_interior_color(cell As Range)
get_interior_color = cell.Interior.Color
End Function
Она будет определять цвет фона нашей ячейки и преобразовывать его в код цвета.
Проверяем.
Мы получили цвет фона ячейки. Теперь воспользуемся функцией СУММЕСЛИМН для суммирования по цвету ячеек в Excel. Предварительно вынесем как условие результат нахождения кода цвета.
Вот и всё. Мы произвели суммирование по цвету заливки (фона) нашей ячейки. Соответственно, сумма выделенных цветом ячеек в столбце Excel будет располагаться в ячейке E2.
Цвет шрифта (текста)
Цвет текста (стандартный) всегда будет составляться из RGB цветов (смешении красного, зелёного и голубого) или используя свойства объекта Font в VBA (vbcolor).
Цвет текста RGB может выставляться тремя парами цифр RGB(255,255,0), то есть устанавливаем значение красного цвета 255, зелёного 255, синего 0. Получаем жёлтый.
Если интересно можно посмотреть тут что будет получаться в итоге.
Аналогично давайте создадим ещё одну пользовательскую функцию для выяснения цвета шрифта.
Public Function get_font_color(cell As Range)
get_font_color = cell.Font.Color
End Function
Пройдём по тому же сценарию при создании формулы. Например, мы суммируем ячейки, где цвет шрифта красный. Отредактируем формулу соответствующим образом.
Готово! Теперь в Excel сумма по цвету ячеек будет выводиться ровно в тех ячейках, которых захотите!
Вам может понравиться предыдущая статья о запросах в Power BI.