Как указать диапазон переменных Excel?
Я хотел бы иметь возможность динамически указывать диапазон в Excel на основе переменных строки/столбца.
предположим, у меня есть файл с содержимым, которое выглядит примерно так:
A B C D E 1 10 11 12 13 14 2 51 52 53 54 55
Если бы я хотел суммировать элементы в строке 1, столбцы 2-4 (т. е. 11 + 12 + 13), Как бы я это уточнил?
Если бы я делал это вручную, я бы типа:
=SUM(B1:D1)
...но как я могу программно генерировать это определение диапазона на лету, зная только нужную строку (1) и столбца (2-4)?
=SUM(????)
заранее спасибо за вашу помощь!
(Я использую Microsoft Excel 2011 для Mac, поэтому решения Excel VBA / macro-based не будут работать для меня.)
3 ответов
у меня была такая же потребность--похоже на OFFSET
функция позволит вам сделать это.
Итак, для вышесказанного:
=SUM(OFFSET(A1,0,1,1,3))
чтобы сломать его:
OFFSET(reference cell,
row offset from ref cell to start the range,
col offset to start the range, height of range you want,
width of range you want)
вы можете сделать смещения нулевыми, если хотите, или +
для ref вниз,-
исх до
Это зависит от того, как" известные " номера строк и столбцов ссылаются
Например, если они являются значениями в ячейках на листе:
A B
9 Row 1
10 ColStart 1
11 ColEnd 4
использовать INDRECT
функция для построения ссылки на диапазон
=SUM(INDIRECT("R"&B9&"C"&B10&":R"&B9&"C"&B11,FALSE))
Не уверен, что вы хотите.
Ты это серьезно?
dim parent_range as range
dim child_range as range
set parent_range = me.range("a1:e2")
set child_range = range(parent_range.rows(1).cells(2), parent_range.rows(1).cells(4))
msgbox "=sum(" & child_range.address(false, false, xla1) & ")"
или вы хотите, чтобы это было формулой?
=SUM(INDEX($A:$E,1,2):INDEX($A:$E,1,4))