Если в ячейке G1 имеется формула для суммирования значений в столбце D ( =СУММ(D2:D10) ), то при вставке нового столбца между А и D формула будет автоматически изменена на =СУММ(E2:E10) , что безусловно правильно и удобно. Однако, иногда требуется иметь формулу, которая всегда ссылается на один и тот же столбец вне зависимости от модификаций листа, например, при вставке значений в четвертый столбец (т.е. D ) программой VBA (макросом).
Предположим, что макрос вставляет данные в столбец D листа EXCEL. Если в ячейке G 1 имеется формула для суммирования значений в столбце D (например, =СУММ(D2:D10) ), то при вставке нового столбца между А и D формула будет автоматически изменена на =СУММ(E2:E10) , что приведет к неправильному результату при следующем запуске макроса (данные по-прежнему будут вставлены в столбец D , а формула будет суммировать данный из столбца Е ).
Одним из вариантов решения этой задачи является использование функции СМЕЩ() : =СУММ(СМЕЩ(A2:A10;0;3))
Теперь не смотря удаление или вставку столбцов между A и D , формула будет продолжать ссылаться на один и тот же столбец D . Только, конечно, нельзя удалять столбец А и допустить, чтобы столбец, в котором находится формула сам стал столбцом D – возникнет циклическая ссылка.
Другим вариантом является использование функции ДВССЫЛ() : =СУММ(ДВССЫЛ("D2:D10"))
© Copyright 2013 - 2024 Excel2.ru. All Rights Reserved
Комментарии