Возврат значений из строки выше в текущую строку
Я пытаюсь сделать простую вещь: мне просто нужно установить для некоторых ячеек значения, которые находятся в предыдущих строках. я пытался =A(Row()-1)
Но это не работает.
5 ответов
Чтобы решить эту проблему в Excel, обычно я просто набираю буквальный номер строки в ячейке выше, например, если я набираю в ячейке A7
Я бы использовал формулу =A6
, Затем, если бы я скопировал эту формулу в другие ячейки, они также использовали бы строку предыдущей ячейки.
Другой вариант заключается в использовании Indirect()
, который разрешает буквальное утверждение внутри, чтобы быть формулой. Вы можете использовать что-то вроде:
=INDIRECT("A" & ROW() - 1)
Приведенная выше формула будет преобразована в значение ячейки в столбце A
и строка, которая на один меньше, чем ячейка, которая содержит формулу.
Эта формула не требует ссылки на строку ("A", "B" и т. Д.). Возвращает значение ячейки на одну строку выше в том же столбце.
=INDIRECT(ADDRESS(ROW()-1,COLUMN()))
Вы также можете использовать =OFFSET([@column];-1;0)
если вы находитесь в именованной таблице.
Я последовал за BEN и "Спасибо и Лот за ответ", поэтому я использовал его идею, чтобы получить свое решение, я публикую то же самое, следовательно, если у кого-то еще есть подобное требование, то вы также можете использовать мое решение, Моё требование было чем-то вроде Я хочу получить сумму всех данных от первой строки до последней строки, и я генерировал электронную таблицу программно, поэтому не нужно и не могу жестко кодировать имена строк в сумме, поскольку данные всегда динамические и количество строк никогда не бывает постоянным. Моя формула была что-то вроде следующего.
=SUM(B1:INDIRECT("B"&ROW()-4))
Для меня проще - перейти на R1C1
запись и просто использовать R[-1]C1
и переключитесь обратно, когда закончите.