Не меняется цвет ячейки в excel

Обновлено: 03.07.2024

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

На вкладке Разработчик (Developer) нажмите кнопку Visual Basic или сочетание клавиш Alt + F11 , чтобы открыть редактор макросов. Если такой вкладки у вас не видно, то включите ее в настройках Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) .

В окне редактора вставьте новый модуль через меню Insert - Module и скопируйте туда текст следующих функций:

Как легко сообразить, первая функция здесь вычисляет количество ячеек с заданным цветом заливки, вторая - сумму, а третья - среднее арифметическое. У всех функций два аргумента:

  • DataRange - диапазон исходных ячеек с числами, раскрашенных в разные цвета
  • ColorSample - ячейка, цвет заливки которой мы берём за образец

Если теперь вернуться в Excel, то в Мастере функций (вкладка Формулы - кнопка Вставить функцию) в появившейся там категории Определенные пользователем (User Defined) можно найти наши функции и вставить их на лист. Либо напрямую ввести их в строку формул, как любые другие функции Excel:

Сумма, количество и среднее ячеек с заданным цветом заливки

Добавление условий

Аналогичный подход можно легко масштабировать, добавляя, при необходимости, дополнительные условия в проверку (команда if . then. ). Так, например, если нам нужно при вычислении среднего арифметического учитывать не только цвет заливки, но и цвет шрифта (т.е. считать не просто жёлтые, а именно жёлто-красные ячейки), то код нашей макро-функции будет выглядеть так:Разница только в добавленном через логическую связку "И" (and) условии на проверку соответствия цвета шрифта очередной проверяемой ячейки cell.Font.Color цвету шрифта ячейки-образца ColorSample.Font.Color.

Ограничения и нюансы пересчёта

У созданных нами макрофункций есть 2 важных нюанса.

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

Во-вторых, к сожалению, изменение цвета заливки или цвета шрифта ячейки Excel не считает изменением её содержимого, поэтому не запускает пересчет формул. То есть при перекрашивании исходных ячеек с числами в другие цвета итоговая сумма/среднее/количество по нашим функциям автоматически пересчитываться пересчитываться не будет.

Полностью решить эту проблему невозможно, но есть несколько способов её обойти:

  • Сделать двойной щелчок левой кнопкой мыши по ячейки с нашей формулой и нажать на Enter , т.е. имитировать повторный ввод функции в ячейку - Excel её заново пересчитает и выдаст обновленный результат.
  • Можно использовать сочетание клавиш Ctrl + Alt + F9 , которое принудительно заставит Excel пересчитать всё формулы и функции независимо от того, изменились ли для них исходные данные. Но это сочетание нужно будет не забывать нажимать каждый раз при изменении исходных данных.
  • Добавить в код наших макрофункций (в любое место) команду Application.Volatile True. Эта команда языка Visual Basic заставляет Excel пересчитывать результаты нашей функции при изменении любой ячейки на листе (или по нажатию F9). Однако, в этом случае, скорость работы наших функций заметно снизится, т.к. их пересчёт будет происходить постоянно - даже когда мы не меняли цвета или значения ячеек в исходных данных. Пользуйтесь этим методом осторожно.

И помните о том, что наша функция перебирает все (и пустые тоже) ячейки в диапазоне DataRange и не задавайте в качестве первого аргумента целый столбец - "думать" будет долго :)

У нас есть сторонний инструмент, который создает файл Excel (xls, формат 97/2003) и форматирует некоторые ячейки в разные цвета. Когда я копирую диапазон ячеек во вновь созданный файл (формат xlsx, 2007/2010), цвета этих отформатированных ячеек полностью меняются - светло-желтый становится ярко-фиолетовым и т.д. То же самое происходит, когда я перемещаю / копирую весь лист в новый Учебное пособие.

К компании, которая создала сторонний инструмент, больше нельзя обратиться (вероятно, из бизнеса), поэтому я застрял с исправлением этого поведения в Excel.

Почему это происходит, и что я могу сделать, чтобы предотвратить или обойти это?

Щелкните правой кнопкой мыши - Специальная вставка - Все, используя исходную тему

Это должно сохранить исходную тему без изменений. Если это не сработает, вы можете опубликовать пример исходного документа?

Мои извинения за повторное открытие этого поста. Я сделал некоторые проблемы с этим, и мои выводы заключаются в следующем.

Допустим, мы используем опцию «Специальная вставка - все с использованием исходной темы», только ваши данные и форматирование из исходного листа будут сохранены, плавающие объекты не будут скопированы. Эта опция будет работать только тогда, когда на этом листе нет плавающих объектов (диаграмм, диаграмм, фигур). VBA:

Чтобы иметь все содержимое, относящееся к листу (включая плавающие объекты), необходимо переместить / скопировать лист в новую / целевую книгу. После этого все цвета изменятся на другую тему, включая цвета диаграмм. Это имеет место даже в том случае, когда цветные паллеты обеих книг одинаковы.

Я приложил файл для игры. Попробуйте скопировать / переместить лист в новую книгу и посмотрите, что произойдет, этот файл создан на платформе Office 2010. Я использую Office 365 на Win8, и эти стандартные цвета меняются на разные оттенки желтого и серого.

Эта проблема отсутствует при использовании книг, созданных с нуля в Office 365, но в файлах, созданных в предыдущих версиях Office, проблема не устраняется при использовании более поздней версии Office.

В этой статье Вы найдёте два быстрых способа изменять цвет ячейки в зависимости от её значения в Excel 2013, 2010 и 2007. Кроме того, Вы узнаете, как в Excel использовать формулы, чтобы изменять цвет пустых ячеек или ячеек с ошибками в формулах.

Каждому известно, что для изменения цвета заливки одной ячейки или целого диапазона в Excel достаточно просто нажать кнопку Fill color (Цвет заливки). Но как быть, если необходимо изменить цвет заливки всех ячеек, содержащих определённое значение? Более того, что если Вы хотите, чтобы цвет заливки каждой ячейки изменялся автоматически вместе с изменением содержимого этой ячейки? Далее в статье Вы найдёте ответы на эти вопросы и получите пару полезных советов, которые помогут выбрать правильный метод для решения каждой конкретной задачи.

    – Цвет заливки будет изменяться автоматически при изменении значения ячейки. – Однажды установленный цвет заливки не изменяется, вне зависимости от того, как изменяется значение ячейки.

Как в Excel динамически изменять цвет ячейки, основываясь на её значении

Цвет заливки будет изменяться в зависимости от значения ячейки.

Задача: Имеется таблица или диапазон данных, и Вы хотите изменить цвет заливки ячеек, основываясь на их значениях. Более того, необходимо, чтобы этот цвет изменялся динамически, отражая изменения данных в ячейках.

Решение: Используйте условное форматирование в Excel, чтобы выделить значения больше X, меньше Y или между X и Y.

Предположим, есть список цен на бензин в разных штатах, и Вы хотите, чтобы цены, превышающие $3.7, были выделены красным, а меньшие или равные $3.45 – зелёным.

Замечание: Снимки экрана для этого примера были сделаны в Excel 2010, однако, в Excel 2007 и 2013 кнопки, диалоговые окна и настройки будут точно такие же или с незначительными отличиями.

Итак, вот, что нужно сделать по шагам:

  1. Выделите таблицу или диапазон, в котором Вы хотите изменить цвет заливки ячеек. В этом примере мы выделяем $B$2:$H$10 (заголовки столбцов и первый столбец, содержащий названия штатов, не выделяем).
  2. Откройте вкладку Home (Главная), в разделе Styles (Стили) нажмите Conditional Formatting (Условное форматирование) > New Rule (Создать правило).
  3. В верхней части диалогового окна New Formatting Rule (Создание правила форматирования) в поле Select a Rule Type (Выберите тип правила) выберите Format only cells that contain (Форматировать только ячейки, которые содержат).
  4. В нижней части диалогового окна в поле Format Only Cells with (Форматировать только ячейки, для которых выполняется следующее условие) настройте условия для правила. Мы выбираем форматировать только ячейки с условием: Cell Value (Значение ячейки) – greater than (больше) – 3.7, как показано на рисунке ниже.Далее нажмите кнопку Format (Формат), чтобы выбрать, какой цвет заливки должен быть применён, если выполняется заданное условие.
  5. В появившемся диалоговом окне Format Cells (Формат ячеек) откройте вкладку Fill (Заливка) и выберите цвет (мы выбрали красноватый) и нажмите ОК.
  6. После этого Вы вернетесь в окно New Formatting Rule (Создание правила форматирования), где в поле Preview (Образец) будет показан образец Вашего форматирования. Если всё устраивает, нажмите ОК.

Результат Ваших настроек форматирования будет выглядеть приблизительно так:

Изменяем цвет заливки ячеек в Excel

Так как нам нужно настроить ещё одно условие, позволяющее изменять цвет заливки на зелёный для ячеек со значениями меньшими или равными 3.45, то снова нажимаем кнопку New Rule (Создать правило) и повторяем шаги с 3 по 6, устанавливая нужное правило. Ниже виден образец созданного нами второго правила условного форматирования:

Изменяем цвет заливки ячеек в Excel

Когда все будет готово – жмите ОК. Теперь у Вас имеется мило отформатированная таблица, которая даёт возможность с первого взгляда увидеть максимальные и минимальные цены на бензин в разных штатах. Хорошо им там, в Техасе! 🙂

Изменяем цвет заливки ячеек в Excel

Совет: Таким же способом Вы можете изменять цвет шрифта в зависимости от значения ячейки. Для этого просто откройте вкладку Font (Шрифт) в диалоговом окне Format Cells (Формат ячеек), как мы это делали на шаге 5, и выберите желаемый цвет шрифта.

Изменяем цвет заливки ячеек в Excel

Как настроить постоянный цвет ячейки, основываясь на её текущем значении

Однажды настроенный цвет заливки не будет изменяться, вне зависимости от того, как в будущем изменится содержимое ячейки.

Задача: Вы хотите настроить цвет ячейки, основываясь на её текущем значении, и хотите, чтобы цвет заливки оставался неизменным, даже когда значение ячейки изменяется.

Решение: Найти все ячейки с определённым значением (или значениями) при помощи инструмента Find All (Найти все), а затем изменить формат найденных ячеек, используя диалоговое окно Format Cells (Формат ячеек).

Это одна из тех редких задач, по которым нет разъяснения в файлах справки Excel, на форумах или в блогах, и для которых нет прямого решения. И это понятно, так как эта задача не типичная. И всё же, если Вам нужно изменить цвет заливки ячеек окончательно, то есть раз и на всегда (либо пока Вы не измените его вручную), выполните следующие шаги.

Найти и выделить все ячейки, удовлетворяющие заданному условию

Тут возможно несколько сценариев, в зависимости от того, значения какого типа Вы ищите.

Если Вы хотите раскрасить ячейки с конкретным значением, например, 50, 100 или 3.4 – то на вкладке Home (Главная) в разделе Editing (Редактирование) нажмите Find Select (Найти и выделить) > Find (Найти).

Изменяем цвет заливки ячеек в Excel

Введите нужное значение и нажмите Find All (Найти все).

Изменяем цвет заливки ячеек в Excel

Совет: В правой части диалогового окна Find and Replace (Найти и заменить) есть кнопка Options (Параметры), нажав которую Вы получите доступ к ряду продвинутых настроек поиска, таких как Match Case (Учитывать регистр) и Match entire cell content (Ячейка целиком). Вы можете использовать символы подстановки, такие как звёздочка (*), чтобы найти любую строку символов, или знак вопроса (?), чтобы найти один любой символ.

Что касается предыдущего примера, если нам нужно найти все цены на бензин от 3.7 до 3.799, то мы зададим такие критерии поиска:

Изменяем цвет заливки ячеек в Excel

Теперь кликните любой из найденных элементов в нижней части диалогового окна Find and Replace (Найти и заменить) и нажмите Ctrl+A, чтобы выделить все найденные записи. После этого нажмите кнопку Close (Закрыть).

Изменяем цвет заливки ячеек в Excel

Вот так можно выделить все ячейки с заданным значением (значениями) при помощи опции Find All (Найти все) в Excel.

Однако, в действительности нам нужно найти все цены на бензин, превышающие $3.7. К сожалению, инструмент Find and Replace (Найти и заменить) в этом не сможет нам помочь.

Измененяем цвета заливки выделенных ячеек при помощи диалогового окна «Формат ячеек»

Теперь у Вас выделены все ячейки с заданным значением (или значениями), мы сделали это только что при помощи инструмента Find and Replace (Найти и заменить). Всё, что Вам осталось сделать, это задать цвет заливки выбранным ячейкам.

Откройте диалоговое окно Format Cells (Формат ячеек) любым из 3-х способов:

  • нажав Ctrl+1.
  • кликнув по любой выделенной ячейке правой кнопкой мыши и выбрав в контекстном меню пункт Format Cells (Формат ячеек).
  • на вкладке Home (Главная) > Cells (Ячейки) > Format (Формат) > Format Cells (Формат ячеек).

Далее настройте параметры форматирования так, как Вам угодно. На этот раз мы установим оранжевый цвет заливки, просто для разнообразия 🙂

Изменяем цвет заливки ячеек в Excel

Если Вы хотите изменить только цвет заливки, не касаясь остальных параметров форматирования, то можете просто нажать кнопку Fill color (Цвет заливки) и выбрать понравившийся цвет.

Изменяем цвет заливки ячеек в Excel

Вот результат наших изменений форматирования в Excel:

Изменяем цвет заливки ячеек в Excel

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

Изменяем цвет заливки для особых ячеек (пустые, с ошибкой в формуле)

Как и в предыдущем примере, Вы можете изменить цвет заливки особых ячеек двумя способами: динамически и статически.

Используем формулу для изменения цвета заливки особых ячеек в Excel

Цвет ячейки будет изменяться автоматически в зависимости от значения ячейки.

Этот способ решения задачи Вы, вероятнее всего, будете использовать в 99% случаев, то есть заливка ячеек будет изменяться в соответствии с заданным Вами условием.

Для примера снова возьмём таблицу цен на бензин, но на этот раз добавим ещё пару штатов, а некоторые ячейки сделаем пустыми. Теперь посмотрите, как Вы сможете обнаружить эти пустые ячейки и изменить цвет их заливки.

  1. На вкладке Home (Главная) в разделе Styles (Стили) нажмите Conditional Formatting (Условное форматирование) > New Rule (Создать правило). Точно также, как на 2-м шаге примера Как динамически изменять цвет ячейки, основываясь на её значении.
  2. В диалоговом окне New Formatting Rule (Создание правила форматирования) выберите вариант Use a formula to determine which cellsto format (Использовать формулу для определения форматируемых ячеек). Далее в поле Format values where this formula is true (Форматировать значения, для которых следующая формула является истинной) введите одну из формул:
  3. чтобы изменить заливку пустых ячеек

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

Изменяем цвет заливки особых ячеек статически

Однажды настроенная заливка будет оставаться неизменной, не зависимо от значения ячейки.

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

  1. Выделите таблицу или диапазон и нажмите F5, чтобы открыть диалоговое окно Go To (Переход), затем нажмите кнопку Special (Выделить).
  2. В диалоговом окне Go to Special (Выделить группу ячеек) отметьте вариант Blanks (Пустые ячейки), чтобы выделить все пустые ячейки.Если Вы хотите выделить ячейки, содержащие формулы с ошибками, отметьте вариант Formulas (Формулы) > Errors (Ошибки). Как видно на рисунке выше, Вам доступно множество других настроек.
  3. И наконец, измените заливку выделенных ячеек или настройте любые другие параметры форматирования при помощи диалогового окна Format Cells (Формат ячеек), как это описано в разделе Изменение заливки выделенных ячеек.

Не забывайте, что настройки форматирования, сделанные таким образом, будут сохраняться даже когда пустые ячейки заполнятся значениями или будут исправлены ошибки в формулах. Трудно представить, что кому-то может понадобиться идти таким путём, разве что в целях эксперимента 🙂

Все очень просто. Хотим, чтобы ячейка меняла свой цвет (заливка, шрифт, жирный-курсив, рамки и т.д.) если выполняется определенное условие. Отрицательный баланс заливать красным, а положительный - зеленым. Крупных клиентов делать полужирным синим шрифтом, а мелких - серым курсивом. Просроченные заказы выделять красным, а доставленные вовремя - зеленым. И так далее - насколько фантазии хватит.

Чтобы сделать подобное, выделите ячейки, которые должны автоматически менять свой цвет, и выберите в меню Формат - Условное форматирование (Format - Conditional formatting) .

В открывшемся окне можно задать условия и, нажав затем кнопку Формат (Format) , параметры форматирования ячейки, если условие выполняется. В этом примере отличники и хорошисты заливаются зеленым, троечники - желтым, а неуспевающие - красным цветом:

Кнопка А также>> (Add) позволяет добавить дополнительные условия. В Excel 2003 их количество ограничено тремя, в Excel 2007 и более новых версиях - бесконечно.

Если вы задали для диапазона ячеек критерии условного форматирования, то больше не сможете отформатировать эти ячейки вручную. Чтобы вернуть себе эту возможность надо удалить условия при помощи кнопки Удалить (Delete) в нижней части окна.

Другой, гораздо более мощный и красивый вариант применения условного форматирования - это возможность проверять не значение выделенных ячеек, а заданную формулу:

Если заданная формула верна (возвращает значение ИСТИНА), то срабатывает нужный формат. В этом случае можно задавать на порядок более сложные проверки с использованием функций и, кроме того, проверять одни ячейки, а форматировать - другие.

Выделение цветом всей строки

Главный нюанс заключается в знаке доллара ($) перед буквой столбца в адресе - он фиксирует столбец, оставляя незафиксированной ссылку на строку - проверяемые значения берутся из столбца С, по очереди из каждой последующей строки:

Выделение максимальных и минимальных значений

Ну, здесь все достаточно очевидно - проверяем, равно ли значение ячейки максимальному или минимальному по диапазону - и заливаем соответствующим цветом:

В англоязычной версии это функции MIN и MAX, соответственно.

Выделение всех значений больше(меньше) среднего

Аналогично предыдущему примеру, но используется функция СРЗНАЧ (AVERAGE) для вычисления среднего:

Скрытие ячеек с ошибками

Чтобы скрыть ячейки, где образуется ошибка, можно использовать условное форматирование, чтобы сделать цвет шрифта в ячейке белым (цвет фона ячейки) и функцию ЕОШ (ISERROR) , которая выдает значения ИСТИНА или ЛОЖЬ в зависимости от того, содержит данная ячейка ошибку или нет:

Скрытие данных при печати

Аналогично предыдущему примеру можно использовать условное форматирование, чтобы скрывать содержимое некоторых ячеек, например, при печати - делать цвет шрифта белым, если содержимое определенной ячейки имеет заданное значение ("да", "нет"):

Заливка недопустимых значений

Сочетая условное форматирование с функцией СЧЁТЕСЛИ (COUNTIF) , которая выдает количество найденных значений в диапазоне, можно подсвечивать, например, ячейки с недопустимыми или нежелательными значениями:

Проверка дат и сроков

Поскольку даты в Excel представляют собой те же числа (один день = 1), то можно легко использовать условное форматирование для проверки сроков выполнения задач. Например, для выделения просроченных элементов красным, а тех, что предстоят в ближайшую неделю - желтым:

Счастливые обладатели последних версий Excel 2007-2010 получили в свое распоряжение гораздо более мощные средства условного форматирования - заливку ячеек цветовыми градиентами, миниграфики и значки:

Вот такое форматирование для таблицы сделано, буквально, за пару-тройку щелчков мышью. :)

P.S. Модератору: про теги в правилах не понял, не использую.

Проблема в любом файле Экселя.
В процессе работы, когда вставляю значения в ячейки и выставляя на некоторые ячейки некоторые цвета, то в какой-то момент Эксель будто бы пытается автоматизировать процесс заливки ячеек, и при добавлении новых значений в новые ячейки Эксель автоматически выполняет заливку цветом этой ячейки, беря для этого часто повторяющийся цвет из предыдущих ячеек в этом столбце. В итоге если несколько ячеек до этого я залил к примеру желтым цветом, то в какой-то момент все новые ячейки при заполнении их значениями в этом столбце автоматически заливаются желтым цветом, что мешает работе, т.к. приходится каждую ячейку вручную менять на "без цвета".

Терплю уже много лет
Обыскал интернет, так и не смог решить проблему. Просьба помочь

P.S. Модератору: про теги в правилах не понял, не использую.

Проблема в любом файле Экселя.
В процессе работы, когда вставляю значения в ячейки и выставляя на некоторые ячейки некоторые цвета, то в какой-то момент Эксель будто бы пытается автоматизировать процесс заливки ячеек, и при добавлении новых значений в новые ячейки Эксель автоматически выполняет заливку цветом этой ячейки, беря для этого часто повторяющийся цвет из предыдущих ячеек в этом столбце. В итоге если несколько ячеек до этого я залил к примеру желтым цветом, то в какой-то момент все новые ячейки при заполнении их значениями в этом столбце автоматически заливаются желтым цветом, что мешает работе, т.к. приходится каждую ячейку вручную менять на "без цвета".

Терплю уже много лет
Обыскал интернет, так и не смог решить проблему. Просьба помочь astion

Проблема в любом файле Экселя.
В процессе работы, когда вставляю значения в ячейки и выставляя на некоторые ячейки некоторые цвета, то в какой-то момент Эксель будто бы пытается автоматизировать процесс заливки ячеек, и при добавлении новых значений в новые ячейки Эксель автоматически выполняет заливку цветом этой ячейки, беря для этого часто повторяющийся цвет из предыдущих ячеек в этом столбце. В итоге если несколько ячеек до этого я залил к примеру желтым цветом, то в какой-то момент все новые ячейки при заполнении их значениями в этом столбце автоматически заливаются желтым цветом, что мешает работе, т.к. приходится каждую ячейку вручную менять на "без цвета".

Терплю уже много лет
Обыскал интернет, так и не смог решить проблему. Просьба помочь Автор - astion
Дата добавления - 22.12.2020 в 21:21

Читайте также: