Оглавление
В этом уроке представлены 2 новые функции из нашего дополнения Function by Color для Google Sheets: CELLCOLOR & VALUESBYCOLORALL. Используйте их для суммирования & подсчета ячеек не только по их цветам, но и по общему содержимому. Готовые формулы SUMIFS & COUNTIFS включены ;)
Если вы часто работаете с цветными ячейками в Google Sheets, вы, вероятно, уже попробовали наше дополнение Function by Color. Мало кто знает, что теперь у него есть еще 2 функции, которые еще больше расширяют возможности работы с цветными ячейками: CELLCOLOR и ЗНАЧЕНИЯ ПО ЦВЕТУ В этом уроке я познакомлю вас с обеими функциями и предоставлю несколько готовых формул.
Сумма и подсчет цветных ячеек с помощью Функции по цвету
Прежде чем мы рассмотрим 2 новые пользовательские функции, я хотел бы кратко описать дополнение Function by Color, если вы с ним не знакомы.
Это дополнение для Google Sheets проверяет шрифт и/или цвет заливки в выбранных ячейках и:
- суммирует числа с общим оттенком
- считает цветные клетки и даже пустые
- находит средние/минимальные/максимальные значения среди выделенных ячеек
- и многое другое
Всего существует 13 функций для расчета ваших цветных клеток.
Вот как это работает:
- Вы выбираете диапазон для обработки.
- Выберите шрифт и/или оттенки заливки, которые вы хотите рассмотреть, и подберите функцию в соответствии с вашей задачей.
- Выберите расчет записей в каждой строке/столбце или во всем диапазоне.
- Выберите ячейку(и), где вы хотите увидеть результат.
- Хит Функция вставки .
Например, здесь в каждом ряду я суммирую все товары, которые находятся "в пути" - с синим фоном:
=SUM(VALUESBYCOLOR("светло-васильковый синий 3", "", B2:E2))
Совет. Подробное руководство по работе с дополнением доступно здесь, а запись в блоге с примерами - здесь.
Как вы можете видеть, дополнение использует стандартную функцию SUM вместе со специальной функцией внутри: VALUESBYCOLOR.
Функция VALUESBYCOLOR
VALUESBYCOLOR - это наша пользовательская функция.
Примечание. Вы не найдете его в электронных таблицах без дополнения.
Он возвращает те ячейки, которые соответствуют цветам, выбранным в дополнении:
=VALUESBYCOLOR("светло-васильковый синий 3", "", B2:E2)
Видите? Он получает только те записи для каждого поставляемого элемента сверху, которые окрашены в соответствии с моими настройками. И эти числа вычисляются одной из тех стандартных функций, которые я выбрал в инструменте: SUM.
Довольно круто, да? ;)
В дополнении было одно упущение. Эта формула не могла использоваться в SUMIFS и COUNTIFS, поэтому вы не могли одновременно считать по нескольким условиям, таким как общий оттенок и содержимое ячеек. И нас часто спрашивали об этом!
Я рад сообщить вам, что в последнем обновлении (октябрь 2021 года) мы сделали это возможным! Теперь Function by Color содержит еще 2 пользовательские функции, которые помогут вам в этом :)
Дополнительные функции Функции по цвету
Две новые функции, которые мы реализовали, называются VALUESBYCOLORALL и CELLCOLOR. Давайте посмотрим, какие аргументы они требуют и как вы можете использовать их с вашими данными.
Примечание. Поскольку функции являются пользовательскими, они являются частью нашего дополнения Function by Color. Вам необходимо установить это дополнение. В противном случае вы не сможете использовать функции, и результат, который они возвращают, будет потерян.
Совет. Посмотрите это видео или продолжите чтение. Или сделайте и то, и другое для лучшего понимания ;) В конце статьи в блоге есть даже таблица для практики ;)
ЗНАЧЕНИЯ ПО ЦВЕТУ
Эта пользовательская функция требует 3 аргумента:
VALUESBYCOLORALL(fill_color, font_color, range)- цвет_заливки - RGB-код или название цвета (согласно палитре цветов Google Sheets) для цвета фона.
Совет. Хотя аргумент является обязательным, вы можете полностью заставить функцию игнорировать цвет заливки, введя только пару двойных кавычек: "".
- цвет шрифта - RGB-код или название цвета (согласно палитре цветов Google Sheets) для цвета текста.
Совет. Аргумент также является обязательным, но также принимает пару двойных кавычек "", когда вам нужно игнорировать цвет шрифта.
- ассортимент - Здесь нет ничего сложного, просто диапазон ячеек, которые вы хотите обработать.
Вы заметили, что VALUESBYCOLORALL можно легко перепутать с функцией VALUESBYCOLOR, используемой дополнением? Будьте осторожны, так как разница огромна. Посмотрите на этот снимок экрана:
Формулы написаны в B2 & C2, но вы можете посмотреть, как они выглядят в B8 & C8 соответственно:
=VALUESBYCOLOR("светло-зеленый 3", "", A2:A7)
и
=VALUESBYCOLORALL("светло-зеленый 3", "", A2:A7)
Совет. Названия цветов взяты из палитры Google Sheets:
Эти две функции имеют одинаковые аргументы, и даже их названия так похожи!
Тем не менее, они возвращают разные наборы данных:
- VALUESBYCOLOR возвращает список только тех записей, которые отображаются с зеленым цветом заливки в столбце A. Результат этой формулы занимает только 3 ячейки: B2:B4.
- VALUESBYCOLORALL, в свою очередь, возвращает диапазон того же размера, что и исходный (6 ячеек) - C2:C7. Но ячейки в этом диапазоне содержат записи только в том случае, если соответствующая ячейка в столбце A имеет требуемый цвет заливки. Остальные ячейки остаются пустыми.
Хотя вам это может показаться одинаковым, в сочетании с другими функциями это имеет огромное значение. И это именно то, что позволяет вам проверять цвета вместе с содержимым ячеек с помощью таких функций, как COUNTIFS или SUMIFS.
CELLCOLOR
Следующая функция довольно проста: она проверяет цвета ячеек и возвращает список имен цветов или RGB-кодов (на ваш выбор), используемых в каждой ячейке. Она даже называется одинаково: CELLCOLOR.
Вам могут не понадобиться эти названия цветов напрямую, но вы можете использовать их в других функциях, например, в качестве условия.
Эта функция также требует 3 аргумента:
CELLCOLOR(range, color_source, color_name)- ассортимент - те ячейки, которые вы хотите проверить на наличие цветов.
- источник цвета - указывает функции, куда смотреть:
- использовать слово "наполнение" в двойных кавычках, чтобы проверить наличие фоновых цветов
- "шрифт" - для цветов текста
- "оба" - для цветов заливки и текста
- имя_цвета - ваш способ определить, какое имя нужно вернуть:
- TRUE позволяет получить имена, которые вы видите в палитре Google Sheets, например. красный или тёмно-синий 1
- FALSE получает RGB-коды цветов, например. #ff0000 или #3d85c6
Например, приведенная ниже формула возвращает список цветов заливки и шрифта, используемых в каждой ячейке A2:A7:
=CELLCOLOR(A2:A7, "both", TRUE)
Итак, как эти функции можно использовать с IF, SUMIFS, COUNTIFS? Как задать критерии поиска на основе цветов?
Суммирование и подсчет ячеек по цвету и содержимому - примеры формул
Давайте попробуем использовать VALUESBYCOLORALL и CELLCOLOR в нескольких простых случаях.
Если цвет, то...
Здесь у меня есть короткий список студентов, сдавших 3 теста:
Я хочу отметить строку с PASS в столбце E, только если все ячейки в строке зеленые (студенты, сдавшие все экзамены). Я буду использовать наш CELLCOLOR в функции IF, чтобы проверить цвета и вернуть нужную строку:
=IF(COUNTIF(CELLCOLOR(B2:D2, "fill",TRUE), "light green 3")=3, "PASS","")
Вот что он делает:
- CELLCOLOR(B2:D2, "fill",TRUE) возвращает все цвета заливки, используемые в строке.
- COUNTIF(CELLCOLOR(B2:D2, "fill",TRUE), "light green 3")=3 берет эти цвета и проверяет, появляется ли 'light green 3' (который я использую в своих ячейках) ровно 3 раза подряд.
- Если да, то IF возвращает 'PASS', в противном случае ячейка остается пустой.
COUNTIFS: подсчет по цветам & значения с 1 формулой
COUNTIFS - это еще одна функция, которая может окончательно подсчитать по нескольким критериям, даже если один из них - цвет.
Предположим, есть данные о прибыли за смену и за каждого работника:
Используя две наши пользовательские функции внутри COUNTIFS, я могу подсчитать, сколько раз каждый сотрудник выполнил план продаж (зеленые ячейки).
Пример 1. COUNTIFS + CELLCOLOR
Я перечислю всех менеджеров рядом с таблицей с данными и введу отдельную формулу для каждого сотрудника. Я начну с CELLCOLOR:
=COUNTIFS($A$2:$A$10,E2,CELLCOLOR($C$2:$C$10, "fill",TRUE), "light green 3")
- Первым делом формула проверяет столбец A: если там есть 'Leela' (имя из E2), она учитывает эту запись.
- Второе, что мне нужно проверить, это окрашены ли ячейки в столбце C в светло-зеленый цвет 3.
Совет. Проверьте цвет ячейки с помощью палитры Google Sheets:
Поскольку сам COUNTIFS не может просто взять цвет, я использую наш CELLCOLOR как диапазон для состояния.
Помните, CELLCOLOR возвращает список цветов, используемых в каждой ячейке. Когда я вставляю его в COUNTIFS, последний сканирует этот список в поисках всех вхождений 'light green 3'. Это в сочетании с именем из столбца E дает требуемый результат. Легко и просто :)
Пример 2. COUNTIFS + VALUESBYCOLORALL
То же самое произойдет, если вместо этого выбрать VALUESBYCOLORALL. Введите его в качестве диапазона для второго условия:
=COUNTIFS($A$2:$A$10,E2,VALUESBYCOLORALL("светло-зеленый 3","",$C$2:C$10),"")
Помните ли вы, что возвращает VALUESBYCOLORALL? Список значений, в котором все ячейки, удовлетворяющие вашим требованиям к цвету, содержат записи. Все остальные ячейки остаются пустыми.
Поэтому, когда VALUESBYCOLORALL подставляется в COUNTIFS, формула считает только те ячейки, которые не являются пустыми: "" (или, другими словами, соответствуют нужному цвету).
SUMIFS: суммирование ячеек по цветам & значениям с помощью 1 формулы
История с SUMIFS такая же, как и с COUNTIFS:
- Возьмите одну из наших пользовательских функций: CELLCOLOR или VALUESBYCOLORALL.
- Поместите его как диапазон, который следует проверить на наличие цветов.
- Введите условие в зависимости от выбранной функции: название цвета для CELLCOLOR и "не пусто" ("") для VALUESBYCOLORALL.
Примечание. SUMIFS не принимает в качестве первого аргумента ничего, кроме простого диапазона. суммарный_диапазон Если вы попытаетесь вставить туда одну из наших пользовательских функций, формула просто не будет работать. Поэтому имейте это в виду и обязательно введите CELLCOLOR и VALUESBYCOLORALL как критерий вместо этого.
Вот несколько примеров.
Пример 1. SUMIFS + CELLCOLOR
Посмотрите на эту формулу:
=SUMIFS($C$2:$C$10,A$2:A$10,E2,CELLCOLOR($C$2:$C$10, "fill",TRUE), "light green 3")
- CELLCOLOR получает все цвета заливки из C2:C10, а SUMIFS проверяет, является ли какой-либо из них "светло-зеленым 3".
- SUMIFS также сканирует A2:A10 на наличие имени из E2 -... Лила .
- Если оба условия выполнены, сумма из C2:C10 добавляется к общей сумме.
Пример 2. SUMIFS + VALUESBYCOLORALL
То же самое происходит и с VALUESBYCOLORALL:
=SUMIFS($C$2:$C$10,$A$2:$A$10,E2,VALUESBYCOLORALL("светло-зеленый 3","",$C$2:$C$10),"")
- VALUESBYCOLORALL возвращает диапазон, в котором только ячейки нужного цвета заливки содержат значения. SUMIFS учитывает все непустые ячейки.
- SUMIFS также сканирует A2:A10 для 'Leela' из E2.
- После выполнения обоих условий происходит суммирование соответствующей суммы из C2:C10.
Надеюсь, это руководство объясняет, как работают функции, и намекает на возможные способы их использования. Если у вас все еще есть трудности с их применением в вашем случае, познакомьтесь со мной в разделе комментариев ;)
Электронная таблица для практики
Функция по цвету - пользовательские функции - примеры (сделайте копию электронной таблицы)