23

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

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

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

4 ответа4

11

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

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

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


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

Теперь просто выберите желаемое форматирование.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .