Форматировать цвет ячейки на основе значения в другом листе и ячейке

У меня есть книга с двумя листами. Я хотел бы отформатировать цвет фона ячейки в первом столбце листа 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.
  • Выберите столбец B, щелкнув левой кнопкой мыши его заголовок.
  • Выберите пункт меню Format > Conditional Formatting...
  • Измените Condition 1 на "Formula is" и введите следующую формулу:

    =MATCH(B1,$A:$A,0)

  • Нажмите кнопку Format... и выберите зеленый фон.

Теперь вы должны увидеть зеленый фон, применяемый к соответствующим ячейкам в 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

Я сделал это раньше с условное форматирование. Это отличный способ визуально осмотреть ячейки в рабочей книге и выявить выбросы в ваших данных.