У меня есть таблица с примерно 300 строк. Каждая строка имеет около 15 столбцов, и каждая ячейка содержит числовое значение. Каждый ряд соответствует продукту.
Я хочу, чтобы в Excel для каждого продукта выделялись ячейки с наивысшими номерами красным цветом и наименьшими номерами желтым цветом с градиентом для чисел между ними. Это то, что происходит, если я выбираю строку (в частности, 15 ячеек в строке, которые содержат мои данные), а затем нажимаю Условное форматирование> Цветовые шкалы> Красно-желтая цветовая шкала.
Тем не менее, у меня есть 300 строк, и это займет слишком много времени, чтобы выбрать каждую строку отдельно и установить условное форматирование. С другой стороны, если я выбираю весь диапазон и применяю условное форматирование, Excel вычисляет цвета на основе всего диапазона, тогда как на самом деле я хочу, чтобы они вычислялись построчно. Например, возьмите этот пример данных:
1 2 3
4 5 6
7 8 9
Я хочу получить вывод, используя Y для желтого, O для оранжевого, R для красного:
Y O R
Y O R
Y O R
Однако, если я выберу весь диапазон и приму условное форматирование, я получу:
Y Y Y
O O O
R R R
Есть ли способ сделать это, не делая это по одной строке за раз?
Ответы:
Вот макрос, который создает условный формат для каждой строки в вашем выборе. Это делается путем копирования формата первой строки в КАЖДУЮ строку в выборе (один за другим, не полностью). Замените B1: P1 ссылкой на первую строку в вашей таблице данных.
Чтобы использовать, выделите неформатированные строки в вашем наборе данных (в моем случае, B2: P300 ), а затем запустите макрос. В приведенном ниже примере обратите внимание, что максимальные числа в первых двух строках равны 5 и 15 соответственно; обе клетки темно-красные .
Я уверен, что есть более быстрое решение, чем это, хотя.
источник
Самый простой способ сделать это с помощью копирования / вставки постепенно. Сначала отформатируйте 1 строку так, как вы хотите. Затем скопируйте и пропустите форматирование ТОЛЬКО во второй строке. Теперь скопируйте ОБА строки 1 и 2 и вставьте форматирование в строки 3 и 4. Промойте и повторите, скопируйте 4, затем 4, скопируйте 8, вставьте 8, скопируйте 16, вставьте 16. Как только вы получите приличное количество, например 16, вставьте его несколько раз, чтобы получить 64 или 128. Затем вы можете скопировать их и вставить их форматирование, и вы экспоненциально охватите больше территории, чем раньше.
Это не элегантно, и, по моему опыту, ресурсы, необходимые для условного форматирования начала строки, максимизируются примерно до 2500 строк ... но его работа выполнена.
Я просто хотел бы, чтобы была логика, которая не создавала отдельный условный формат для каждой отдельной строки, занимая ресурсы ...
источник
Просто нашел этот и другие примеры того, как сделать это через VBA, и это заставило меня задуматься, и я нашел относительно быстрый и безболезненный способ сделать то же самое без необходимости знать или копировать какой-либо сценарий.
Примените требуемое условное форматирование к любой строке, которую вы хотите, а затем выделите всю строку. Далее щелкните правой кнопкой мыши в любом месте вдоль границы (мышь должна быть иконкой перемещения) и перетащите вниз к следующему ряду. В появившемся контекстном меню выберите «Копировать сюда только для форматов». Теперь ваш условный формат должен применяться к обеим строкам отдельно. Затем продолжайте делать это рекурсивно, за исключением того, что теперь вы можете выбирать и копировать 2 или более строк одновременно.
Это не одноразовая сделка, как в приведенном выше коде, но она экспоненциально быстрее, чем выполнение одной строки за раз. Надеюсь это поможет.
источник
Вы также можете применить форматирование условия к одной строке. Снова выделите строку и дважды щелкните «Формат по образцу», чтобы заблокировать ее. Используйте клавишу со стрелкой вниз, чтобы применить условие вниз к другим строкам.
Для моей компании обычно блокирует макрос в Excel, так что это работает для меня. надеюсь, это вам тоже поможет.
источник