2016-07-23 6 views
1

У меня есть ячейки $A$4:$J$13, определенные как myRange. Я хотел бы иметь возможность поместить сумму значений в столбец H в пределах myRange (т. Е. $H$4:$$13) в ячейку $H$3. Я знаю, что =SUM(OFFSET(myRange,0,7,10,1)) будет делать трюк, пока .... Пользователь вставляет строки (строки) или столбцы (столбцы) в пределах myRange. 7 столбцов и 10 строк в глубину не обновляются. Есть ли способ динамически определить границы ячеек, которые я хочу суммировать?Динамические диапазоны в Excel

+1

Что бы вы хотели, если, например, пользователь вставляет новый столбец перед столбцом H? Какую ценность вы хотите увидеть в H3 в этом случае? – udden2903

+0

Оператор пересечения - пробел - будет обрабатывать вставки строк, например, '= SUM (myRange H: H)'. Предполагая, что формула будет корректироваться влево или вправо при вставке столбцов, это также будет работать для этого. Например, после вставки столбца формула теперь будет '= SUM (myRange I: I)'. –

ответ

0

Используйте один из следующих в Н3,

=SUM(INDEX(myRange, 0, 8)) 
'since you are originating the named range in column A and want the formula in H3 then the 
' following will also do and should adjust for inserted columns and rows within myRange. 
=SUM(INDEX(myRange, 0, COLUMN())) 
=SUM(INDEX(myRange, 0, COLUMN(H:H))) 

функции volatile¹ по возможности избегать.


¹ Летучие функции пересчитывать всегда, когда что-либо в целых изменениях рабочей книги, а не только тогда, когда что-то, что влияет на их изменения конечных результатов. Примерами летучих являются: INDIRECT, OFFSET, TODAY, NOW, RAND и RANDBETWEEN. Некоторые подфункции функций рабочего стола CELL и INFO также сделают их неустойчивыми.

Смежные вопросы