Форматировать цвет ячейки на основе значения в другом листе и ячейке - PullRequest
14 голосов
/ 16 января 2009

У меня есть рабочая тетрадь с двумя листами. Я хотел бы отформатировать цвет фона ячейки в первом столбце листа 1 на основе значений во втором столбце листа 2.

Например, если значение sheet2, строка 6, столбец 2, скажем, 4, то я бы хотел, чтобы цвет фона листа 1, строка 4, столбец 1 был зеленым. Если ни одно из значений на листе 2, столбце 2, не ссылается на конкретный ряд на листе 1, я бы хотел оставить его без цвета. Нет запрета на то, чтобы одно и то же значение появлялось несколько раз во втором столбце листа 2. Бонусная благодарность, если вы можете сказать мне, как сбросить цвет, если убрано последнее значение в листе 2, указывающее на строку в листе 1.

Я уверен, что для мастеров Excel это может быть тривиально, но я редко имею возможность использовать Excel и, конечно, не успеваю стать черным поясом в нем. Может кто-нибудь предложить мне совет, указатели или быструю формулу, чтобы сделать это? Если для реализации потребуется сложный VB-код, это того не стоит.

Спасибо!

Ответы [ 5 ]

5 голосов
/ 17 января 2009

Вы также можете сделать это с именованными диапазонами , поэтому вам не нужно копировать ячейки с Листа 1 на Лист2:

  1. Определите именованный диапазон, скажем Sheet1Vals для столбца, в котором есть значения, на которых вы хотите основать свое условие. Вы можете определить новый именованный диапазон, используя пункт меню Insert\Name\Define.... Введите свое имя, а затем используйте браузер ячеек в поле Refers to, чтобы выбрать ячейки в диапазоне. Если диапазон со временем изменится (добавьте или удалите строки), вы можете использовать эту формулу вместо явного выбора ячеек:

    =OFFSET('SheetName'!$COL$ROW,0,0,COUNTA('SheetName'!$COL:$COL)).

    Добавьте -1 перед последним ), если в столбце есть строка заголовка.

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

  3. Используйте диалоговое окно «Условное форматирование» для создания ваших условий. Укажите Formula Is в выпадающем списке, затем укажите это для формулы:

    =INDEX(Sheet1Vals, MATCH([FirstCellInRange],Sheet2Vals))=[Condition]

    где [FirstCellInRange] - это адрес ячейки, которую вы хотите отформатировать, а [Condition] - это значение, которое вы проверяете.

Например, если мои условия в Sheet1 имеют значения 1, 2 и 3 и форматируемый столбец - это столбец B в Sheet2, тогда мои условные форматы будут выглядеть примерно так:

=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=1
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=2
=INDEX(Sheet1Vals, MATCH(B1,Sheet2Vals))=3

Затем вы можете использовать средство рисования форматов, чтобы скопировать эти форматы в остальные ячейки.

4 голосов
/ 16 января 2009

Вот как я это сделал в Excel 2003, используя условное форматирование.

Чтобы применить условное форматирование к Sheet1 с использованием значений из Sheet2, необходимо отразить значения в Sheet1.

Создание зеркала Листа 2, столбец Б на Листе 1

  1. Перейти к Sheet1.
  2. Вставьте новый столбец, щелкнув правой кнопкой мыши заголовок столбца А. и выбрав «Вставить».
  3. Введите следующую формулу в A1:

    =IF(ISBLANK(Sheet2!B1),"",Sheet2!B1)

  4. Скопируйте A1, щелкнув по нему правой кнопкой мыши и выбрав "Copy".
  5. Вставьте формулу в столбец A, щелкнув ее заголовок правой кнопкой мыши и выбрав "Paste".

Sheet1, столбец A теперь должен точно отражать значения в Sheet2, столбец B.

(Примечание: если вам не нравится это в столбце A, оно работает так же хорошо, как если бы оно было в столбце Z или где-либо еще)

Применение условного форматирования

  1. Оставайтесь на Sheet1.
  2. Выберите столбец B, щелкнув его заголовок левой кнопкой мыши.
  3. Выберите пункт меню Format > Conditional Formatting...
  4. Измените Condition 1 на "Formula is" и введите следующую формулу:

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

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

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

Скрытие зеркальной колонны

  1. Оставайтесь на Sheet1.
  2. Щелкните правой кнопкой мыши заголовок столбца A и выберите «Hide».

Это должно автоматически обновлять Sheet1 всякий раз, когда что-либо в Sheet2 изменяется.

1 голос
/ 28 февраля 2011

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

скопируйте оригинальную книгу в формате ctrl + g и выбрав соответствующий диапазон

вставьте его в новый рабочий лист, цвета будут изменены

с целевым назначением, все еще выделенным, щелкните правой кнопкой мыши и перейдите к «Специальная вставка» и выберите «Все с использованием исходной темы», затем повторите специальную вставку, только на этот раз со «Значениями», и он должен быть идентичен исходному листу вы скопировали

1 голос
/ 16 января 2009

Я использую Excel 2003 -

Проблема с использованием условного форматирования здесь заключается в том, что вы не можете ссылаться на другую рабочую таблицу или рабочую книгу в ваших условиях. Что вы можете сделать, так это установить некоторый столбец на листе 1 равным соответствующему столбцу на листе 2 (в вашем примере = Sheet2! B6). Я использовал столбец F в моем примере ниже. Тогда вы можете использовать условное форматирование. Выберите ячейку на листе 1, строку, столбец 1, а затем перейдите в меню условного форматирования. Выберите «Формула Is» из выпадающего списка и установите условие «= $ F $ 6 = 4». Нажмите на кнопку форматирования и затем выберите вкладку Patterns. Выберите нужный цвет, и все готово.

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

К ячейке можно применить до 3 условий (используйте кнопку «Добавить >>» в нижней части диалогового окна «Условное форматирование»), поэтому, если последняя строка фиксирована (например, вы знаете, что она всегда будет строкой 10). ) вы можете использовать его как условие, чтобы установить цвет фона на нет. Предполагая, что последнее значение, которое вас волнует, находится в строке 10, затем (все еще предполагая, что вы установили столбец F на листе 1 для соответствующих ячеек на листе 2), затем установите 1-е условие в формулу Is = $ F $ 10 = "" и шаблон для None. Сделайте это первым условием, и оно заменит любые последующие конфликтующие утверждения.

0 голосов
/ 16 января 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...