2

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

Вот пример (не мой):

таблица данных Excel

Как я могу автоматически отформатировать строки в зависимости от одного из значений его ячеек, который не является числом и без написания большого количества кода?

Я видел "Условное форматирование" с масштабными цветами в Excel 2007. Я хотел бы что-то вроде этого: каждое текстовое значение привязано к одному цвету. Что-то вроде картографии с теорией 3 цветов ...

5 ответов5

1

Просто зайдите в Format|Conditional Formatting и сделайте Cell Value is equal to Hold и дайте желтое форматирование. Затем сделайте то же самое для прогресса. Я упускаю суть?

РЕДАКТИРОВАТЬ: Теорема о четырех цветах не работает в этом случае. Возможно, вы могли бы иметь сотни цветов, поэтому, если вы не выберете каждый из них (вы не используете числовые значения, поэтому вы не можете использовать числа для определения), я не думаю, что это сработает.

1

Вы можете написать формулу, которая возвращает 0 или 1 в зависимости от того, находит ли он один критерий. Затем создайте несколько условных форматов для одного и того же диапазона, который использует выходные данные формулы. В качестве альтернативы можно сделать формулу более сложной и вернуть 0,1, .... n, чтобы представить полное состояние (например, имеет "Y", не имеет "x", имеет "z"). Опять же, используйте перекрывающееся условное форматирование. Также используйте именованные диапазоны!

0

Я отвечаю на свой вопрос, чтобы опубликовать код VBA:

Sub COLOR(area As Range)
Dim c As Range
Dim a As Long
Dim v As Variant

Dim values As Variant
values = DistinctValues(area)
a = 0
For Each v In values
    a = a Mod 6 + 1
    FindAll(area, v, LookIn:=xlValues, LookAt:=xlWhole).EntireRow.SpecialCells(xlCellTypeConstants).Interior.ThemeColor = a + 4
Next
End Sub

Вы можете найти реализацию FindAll и DistinctValue.

Я знаю, что код быстрый и грязный, как и VBA. :-п

Некоторое объяснение

  • Range.Interior.ThemeColor - это свойства Excel 2007, подходящие по цвету для некоторых заданных цветов темы.
  • a Mod 6 + 1 и a + 4 используются для выбора между 6 цветами (Акцент [1-6]) из 12 тем.
  • Range.EntireRow.SpecialCells(xlCellTypeConstants) возвращает целое с ячейками содержимого строки. area - это диапазон, в котором находятся дубликаты.
0

Используйте "Условное форматирование", а затем "Новое правило" для форматирования:

0

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

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

2) Если вы хотите отформатировать ячейку по-разному в зависимости от текста в ней ... выберите ячейку, перейдите в формат-> условное форматирование. Выберите ту же ячейку в условном термине. Оставьте условие как "Значение ячейки" и укажите формат для использования на основе этого текста. Затем вы можете добавить больше условий для каждого потенциального значения текста.

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