7

У меня есть таблица с большим количеством данных. Данные сгруппированы так, что все строки с определенным значением в одном столбце (скажем, C) сгруппированы вместе. Я хочу выделить "границы" - т.е. первую строку, где значение в столбце C отличается от его непосредственного предшественника.

Например:

   A       B      C
1 Type   Val    Category
2 Cat    1.77     1
3 Newt   1.937    1
4 Toad   1.03     3
5 Newt   0.78     3
6 Dog    0.78     3
7 Worm   0.78     9

В этом примере я хочу, чтобы Excel автоматически находил и выделял строки 2, 4 и 7, поскольку именно в них значение в C изменяется по сравнению с предыдущей строкой.

Я попытался использовать правило условного форматирования с формулой $C1<>$C2 - надеясь, что Excel будет увеличивать количество строк, находя и выделяя строки перехода, - но это не сработало. Есть идеи, как получить результаты, которые я ищу?

4 ответа4

6

То, что вы предлагаете, должно работать в сочетании с правильным диапазоном « относится к ». Например, если ваши данные находятся в A1:C7 (с заголовками в A1:C1), тогда:

  • выберите диапазон без заголовков, то есть A2:C7
  • использовать эту формулу (с предшествующим =), т.е.

    = $ С1 <> $ С2

  • применить необходимый формат

Это должно отформатировать строки 2, 4 и 7, как и ожидалось

... но я обращаю внимание на ваши комментарии об удалении строк, так что эта версия будет бороться с этим, а не "жестко кодировать" букву столбца

=INDEX($C:$C,ROW())<>INDEX($C:$C,ROW()-1)

1

Ага! Нашел это. Эта формула добивается цели в условном форматировании:

 =INDIRECT("C"&(ROW()-1))<>INDIRECT("C"&(ROW()))

Если есть другие или лучшие способы, мне было бы интересно услышать, но я решил свою непосредственную проблему с этим. Благодарю.

0

Вы можете использовать следующее для вызова условного формата.

Скриншот

0

Я хотел что-то, что переживет копирование и вставка, перемещение и т.д. Вот что я придумал:

=INDIRECT(ADDRESS(ROW(), COLUMN()))=INDIRECT(ADDRESS(ROW()-1, COLUMN()))

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