РЕШЕННОЕ РЕДАКТИРОВАНИЕ
Спасибо за помощь. Решение здесь .
ОРИГИНАЛЬНЫЙ ПОЧТА
Я создал страницу Google, чтобы описать проблему, с которой я столкнулся, здесь (https://docs.google.com/spreadsheets/d/1yK6ZAX8BFnEqiuQO9HIxuY0l62ewDDccj-8EN1r2i2w/edit?usp=sharing).
Я также опишу словами ниже проблему, с которой я столкнулся, наряду с решениями, которые я попробовал.
![link to the image of worksheet](https://i.stack.imgur.com/yMids.png)
Данные столбца A являются случайными однозначными (0-9). Мне бы хотелось, чтобы в столбце B отображалось самое последнее четное число из столбца A, но только до определенной строки. Эта конкретная строка является строкой, соответствующей строке ячейки в столбце B. Другими словами, в ячейке B7 я хочу найти последнее введенное четное число столбца A, в частности, только в диапазоне A2: A7 (A1 содержит заголовок столбца).
На самом деле это довольно простая формула, и я могу получить желаемые результаты, просто проверив, является ли значение в ячейке в столбце A четным, а затем вернув значение этой ячейки, если оно есть, или вывод этой ячейки. выше, если это не так. Таким образом, формула будет выглядеть примерно так: =IF(ISEVEN(A7),A7,B6)
Однако моя проблема заключается в том, что длина данных в столбце A будет увеличиваться по мере ввода большего количества данных, и мое текущее решение использования маркера заполнения для копирования формулы в новые ячейки является не элегантным и отнимает много времени. Поэтому мое желаемое решение - использовать формулу массива, введенную в первую ячейку столбца B (B2), которая может возвращать то же значение, что и другая формула. Формула, которую я пытался ввести, чтобы выполнить это, была следующей: =ARRAYFORMULA(IF(ISEVEN(A2:A),A2:A,INDIRECT(ADDRESS(ROW(A2:A)-1,2))))
Однако, как научила меня некоторая моя предыдущая работа с массивами, не все формулы повторяются, как ожидалось, в массиве. Кажется, что формула может возвращать правильные выходные данные в уже четных строках, но она не может вернуть ожидаемое последнее введенное четное число для всех остальных строк. Похоже, что формула не может правильно интерпретировать аргумент value_if_false
формулы IF
.
Я немного новичок в написании сценариев, поэтому я все еще пытаюсь учиться, но я также пытался бездельничать с пользовательскими функциями. Я все еще не могу понять, когда речь заходит о кодировании, поэтому я так снисходительно отношусь к встроенным формулам Google Sheets, но боюсь, что, возможно, я достиг предела того, что могут делать формулы Sheets.
Я открыт для опробования новых подходов, но мое единственное реальное ограничение в том, что я действительно хотел бы, чтобы это было решение в одно касание (или даже лучше, без касания), надеюсь, что оно не слишком далеко выходит за рамки этого вопрос. Любая помощь будет высоко ценится.
EDIT
После этой проблемы я вернулся и попытался использовать формулу OFFSET
, надеясь, что она будет хорошо работать с формулой массива. Увы, я не смог, но подумал, что должен хотя бы опубликовать свой прогресс здесь для справки.
Попытка со смещением
Все еще работаем над этим!