Цвет ячейки на основе значения текста


23

Столбец Excel содержит текстовое значение, представляющее категорию этой строки.

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

Пример: если бы у меня были категории bedroom, bedroom, bathroom, kitchen, living room, я бы хотел, чтобы все ячейки содержали bedroomопределенный цвет, bathroomдругой цвет и т. Д.


Если вы не хотите делать это вручную, как вы решили, какой цвет должен быть?
— soandos

2
Я хотел бы, чтобы это было автоматически, если это возможно, подобно тому, как цвета выбираются для разных серий на графике.
— Стивен

Ах, значит, вы хотите, чтобы все ячейки с одинаковым содержимым были одного цвета, но все равно, какой это цвет?
— Soandos

Будет ли приемлем однократный макрос (для создания условных форматов один раз)? Он должен быть запущен ровно один раз для каждой книги и может быть удален после этого.
— Tex Hex

soandos: Да, TeX Hex: Конечно!
— Стивен

Ответы:


6
  1. Скопируйте столбец, который вы хотите отформатировать, на пустой лист.
  2. Выберите столбец, а затем выберите «Удалить дубликаты» на панели «Инструменты данных» на вкладке «Данные» ленты.
  3. Справа от вашего уникального списка значений или строк составьте уникальный список чисел. Например, если у вас есть 6 категорий для раскраски, второй столбец может быть просто 1-6. Это ваша таблица поиска.
  4. В новом столбце используйте VLOOKUPдля сопоставления текстовой строки с новым цветом.
  5. Примените условное форматирование на основе нового числового столбца.

3
Шаг 4 немного неясен для меня, не могли бы вы уточнить? Спасибо.
— пикселей

1
Не могли бы вы уточнить на 5?
— zthomas.nc

1
Но, безусловно, это означает, что форматирование выполняется в ячейках, содержащих числовое значение, а НЕ текстовое значение
— adolf garlic

11

Приведенные ниже снимки экрана взяты из Excel 2010, но должны быть такими же для 2007 года.

Выберите ячейку и перейдите к Conditional Formatting | Highlight Cells Rules | Text that Contains

ОБНОВЛЕНИЕ: чтобы применить условное форматирование ко всему рабочему листу, выделите все ячейки и примените условное форматирование.

введите описание изображения здесь
(Нажмите на изображение, чтобы увеличить)

Теперь просто выберите форматирование, которое вы хотите.

введите описание изображения здесь


5
Разве для этого не потребуется, чтобы OP вручную создавал условный формат для каждого значения?
— Дэйв ДюПлантис

1
@ Дэйв ДюПлантис - НЕТ. Вы можете выбрать ВСЕ ячейки, а затем использовать условное форматирование. Все ячейки, которые удовлетворяют условию, будут соответственно отформатированы.
— Нику Зечеру

6
Каждое условие по-прежнему необходимо создавать вручную, хотя их нужно создавать только один раз для всей книги. Он ищет решение, которое не требует от него указывать значения.
— Дейв ДюПлантис

Так возможно ли иметь несколько правил для «текста содержит»? это все еще довольно плохая функциональность от MS
— Адольф Чеснок

2

От: http://www.mrexcel.com/forum/excel-questions/861678-highlighting-rows-random-colors-if-there-duplicates-one-column.html#post4185738

Sub ColourDuplicates()
Dim Rng As Range
Dim Cel As Range
Dim Cel2 As Range
Dim Colour As Long




Set Rng = Worksheets("Sheet1").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
Rng.Interior.ColorIndex = xlNone
Colour = 6
For Each Cel In Rng


If WorksheetFunction.CountIf(Rng, Cel) > 1 And Cel.Interior.ColorIndex = xlNone Then
Set Cel2 = Rng.Find(Cel.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False, SearchDirection:=xlNext)
    If Not Cel2 Is Nothing Then
        Firstaddress = Cel2.Address
        Do
        Cel.Interior.ColorIndex = Colour
        Cel2.Interior.ColorIndex = Colour
            Set Cel2 = Rng.FindNext(Cel2)

        Loop While Firstaddress <> Cel2.Address
    End If




Colour = Colour + 1


End If
Next


End Sub

Я вижу, что я уже проголосовал за этот ответ, но я не могу найти код, который я в конечном итоге использовал. Однажды я напишу гибкий код и поделюсь им здесь.
— Райан

1

Автоматический выбор цвета условного форматирования не является функцией Microsoft Excel.

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

  1. Создайте новое правило форматирования в условном форматировании.
  2. Используйте формулу, чтобы определить, какие ячейки форматировать.
  3. Формула: =$B1="bedroom"(при условии, что столбец категории - B)
  4. Задать формат (используя цвет заливки)
  5. Применение правила форматирования ко всем ячейкам

2
К вашему сведению, Эрик опубликовал гораздо более полезный ответ ... ваш вместо этого выглядит как повтор первого полученного вами ответа.
— Фрэнк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.