В условном форматировании я хочу определить, является ли строка над текущей ячейкой скрытой или видимой. Как я могу определить, видна ли клетка или нет?
Единственный взлом, который я могу придумать:
- Создайте столбец со всеми
1
значениями. - Используйте формулу наподобие
subtotal(109,c2:c2)=1
(т.е. просто в ячейке, которую я хочу проверить), чтобы определить, является ли она видимой или скрытой.
Есть ли способ сделать это без временного столбца, который должен оставаться видимым, когда отображается строка?
Чтобы избежать проблемы XY , я хочу иметь столбец, который является категорией для строки. Первая строка VISIBLE с определенной категорией должна иметь другой стиль; более поздние строки с той же категорией немного отличаются. В ASCII:
cat. item
+AAA+ aaaa
(AAA) bbbb
(AAA) cccc
+BBB+ dddd
(BBB) eeee
(BBB) ffff
Если мой фильтр скрывает строку с dddd
тогда, я хочу, чтобы у строки eeee
был +BBB+
стиль.
Этот поток немного старый, но на случай, если он кому-нибудь пригодится, вот способ условно форматировать дубликаты в отфильтрованной таблице без использования VBA.
Сделайте еще один столбец и вставьте в него следующую формулу
=IF(SUBTOTAL(103, [@ColumnWithOnlyOnesInIt])=1, [@ColumnYouWantToCheckForDuplicates], "")
Поместите обычное дублирующее условное форматирование в столбец, который вы хотите проверить.
Формула из шага 2 скопирует значение из столбца, который вы хотите проверить, но только когда строка видна. Таким образом, когда проверяются дубликаты, вы получаете только те, которые применимы к отфильтрованной таблице. Я думаю, что это может не сработать для нулей (или "" или что-то еще, что вы выбрали в качестве значения "else" в вашем операторе if). Поэтому может быть возможным получить нулевое значение строки в вашем списке, которое выделено как дубликат. Кроме этого мне повезло с этим методом.
источник
Я бы предложил использовать следующую формулу (в диапазоне, например, $ A: $ A):
Что это делает:
Если оба
A1=OFFSET(A1;-1;0)
SUBTOTAL(103;OFFSET(A1;-1;0))=1
тогда результат равен True, поэтому ячейка является дубликатом видимой ячейки справа вверху и должна быть, например, серой.
Sidenote: использование
OFFSET
функции делает условное форматирование не прерываться при вставке дополнительной строки.источник
Вот решение, которое я только что использовал:
Я создал новый столбец C (и спрятал оригинал (столбец B)). В новом столбце я использовал формулу = SUBTOTAL (9, B2), которая в сумме соответствует ОДНОЙ строке, которая вас интересует. Затем я скопировал все строки!
Теперь при фильтрации используется расширенный фильтр. Все значения равны нулю в этом столбце, если они не видны (не отфильтрованы).
Тогда normal = SUMIF () работает как чемпион. Только не используйте случайно скрытый столбец для суммирования. Сумма по столбцу SUBTOTAL (), который вы только что создали.
источник