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

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
Karmo
источник
Я вижу, что я уже проголосовал за этот ответ, но я не могу найти код, который я в конечном итоге использовал. Однажды я напишу гибкий код и поделюсь им здесь.
Райан
1

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

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

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