Excel 2007: Условное форматирование, так что каждая строка показывает низкие значения желтый, высокие значения красный

у меня есть таблица с около 300 строк. Каждая строка содержит около 15 столбцов, каждая ячейка содержит числовое значение. Каждая строка соответствует продукту.

Я хочу получить Excel для каждого продукта, чтобы выделить ячейки с самыми высокими числами красным и самыми низкими числами желтым цветом с градиентом для чисел между ними. Вот что происходит, если я выбираю строку (в частности, 15 ячеек в строке, которые содержат мои данные), а затем нажимаю Условное форматирование > цветовые шкалы > Красно-Желтая Цветовая Гамма.

однако, у меня есть 300 строк, и это займет слишком много времени, чтобы выбрать каждую строку по отдельности и установить Условное форматирование. С другой стороны, если я выбираю весь диапазон и применяю Условное форматирование, Excel вычисляет цвета на основе всего диапазона, когда на самом деле я хочу, чтобы они вычислялись по строкам. Например, возьмем следующий пример:

1 2 3
4 5 6
7 8 9

выход я хочу, используя y-желтый, o для оранжевый, R-красный, is:

Y O R
Y O R
Y O R

однако, если я выбираю весь диапазон и применяю Условное форматирование, я получаю:

Y Y Y
O O O
R R R

есть ли способ сделать это, не делая это по одной строке за раз?

24
задан Excellll
02.05.2023 12:01 Количество просмотров материала 3016
Распечатать страницу

3 ответа

вот макрос, который создает условный формат для каждой выделенной строки. Это делается путем копирования формата первой строки в каждую строку в выделенном фрагменте (по одной, а не полностью). Заменить B1: P1 со ссылкой на первую строку в таблице данных.

Sub NewCF()
    Range("B1:P1").Copy
    For Each r In Selection.Rows
        r.PasteSpecial (xlPasteFormats)
    Next r
    Application.CutCopyMode = False
End Sub

чтобы использовать, выделите неформатированные строки в наборе данных (в моем случае, B2: P300) и запустите макрос. В приведенном ниже примере обратите внимание, что максимальное число в первых двух строки 5 и 15, соответственно; обе клетки темно-красный.

Я уверен, что есть более быстрое решение, чем это.

enter image description here

11
отвечен Ellesa 2023-05-03 19:49

самый простой способ сделать это с помощью копирования/вставки постепенно. Во-первых, отформатируйте 1 строку так, как вы хотите. Затем скопируйте и пропустите форматирование только во вторую строку. Теперь скопируйте обе строки 1 и 2 и вставьте форматирование в строки 3 и 4. Промыть и повторять, копировать 4, последние 4, копию 8, вставка 8, 16 копировать, вставить 16. После того, как у вас есть приличное количество, как 16, вставьте его несколько раз, чтобы получить до 64 или 128. Затем вы можете скопировать их и вставить их форматирование, и вы экспоненциально покрываете больше территории, чем раньше.

Это не элегантно, и, по моему опыту, ресурсы, необходимые для условного форматирования eat row, начинают максимизировать около 2500 строк... но получить работу.

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

3
отвечен Poultron 2023-05-03 22:06

только что нашел это и другие примеры того, как сделать это через VBA, и это заставило меня задуматься, и я понял относительно быстрый и безболезненный способ сделать то же самое без необходимости знать или копировать какой-либо сценарий.

примените необходимое Условное форматирование к любой строке, а затем выделите всю строку. Затем щелкните правой кнопкой мыши в любом месте вдоль границы (мышь должна быть значок перемещения) и перетащите вниз к следующей строке. В контекстном меню, которое появляется выберите " Копировать сюда как Только Форматы". Теперь необходимо применить условный формат к обеим строкам по отдельности. Затем продолжайте делать это рекурсивно, за исключением того, что теперь вы можете выбрать и скопировать 2 или более строк за раз.

Это не сделка с одним выстрелом, как в приведенном выше коде, но она экспоненциально быстрее, чем выполнение одной строки за раз. Надеюсь, это поможет.

0
отвечен Chris S 2023-05-04 00:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх