Excel проверить ячейку на цвет

Как определить цвет заливки ячейки

Функция =ЦВЕТЗАЛИВКИ(ЯЧЕЙКА) возвращает код цвета заливки выбранной ячейки. Имеет один обязательный аргумент:

  • ЯЧЕЙКА — ссылка на ячейку, для которой необходимо применить функцию.

Ниже представлен пример, демонстрирующий работу функции.

Пример работы формулы ЦВЕТЗАЛИВКИ

Следует обратить внимание на тот факт, что функция не пересчитывается автоматически. Это связано с тем, что изменение цвета заливки ячейки Excel не приводит к пересчету формул. Для пересчета формулы необходимо пользоваться сочетанием клавиш Ctrl+Alt+F9

Пример использования

Так как заливка ячеек значительно упрощает восприятие данных, то пользоваться ей любят практически все пользователи. Однако есть и большой минус — в стандартном функционале Excel отсутствует возможность выполнять операции на основе цвета заливки. Нельзя просуммировать ячейки определенного цвета, посчитать их количество, найти максимальное и так далее.

С помощью функции ЦВЕТЗАЛИВКИ все это становится выполнимым. Например, «протяните» данную формулу с цветом заливки в соседнем столбце и производите вычисления на основе числового кода ячейки.

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

В этой статье мы рассмотрим как вручную можно менять цвет ячейки, а так же как прописать в VBA изменение цвета диапазона ячеек или одной выделенной ячейки.

Начнем с простого. На главной панели инструментов ленты находится панель Формата Ячеек:

Excel панель инструментов-изменение ячеек

Для того, чтобы изменить цвет ячейки (диапазона ячеек) нам необходимо выделить ее, после чего на Панели инструментов выбрать необходимый цвет. Так же можно задать другие цвета, выбрав их из палитры. Панель инструментов меняет так же цвет текста, размер шрифта и формат границы ячейки.

Теперь зададим формат ячейки пользуясь контекстным меню, для чего кликнем правой кнопкой мыши на ячейке и в открывшемся списке выберем «Формат Ячеек»:

формат ячеек в excel

На вкладке «Заливка» можно выбрать цвет фона и узор.

Рассмотрим несколько иную ситуацию. Допустим вы хотите скопировать цвет ячейки (и формат) с существующей и применить к своим ячейкам. Воспользуемся кнопкой на главной панели «Формат по образцу» («метелочка»):

Excel формат по образцу

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

Аналогичные операции можно описать и в Макросах. Если есть необходимость вставить в код условие, по которому будет меняться формат ячейки или проводиться суммирование ячеек с определенным цветом или шрифтом, то проведя операции копирования формата с записью макроса, можно увидеть что:

Задать цвет ячейке (A1 окрашивается в Желтый):

Скопировать формат ячейки (формат A1 копируется на A3):

Теперь комбинируя формат с операторами условия можно написать вычисления (например, суммирование) по условию цвета.

Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок ниже.

Как узнать цвет ячейки excel

Функция CellColor

Данная функция позволяет определить внутренний числовой Excel код цвета заливки любой указанной ячейки. Это дает возможность пользователю впоследствии производить сортировку и фильтрацию ячеек по цвету, что часто бывает необходимо.

Определение кода цвета ячейки с помощью функции CellColor

Синтаксис

=CellColor( cell )

  • cell — ячейка, для которой нужно определить код цвета заливки
Примечания

К сожалению, поскольку Excel формально не считает смену цвета изменением содержимого листа, то эта функция не будет пересчитываться автоматически при изменении форматирования — обновление значений этой функции происходит только при нажатии сочетания клавиш полного пересчета листа Ctrl+Alt+F9.

Также (в силу ограничений самого Excel), данная функция не может считывать код цвета, если было использовано условное форматирование.

Если для ячейки не установлен цвет заливки, то код = -4142.

Если нужен RGB-код цвета, то используйте функцию RGBCellColor.

Если нужен код цвета не заливки, а шрифта, то используйте функцию CellFontColor.

Надстройка PLEX для Microsoft Excel 2007-2021 и Office 365

Функция CellColor

Данная функция позволяет определить внутренний числовой Excel код цвета заливки любой указанной ячейки. Это дает возможность пользователю впоследствии производить сортировку и фильтрацию ячеек по цвету, что часто бывает необходимо.

Определение кода цвета ячейки с помощью функции CellColor

Синтаксис

=CellColor(cell)

где

  • cell — ячейка, для которой нужно определить код цвета заливки

Примечания

К сожалению, поскольку Excel формально не считает смену цвета  изменением содержимого листа, то эта функция не будет пересчитываться автоматически при изменении форматирования — обновление значений этой функции происходит только при нажатии сочетания клавиш полного пересчета листа Ctrl+Alt+F9.

Также (в силу ограничений самого Excel), данная функция не может считывать код цвета, если было использовано условное форматирование.

Если для ячейки не установлен цвет заливки, то код = -4142.

Если нужен RGB-код цвета, то используйте функцию RGBCellColor.

Если нужен код цвета не заливки, а шрифта, то используйте функцию CellFontColor.

Полный список всех инструментов надстройки PLEX

Here are some small functions for you. From your sheet, press AltF11 to reach the VBA editor, insert a new module, paste the below code, go back to your worksheet and use them by their names, like in =FillColor(A1)

The first two are the promised «3-liners» giving decimal values for font and background colors — not very useful though

The second pair converts the decimal number to RGB and returns a string of format N, N, N

The third pair are array formulas — select 3 cells in a row, enter the formula and press Ctrl+Shift+Enter to obtain numeric RGB values in 3 neighboring cells

Function FillColor(Target As Range) As Variant
    FillColor = Target.Interior.Color
End Function

Function FontColor(Target As Range) As Variant
    FontColor = Target.Font.Color
End Function

Function FillColorRGB(Target As Range) As Variant
Dim N As Double

    N = Target.Interior.Color
    FillColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function

Function FontColorRGB(Target As Range) As Variant
Dim N As Double

    N = Target.Font.Color
    FontColorRGB = Str(N Mod 256) & ", " & Str(Int(N / 256) Mod 256) & ", " & Str(Int(N / 256 / 256) Mod 256)
End Function

Function FillColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer

    N = Target.Interior.Color
    A(0) = N Mod 256
    A(1) = Int(N / 256) Mod 256
    A(2) = Int(N / 256 / 256) Mod 256
    FillColorRGBArray = A
End Function

Function FontColorRGBArray(Target As Range) As Variant
Dim N As Double, A(3) As Integer

    N = Target.Font.Color
    A(0) = N Mod 256
    A(1) = Int(N / 256) Mod 256
    A(2) = Int(N / 256 / 256) Mod 256
    FontColorRGBArray = A
End Function

A word of caution: changing the color of a cell does not start recalculation by the above functions/formulas, as recoloring a cell in general is not supposed to drive recalculation. You have to manually start a full recalculation using Ctrl+Alt+Shift+F9

Надо сделать условие в зависимости от цвета (шрифта, цвета текста и тп.) ячейки. . То есть должно получиться, что-то типа:
ЕСЛИ(цвет ячейки зеленый;истина;ложь)

Подскажите пожайлуста, как это делается. :)


По цвету не знаю, но можно например по формату ячейки:
=ЕСЛИ(ЯЧЕЙКА(«формат»;E4)=G;истина;ложь)
Про форматы в функции ЯЧЕЙКА есть в справке.


«G» — это вроде как что-то типа стандартного формата ячейки, такое я уже пробовала, нифига не считает :(


Dmitr68, вообще у меня получается вот такая мега-формула:
=ЕСЛИ(ЯЧЕЙКА(«формат»;RC[-25])=G;ЕСЛИ(ЕПУСТО(RC[-25]);0;(2*RC38*264*RC[-25]));ЕСЛИ(ЕПУСТО(RC[-25]);0;(2*RC38*264*RC[-25]+RC6*258)))
RC[-25] — это ячейка, которая стоит 25 ячеек назад. RC38, RC6 — это ячейки в 38м и в 6м столбце соответственно. Все находится в той же строке, в которой формула.
ЕПУСТО — оператор проверки наличия хоть чего-нибудь в ячейке.
Должно получиться так:
Если цвет ячейки отличается от стандартного, и в ней что-то написано, то выполняется условие 2*RC38*264*RC[-25]+RC6*258; если цвет не отличается, то должно выполниться 2*RC38*264*RC[-25]; если в ячейке ничего нет, то должно быть значение 0 (Умножать все на значение ячейки не получается, формала выдает неправильные результаты, там все мудрено).
То есть сначала оно должно проверять на наличие света ячеек, потом на наличие в них хоть какого-нибудь значения. В зависимости от цвета, она должна подсчитавыть разные значения. (Цвет ячеки либо стандартный, либо любой другой)

Я честно хз, где там ошибка, вроде по логике все правильно, но не считает :((



Цитата: kettary@mail.ru от 07.01.2010, 19:18
Надо сделать условие в зависимости от цвета (шрифта, цвета текста и тп.) ячейки.

Какой то «шыворот на выворот».
Если цвет ячеек меняется, то для этого, наверное, уже существуют
какие то условия. Я бы поискал другое решение проблеммы.

Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.


Понравилась статья? Поделить с друзьями:
  • Excel проверка на повтор в столбце
  • Excel проверить ячейку на формат
  • Excel проверка на ошибку значения
  • Excel проверить ячейку на ошибку
  • Excel проверка на непустую ячейку