Вы упомянули «другую формулу», поэтому я предполагаю, что вы хотите сделать это в формуле рабочего листа (а не в функции VBA или подпрограмме). Давайте начнем с малого. Excel поддерживает ссылки в стиле A1 (An) и ссылки в стиле R1C1 (R n C n). Все примеры, которые вы использовали (D3 , D15 , E3 , J7 и т.д.), Являются ссылками в стиле A1 - буква столбца (или, возможно, последовательность букв; за столбцами X , Y и Z следуют AA , AB , AC и т.д.), За которым следует номер строки.
Ссылки R1C1-стиль почти очевидны - они построены из номера строки и номер столбца, разделенные буквы R и C Таким образом, E3 эквивалентно R3C5 (строка 3, столбец 5), а J7 эквивалентно R7C10 .
Хотелось бы, чтобы вы сказали немного больше о том, что вы уже делали, чтобы я знал, что мне не нужно вам объяснять. Я надеюсь, вы знаете, что в формуле INDIRECT("E3") более или менее эквивалентен E3 , за исключением того, что при вызове INDIRECT можно вычислить строковый параметр. Возможно, вы этого не знаете
INDIRECT("R3C5", FALSE)
аналогично эквивалентно E3 .
INDIRECT дает вам только ссылку на одну ячейку.
Чтобы перейти от этого к диапазону, мы используем функцию OFFSET . Общий формат
OFFSET( base_cell_reference , row_offset , column_offset , высота (строки) , ширина (столбцы) )
Итак, чтобы получить E3:J7 , мы делаем
OFFSET(INDIRECT("R" & 3 & "C" & 5, FALSE), 0, 0, 7-3+1, 10-5+1)
где все числа могут быть формулами (например, ссылки на другие ячейки).
(Примечание: +1 означают стандартную «проблему ограждения» - диапазон, начинающийся со строки 3 и включающий строку 7, имеет высоту 5 строк, а не 4.) Вышеупомянутое выражение может использоваться везде, где может использоваться простой диапазон; например, в качестве параметра к SUM .
Еще одним подходом к решению вашей проблемы может быть использование именованных ячеек. Если вы дадите ячейке E3 имя Fred , а ячейке J7 - Barney , вы можете сказать SUM(Fred:Barney) .