Ячейки условного форматирования в столбце до последнего с введенным текстом включительно

Я использую Google Таблицы и пытаюсь написать собственное правило форматирования, которое должно быть простым. Я пытаюсь выяснить, как условно отформатировать все ячейки в столбце, ВКЛЮЧАЯ И ВЫШЕ (но не ниже) ячейку, которая соответствует моему условию.

Я нашел много вещей, которые будут форматировать весь столбец, но это не то, что я ищу.

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

Это для моей таблицы бюджета, где каждая строка представляет собой запись с определенной даты. У меня есть пустая колонка «Соглашение», за исключением тех случаев, когда я ввожу дату согласования бюджета. Я хочу, чтобы эта ячейка и все пустые ячейки над ней были окрашены в зеленый цвет, что сразу означало: «все до этого момента в порядке / было проверено». Затем, по прошествии времени, и я ввожу другую дату несколькими строками ниже, я хочу, чтобы она увеличила цветную заливку до этой точки.

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

Интересно, возможно ли это вообще ...

Пример Google Таблиц


person Topstitch    schedule 20.04.2017    source источник


Ответы (1)


Если вы создаете правило условного форматирования для столбца A с помощью настраиваемой формулы, вы можете использовать эту формулу:

=COUNTIF(ROW(),"<="&LARGE(ArrayFormula(IF(ISBLANK(A1:A100),"TRUE",ROW(A1:A100))),1))

Однако чем больше диапазоны вы используете, тем медленнее будет.

person Jacob Edmond    schedule 20.04.2017
comment
WHEEEE! Это сработало! И в моем примере электронной таблицы, и в моей реальной таблице. Я пытаюсь разобраться в этом, и это немного загадка. - person Topstitch; 20.04.2017
comment
Потрясающие. По сути, он циклически перебирает каждую ячейку в столбце и проверяет, является ли этот номер строки ‹= номером последней строки со значением в нем. Использование ISBLANK () проверяет каждую ячейку и возвращает массив значений ИСТИНА или ЛОЖЬ. Оператор IF преобразует любые значения FALSE (непустые ячейки) в число ROW. Используя LARGE, мы можем получить самый большой номер строки из этого массива, который является последней непустой ячейкой. - person Jacob Edmond; 20.04.2017
comment
Ооо, хорошо, это становится более понятным. Я просмотрел все эти формулы, но у меня возникли проблемы с их составлением по кусочкам. ArrayFormula была сложной вещью, из документации я не был уверен, что она вернула, но из вашего объяснения я вижу это сейчас! Я бы не догадался, что LARGE может сравнивать номера строк со строкой TRUE. Спасибо!!! - person Topstitch; 20.04.2017