Как определить цвет заливки ячейки
Функция =ЦВЕТЗАЛИВКИ(ЯЧЕЙКА) возвращает код цвета заливки выбранной ячейки. Имеет один обязательный аргумент:
- ЯЧЕЙКА — ссылка на ячейку, для которой необходимо применить функцию.
Ниже представлен пример, демонстрирующий работу функции.
Следует обратить внимание на тот факт, что функция не пересчитывается автоматически. Это связано с тем, что изменение цвета заливки ячейки Excel не приводит к пересчету формул. Для пересчета формулы необходимо пользоваться сочетанием клавиш Ctrl+Alt+F9
Пример использования
Так как заливка ячеек значительно упрощает восприятие данных, то пользоваться ей любят практически все пользователи. Однако есть и большой минус — в стандартном функционале Excel отсутствует возможность выполнять операции на основе цвета заливки. Нельзя просуммировать ячейки определенного цвета, посчитать их количество, найти максимальное и так далее.
С помощью функции ЦВЕТЗАЛИВКИ все это становится выполнимым. Например, «протяните» данную формулу с цветом заливки в соседнем столбце и производите вычисления на основе числового кода ячейки.
Иногда возникает необходимость изменить, определить цвет ячейки для копирования, закрасить определенную область, придав тем самым неповторимые и выразительные черты таблице данных.
В этой статье мы рассмотрим как вручную можно менять цвет ячейки, а так же как прописать в VBA изменение цвета диапазона ячеек или одной выделенной ячейки.
Начнем с простого. На главной панели инструментов ленты находится панель Формата Ячеек:
Для того, чтобы изменить цвет ячейки (диапазона ячеек) нам необходимо выделить ее, после чего на Панели инструментов выбрать необходимый цвет. Так же можно задать другие цвета, выбрав их из палитры. Панель инструментов меняет так же цвет текста, размер шрифта и формат границы ячейки.
Теперь зададим формат ячейки пользуясь контекстным меню, для чего кликнем правой кнопкой мыши на ячейке и в открывшемся списке выберем «Формат Ячеек»:
На вкладке «Заливка» можно выбрать цвет фона и узор.
Рассмотрим несколько иную ситуацию. Допустим вы хотите скопировать цвет ячейки (и формат) с существующей и применить к своим ячейкам. Воспользуемся кнопкой на главной панели «Формат по образцу» («метелочка»):
Таким образом, для того, чтобы скопировать формат необходимо выделить интересующую нас ячейку, нажать на «метелочку» и кликнуть по ячейке, формат которой мы хотим задать.
Аналогичные операции можно описать и в Макросах. Если есть необходимость вставить в код условие, по которому будет меняться формат ячейки или проводиться суммирование ячеек с определенным цветом или шрифтом, то проведя операции копирования формата с записью макроса, можно увидеть что:
Задать цвет ячейке (A1 окрашивается в Желтый):
Скопировать формат ячейки (формат A1 копируется на A3):
Теперь комбинируя формат с операторами условия можно написать вычисления (например, суммирование) по условию цвета.
Будем благодарны, если Вы нажмете +1 и/или Мне нравится внизу данной статьи или поделитесь с друзьями с помощью кнопок ниже.
Как узнать цвет ячейки excel
Функция CellColor
Данная функция позволяет определить внутренний числовой Excel код цвета заливки любой указанной ячейки. Это дает возможность пользователю впоследствии производить сортировку и фильтрацию ячеек по цвету, что часто бывает необходимо.
Синтаксис
=CellColor( cell )
- cell — ячейка, для которой нужно определить код цвета заливки
Примечания
К сожалению, поскольку Excel формально не считает смену цвета изменением содержимого листа, то эта функция не будет пересчитываться автоматически при изменении форматирования — обновление значений этой функции происходит только при нажатии сочетания клавиш полного пересчета листа Ctrl+Alt+F9.
Также (в силу ограничений самого Excel), данная функция не может считывать код цвета, если было использовано условное форматирование.
Если для ячейки не установлен цвет заливки, то код = -4142.
Если нужен RGB-код цвета, то используйте функцию RGBCellColor.
Если нужен код цвета не заливки, а шрифта, то используйте функцию CellFontColor.
Here are some small functions for you. From your sheet, press Alt—F11 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
I would like to know if we can find out the Color of the CELL with the help of any inline formula (without using any macros)
I’m using Home User Office package 2010.
Lance Roberts
22.2k32 gold badges112 silver badges129 bronze badges
asked Jun 24, 2014 at 9:07
2
As commented, just in case the link I posted there broke, try this:
Add a Name(any valid name) in Excel’s Name Manager under Formula tab in the Ribbon.
Then assign a formula using GET.CELL function.
=GET.CELL(63,INDIRECT("rc",FALSE))
63 stands for backcolor.
Let’s say we name it Background so in any cell with color type:
=Background
Result:
Notice that Cells A2, A3 and A4 returns 3, 4, and 5 respectively which equates to the cells background color index. HTH.
BTW, here’s a link on Excel’s Color Index
answered Jun 24, 2014 at 9:34
L42L42
19.3k11 gold badges43 silver badges68 bronze badges
6
Color is not data.
The Get.cell technique has flaws.
- It does not update as soon as the cell color changes, but only when
the cell (or the sheet) is recalculated. - It does not have sufficient numbers for the millions of colors that are available in modern Excel. See the screenshot and notice how the different intensities of yellow or purple all have the same number.
That does not surprise, since the Get.cell uses an old XML command, i.e. a command from the macro language Excel used before VBA was introduced. At that time, Excel colors were limited to less than 60.
Again: Color is not data.
If you want to color-code your cells, use conditional formatting based on the cell values or based on rules that can be expressed with logical formulas. The logic that leads to conditional formatting can also be used in other places to report on the data, regardless of the color value of the cell.
answered Jun 24, 2014 at 10:31
teylynteylyn
34.1k4 gold badges52 silver badges72 bronze badges
5
No, you can only get to the interior color of a cell by using a Macro. I am afraid. It’s really easy to do (cell.interior.color) so unless you have a requirement that restricts you from using VBA, I say go for it.
answered Jun 24, 2014 at 9:13
GaijinhunterGaijinhunter
14.5k4 gold badges50 silver badges57 bronze badges
1
Anticipating that I already had the answer, which is that there is no built-in worksheet function that returns the background color of a cell, I decided to review this article, in case I was wrong. I was amused to notice a citation to the very same MVP article that I used in the course of my ongoing research into colors in Microsoft Excel.
While I agree that, in the purest sense, color is not data, it is meta-data, and it has uses as such. To that end, I shall attempt to develop a function that returns the color of a cell. If I succeed, I plan to put it into an add-in, so that I can use it in any workbook, where it will join a growing legion of other functions that I think Microsoft left out of the product.
Regardless, IMO, the ColorIndex property is virtually useless, since there is essentially no connection between color indexes and the colors that can be selected in the standard foreground and background color pickers. See Color Combinations: Working with Colors in Microsoft Office and the associated binary workbook, Color_Combinations Workbook.
answered Sep 18, 2015 at 20:35
2
ЯЧЕЙКА Функция возвращает сведения о форматировании, расположении или содержимом ячейки. Например, если перед выполнением вычислений с ячейкой необходимо удостовериться в том, что она содержит числовое значение, а не текст, можно использовать следующую формулу:
=ЕСЛИ(ЯЧЕЙКА(«тип»;A1)=»v»;A1*2;0)
Эта формула вычисляет произведение A1*2, только если в ячейке A1 содержится числовое значение, и возвращает значение 0, если в ячейке A1 содержится текст или она пустая.
Примечание: Формулы, использующие функцию ЯЧЕЙКА, имеют значения аргументов для конкретного языка и возвращают ошибки при вычислениях с использованием другой языковой версии Excel. Например, если при создании формулы, содержащей ячейку, при использовании чешской версии Excel эта формула возвращает ошибку, если книга открыта во французском языке. Если важно, чтобы другие люди открывали вашу книгу с помощью разных языковых версий Excel, рассмотрите возможность использования альтернативных функций или разрешение на сохранение локальных копий, в которых они меняют аргументы ЯЧЕЙКА в зависимости от языка.
Синтаксис
ЯЧЕЙКА(тип_сведений;[ссылка])
Аргументы функции ЯЧЕЙКА описаны ниже.
Аргумент |
Описание |
---|---|
Тип_сведений Обязательно |
Текстовое значение, задающее тип сведений о ячейке при возвращении. В приведенном ниже списке указаны возможные значения аргумента «тип_сведений» и соответствующие результаты. |
ссылка Необязательно |
Ячейка, сведения о которой требуется получить. Если этот аргумент опущен, сведения, указанные в аргументе info_type, возвращаются для ячейки, выбранной на момент вычисления. Если аргумент «ссылка» является диапазоном ячеек, функция ЯЧЕЙКА возвращает сведения об активной ячейке в выбранном диапазоне. Важно: Технические ссылки необязательны, но рекомендуется их включит в формулу, если вы не понимаете, как это влияет на результат формулы, и не хотите, чтобы они были на месте. Опущенный аргумент ссылки не является надежной информацией о конкретной ячейке по следующим причинам:
|
info_type значения
В следующем списке описаны текстовые значения, которые можно использовать info_type аргумента. Эти значения должны быть введены в функцию ЯЧЕЙКА с кавычками (» «).
Тип_сведений |
Возвращаемое значение |
---|---|
«адрес» |
Ссылка на первую ячейку в аргументе «ссылка» в виде текстовой строки. |
«столбец» |
Номер столбца ячейки в аргументе «ссылка». |
«цвет» |
1, если форматированием ячейки предусмотрено изменение цвета для отрицательных значений; во всех остальных случаях — 0 (ноль). Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter. |
«содержимое» |
Значение левой верхней ячейки в ссылке; не формула. |
«имяфайла» |
Имя файла (включая полный путь), содержащего ссылку, в виде текстовой строки. Если лист, содержащий ссылку, еще не был сохранен, возвращается пустая строка («»). Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter. |
«формат» |
Текстовое значение, соответствующее числовому формату ячейки. Значения для различных форматов показаны ниже в таблице. Если ячейка изменяет цвет при выводе отрицательных значений, в конце текстового значения добавляется «-«. Если положительные или все числа отображаются в круглых скобках, в конце текстового значения добавляется «()». Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter. |
«скобки» |
1, если форматированием ячейки предусмотрено отображение положительных или всех чисел в круглых скобках; во всех остальных случаях — 0. Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter. |
«префикс» |
Текстовое значение, соответствующее префиксу метки ячейки. Одиночная кавычка (‘) соответствует тексту, выровненному влево, двойная кавычка («) — тексту, выровненному вправо, знак крышки (^) — тексту, выровненному по центру, обратная косая черта () — тексту, распределенному по всей ширине ячейки, а пустой текст («») — любому другому содержимому ячейки. Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter. |
«защита» |
0, если ячейка разблокирована, и 1, если ячейка заблокирована. Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter. |
«строка» |
Номер строки ячейки в аргументе «ссылка». |
«тип» |
Текстовое значение, соответствующее типу данных в ячейке. Значение «b» соответствует пустой ячейке, «l» — текстовой константе в ячейке, «v» — любому другому содержимому. |
«ширина» |
Возвращает массив с 2 элементами. Первый элемент массива — это ширина столбца ячейки, округленная до целого. Единица измерения равна ширине одного знака для шрифта стандартного размера. Второй элемент массива имеет значение Boolean, значение true, если ширина столбца является значением по умолчанию, или FALSE, если ширина явно задана пользователем. Примечание: Это значение не поддерживается в Excel в Интернете, Excel Mobile и Excel Starter. |
Коды форматов функции ЯЧЕЙКА
В приведенном ниже списке описаны текстовые значения, возвращаемые функцией ЯЧЕЙКА, если в качестве аргумента «тип_сведений» указано значение «формат», а аргумент ссылки указывает на ячейку, отформатированную с использованием встроенного числового формата.
Формат Microsoft Excel |
Значение, возвращаемое функцией ЯЧЕЙКА |
---|---|
Общий |
«G» |
0 |
«F0» |
# ##0 |
«,0» |
0,00 |
«F2» |
# ##0,00 |
«,2» |
$# ##0_);($# ##0) |
«C0» |
$# ##0_);[Красный]($# ##0) |
«C0-« |
$# ##0,00_);($# ##0,00) |
«C2» |
$# ##0,00_);[Красный]($# ##0,00) |
«C2-« |
0% |
«P0» |
0,00% |
«P2» |
0,00E+00 |
«S2» |
# ?/? или # ??/?? |
«G» |
д.М.гг или дд.ММ.гг Ч:мм или дд.ММ.гг |
«D4» |
Д МММ ГГ или ДД МММ ГГ |
«D1» |
д.м, или дд.ммм, или Д МММ |
«D2» |
ммм.гг, ммм.гггг, МММ ГГ или МММ ГГГГ |
«D3» |
дд.мм |
«D5» |
ч:мм AM/PM |
«D7» |
ч:мм:сс AM/PM |
«D6» |
ч:мм |
«D9» |
ч:мм:сс |
«D8» |
Примечание: Если аргумент info_type функции ЯЧЕЙКА — «формат», а затем к ячейке, на которая ссылается ссылка, будет применяться другой формат, необходимо повторно вычислите (нажмите F9),чтобы обновить результаты функции ЯЧЕЙКА.
Примеры
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Изменение формата ячейки
Создание или изменение ссылки на ячейку
Функция АДРЕС
Добавление, изменение, поиск и очистка условного форматирования в ячейке
Допустим, у нас есть таблица с данными и нам надо контролировать выход определенных ячеек за пределы диапазона. Например, есть таблица с успеваемостью и надо определить успевающих и неуспевающих студентов — с баллом больше Х и меньше Y. Когда у вас много данных — делать это вручную крайне сложно, но хорошо может помочь выделение ячеек цветами.
1 Выделение ячейки цветом вручную
Для задания цвета ячейки нужно выделить ее, нажать правую кнопку мыши, выбрать «формат ячеек». Затем, в открывшемся окне выбрать вкладку «заливка» и выбрать цвет.
Это работает, но процесс выделения очень утомительный. Студент сдал работу, оценка изменилась и надо выделить ячейку другим цветом. Это будет случаться постоянно и выделение отнимать очень много времени. Можно заставить Excel выделять ячейки самостоятельно.
2 Выделение цветом по условию
Выделите ячейки, которые надо подсвечивать. На вкладке «Главная» выберите «Условное форматирование->Правила выделения ячеек->Больше» (или другой пункт):
В появившемся окне можно ввести значение и стиль окрашивания. Например, для получения такого результата:
были выделены ячейки последнего столбца и к ним применено два условия (по очереди) — если значение более 300 — окрась зеленым, если меньше 240 — красным.
Иногда настроенные правила форматирования надо изменить — например, в конце семестра бал для окрашивания зеленым может быть выше чем в середине семестра. Иногда одно и тоже правило стоит применять к нескольким диапазонам ячеек и этим тоже хочется управлять. На самом деле, все настройки форматирования ячеек в Excel сохраняются и их можно посмотреть и изменить выбрав «Условное форматирование->Управление правилами»:
Также, интересный эффект можно получить с помощью цветовых шкал. Достаточно просто выделить диапазон и выбрать пункт «Условное форматирование->Цветовые шкалы». Если в ячейках записаны числа — они сами будут подсвечены в выбранных тонах — от минимального значения к максимальному. Результат может быть например таким:
Цвета можно использовать в качестве параметра фильтрации. Для этого выделите столбец и в меню выберите «Данные->Фильтр». Около заголовка столбца появится появится значок выпадающего списка, позволяющий выбрать опции фильтрации, среди которых есть «Фильтрация по цвету»:
Цвет заливки ячейки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |