Форматировать цвет ячейки на основе значения в другом листе и ячейке
У меня есть книга с двумя листами. Я хотел бы отформатировать цвет фона ячейки в первом столбце листа 1 на основе значений во втором столбце листа 2.
Например, если значение листа 2, строка 6, столбец 2, скажем, 4, то я хотел бы, чтобы цвет фона листа 1, строка 4, столбец 1 был зеленым. Если ни одно из значений в листе 2, столбец 2 не ссылается на строку в листе 1, я бы хотел оставить ее без цвета. Там нет запрета на одно и то же значение, появляющееся несколько раз во втором столбце листа 2. Бонусные преимущества, если вы можете сказать мне, как отключить цвет, если удалено последнее значение в листе 2, указывающее на строку в листе 1.
Я уверен, что для мастеров Excel это может быть тривиально, но мне редко приходится использовать excel и, конечно же, не успеваю стать черным ремнем в нем. Может ли кто-нибудь предложить мне советы, указатели или краткую формулу для этого? Если это займет какой-то сложный код VB для реализации, это не стоит.
Спасибо!
Ответы
Ответ 1
Вот как я это сделал в Excel 2003 с использованием условного форматирования.
Чтобы применить условное форматирование к Sheet1
, используя значения из Sheet2
, вам нужно отразить значения в Sheet1
.
Создание зеркала Sheet2, столбец B в Листе 1
- Перейдите к
Sheet1
.
- Вставьте новый столбец, щелкнув правой кнопкой мыши заголовок столбца A и выбрав "Вставить".
-
Введите следующую формулу в A1:
=IF(ISBLANK(Sheet2!B1),"",Sheet2!B1)
- Скопируйте
A1
, щелкнув его правой кнопкой мыши и выбрав "Copy
".
- Вставьте формулу в столбец
A
, щелкнув правой кнопкой мыши ее заголовок и выбрав "Paste
".
Sheet1
, столбец A
должен теперь точно отражать значения в Sheet2
, столбце B
.
(Примечание: если вам не нравится в столбце A
, он работает так же, как и в столбце Z
или где-либо еще.)
Применение условного форматирования
Теперь вы должны увидеть зеленый фон, применяемый к соответствующим ячейкам в Sheet1
.
Скрытие зеркального столбца
- Оставайтесь на
Sheet1
.
- Щелкните правой кнопкой мыши заголовок столбца
A
и выберите "Hide
".
Это должно автоматически обновлять Sheet1
, когда что-либо в Sheet2
было изменено.
Ответ 2
Вы также можете сделать это с помощью именованных диапазонов, поэтому вам не нужно копировать ячейки из Sheet1 в Sheet2:
-
Определите именованный диапазон, скажем Sheet1Vals
для столбца, который имеет значения, на которых вы хотите установить свое условие. Вы можете определить новый именованный диапазон, используя пункт меню Insert\Name\Define...
. Введите свое имя, затем используйте браузер ячейки в поле Refers to
, чтобы выбрать ячейки, которые вы хотите в диапазоне. Если диапазон изменится с течением времени (добавьте или удалите строки), вы можете использовать эту формулу вместо явного выбора ячеек:
=OFFSET('SheetName'!$COL$ROW,0,0,COUNTA('SheetName'!$COL:$COL))
.
Добавьте -1
до последнего )
, если столбец имеет строку заголовка.
-
Определите именованный диапазон, скажем Sheet2Vals
для столбца, который имеет значения, которые вы хотите условно отформатировать.
-
Используйте диалоговое окно "Условное форматирование", чтобы создать свои условия. Укажите Formula Is
в раскрывающемся списке, затем поместите это для формулы:
=INDEX(Sheet1Vals, MATCH([FirstCellInRange],Sheet2Vals))=[Condition]
где [FirstCellInRange]
- адрес ячейки, которую вы хотите отформатировать, и [Condition]
- это значение вашей проверки.
Например, если мои условия в Sheet1 имеют значения 1
, 2
и 3
, а форматирование столбца я - столбец B
в Sheet2, тогда мои условные форматы будут выглядеть примерно так:/p >
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=1
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=2
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=3
Затем вы можете использовать формат, чтобы скопировать эти форматы в остальные ячейки.
Ответ 3
Я использую Excel 2003 -
Проблема с использованием условного форматирования здесь заключается в том, что вы не можете ссылаться на другой рабочий лист или книгу в ваших условиях. То, что вы можете сделать, - установить столбец на листе 1, равный соответствующему столбцу на листе 2 (в вашем примере = Sheet2! B6). Я использовал столбец F в моем примере ниже. Затем вы можете использовать условное форматирование. Выберите ячейку в Листе 1, строке, столбце 1, а затем перейдите в меню условного форматирования. Выберите "Формула Is" из раскрывающегося списка и установите условие "= $F $6 = 4". Нажмите кнопку формата, а затем выберите вкладку "Шаблоны". Выберите нужный цвет, и вы закончили.
Вы можете использовать инструмент макета формата, чтобы применить условное форматирование к другим ячейкам, но имейте в виду, что по умолчанию Excel использует абсолютные ссылки в условиях. Если вы хотите, чтобы они были относительными, вам нужно будет удалить знаки доллара из условия.
У вас может быть до 3 условий, применяемых к ячейке (используйте кнопку "Добавить" внизу диалогового окна "Условное форматирование" ), поэтому, если последняя строка исправлена (например, вы знаете, что всегда будет строка 10 ) вы можете использовать его как условие для установки цвета фона на none. Предполагая, что последнее значение, о котором вы заботитесь, находится в строке 10, тогда (при условии, что вы установили столбец F на листе 1 в соответствующие ячейки на листе 2), затем установите 1-е условие в Формулу Is = $F $10 = "", а шаблон в None. Сделайте это первым условием, и оно переопределит любые последующие конфликтующие утверждения.
Ответ 4
Вот мое собственное решение для восстановления исходных цветов при копировании определенных высокоформатных листов или шаблонов в новую таблицу. Он копирует все данные напрямую, поэтому он работает только, если вам нужно скопировать лист, а не только применять цвета к другой лист с разными данными:
скопируйте исходную рабочую книгу с помощью ctrl + g и выберите соответствующий диапазон
вставьте его в новый рабочий лист, цвета будут изменены.
с выделенным пунктом назначения, щелкните правой кнопкой мыши и перейдите к "Вставить специальный" и выберите "Все, используя тему источника", а затем повторите настройку вставки, только с "Значениями" на этот раз, и она должна быть идентична оригинальному листу вы скопировали
Ответ 5
Я сделал это раньше с условное форматирование. Это отличный способ визуально осмотреть ячейки в рабочей книге и выявить выбросы в ваших данных.