Цветовое кодирование блоков строк с использованием условного форматирования

6591
RocketGoal

Мои макросы были убраны; никогда не будет использоваться снова! Я потрошеная. Теперь мне нужно использовать форматирование, чтобы помочь мне выделить разных пользователей и их данные. Делать это вручную - рутина.

В Excel 2007 есть ли способ сказать «чередующийся цвет между серым и белым на основе совпадающих имен в строке A»? Строка А отсортирована так, чтобы имена были в порядке и вместе.

Bob (White) Bob (White) Derek (Grey) Jane (White) Jane (White) Jane (White) Jane (White) etc (Grey) etc (etc) 
5
Почему вы не можете использовать макросы? Я скажу, что условное форматирование сильно изменилось в 2007 году, поэтому ваши макросы могут нуждаться в изменении, но они все еще должны быть там. DaveParillo 14 лет назад 0
Система теперь запрещает макросы. RocketGoal 14 лет назад 0

4 ответа на вопрос

3
Jared Harley

Изменить: полностью пересмотрел мой ответ. Для этого требовалась «вспомогательная колонка», но, похоже, она работает намного лучше.

С сайта Excel Pages Дэвида Макричи по условному форматированию :

Мы хотим сгруппировать каждый раз, когда происходит изменение в столбце A или столбце B. Условное форматирование не может отслеживать, какой был предыдущий цвет, поэтому нам придется использовать вспомогательный столбец, а затем иметь условное форматирование, чтобы проверить вспомогательный столбец.

Основная формула для необходимого вспомогательного столбца:

E1: 0  E2: =MOD(OFFSET($E2,-1,0)+ OR($A2<>OFFSET($A2,-1,0),$B2<>OFFSET($B2,-1,0)),2) 

От E2, просто перетащите формулу вниз, как вам нужно с вашими данными.

Ваша формула условного форматирования будет:

=$E1=1 

Посетите страницу условного форматирования в группах, чтобы узнать, как и почему это работает.

Это не работает для меня. Я выбрал всю таблицу данных и точно следовал вашим шагам. Полос строк не произошло. RocketGoal 14 лет назад 0
По общему признанию, я нашел это решение на другом веб-сайте - я играл с формулой, и это, кажется, довольно определенно в том, как оно применяется к данным. Данные об имени должны быть в столбце `A`, и они должны начинаться с` A1`. Я смог вставить одну строку над «А1» после того, как форматирование было применено, но вторая помешала раскраске. Я буду продолжать играть и посмотреть, что я могу выяснить. Jared Harley 14 лет назад 0
Извиняюсь. Я думал, что точно следовал вашим шагам. Я вернулся и обнаружил, что заработал $ 1 $: $ A $ 76 - весь диапазон. С тех пор я поменял его на твой, но он довольно спорадичен в своем бандинге. Я пробую разные вещи, но любая идея, почему это будет спорадически с благодарностью, ценится. RocketGoal 14 лет назад 0
Я обновил формулу с помощью некоторой логики «И», чтобы Excel добавлял новые строки по мере их добавления. Все еще пытаюсь сделать код менее странным ... Jared Harley 14 лет назад 0
Просто не происходит. Следуйте инструкциям и получите эту странную полосу. Он начинается правильно для трех групп, а затем начинает слишком полосу на полпути к четвертой группе. И после этого начинается на вершине следующей группы, но только для половины, а затем прекращает объединяться. RocketGoal 14 лет назад 0
Хорошо. После прочтения, похоже, мой первый ответ был чрезвычайно проблематичным (как мы оба выяснили). Проверьте новый ответ, который работает до сих пор со всеми моими испытаниями. Jared Harley 14 лет назад 0
Работает как шарм. Большое спасибо за вашу помощь и настойчивость. Отличный сайт, на который вы ссылались. RocketGoal 14 лет назад 0
2
Gavin

Предполагая, что ваши данные начинаются со строки 2 (то есть строка 1 является заголовком), а столбец A является заголовком «группы данных» (ваш Боб и Дерекс выше), попробуйте следующее:

Установите дополнительный столбец (который вы будете скрывать позже) и поместите эту формулу в строку 2:

=IF(I1=1,(IF(A2=A1,1,0)),(IF(A2=A1,0,1))) 

Перетащите эту формулу до конца своего набора данных. Теперь у вас должен быть набор значений 1 и 0, которые соответствуют вашим блокам данных. (1 для первого блока, 0 для второго блока, 1 для третьего блока и т. Д.)

Теперь настройте простой условный формат для строки I:

  • Формула: =$I5=1
  • Формат: установите формат на серый
  • Относится к =$A$2:$G$100

Пока вы сохраняете строку Iвне выбора автофильтра, он будет работать даже динамически при сортировке данных (используя автофильтр).

1
Greg G

Если вы хотите сделать это без вспомогательного столбца, вы можете использовать это как формулу CF:

=MOD(SUMPRODUCT(($A$2:$A2<>$A$1:$A1)*1),2)=0 

Просто выберите форматирование, и все готово.

Я не понимаю этого, но это было именно то, что я хотел, насколько я могу судить. jmoreno 8 лет назад 0
0
MattPage

Более простой для понимания способ сделать это - заполнить вспомогательный столбец, поместив формулу

= ЕСЛИ (А3 = А2, В2, АБС (В2-1))

в вспомогательном столбце (столбец B). Вы должны просто поставить ноль в B2 (я предполагаю, что у вас есть строка заголовка), вставить это в B3, а затем перетащите его вниз.

Затем вы используете формулу условного форматирования:

= $ В2 = 1

Похожие вопросы