Функция СМЕЩ в Excel: как работает и где применяется

Иван Корнев·10.04.2026·4 мин

Функция СМЕЩ (в английской версии OFFSET) возвращает ссылку на диапазон ячеек, сдвинутый от заданной начальной точки на определенное количество строк и столбцов. Она не выдает сами значения, а указывает адрес, который затем используется другими функциями (СУММ, СРЗНАЧ и др.) для вычислений. Это основной инструмент для создания «живых» таблиц, которые автоматически подстраиваются под добавление новых данных.

Синтаксис и аргументы функции

Формула записывается следующим образом: =СМЕЩ(ссылка; строки; столбцы; [высота]; [ширина])

Разберем каждый аргумент подробно:

АргументОбязательностьОписание
ссылкаДаИсходная ячейка или диапазон, от которого производится отсчет.
строкиДаКоличество строк для смещения вверх (отрицательное число) или вниз (положительное).
столбцыДаКоличество столбцов для смещения влево (отрицательное) или вправо (положительное).
высотаНетВысота возвращаемого диапазона в строках. Если опущено, принимается равной высоте исходной ссылки.
ширинаНетШирина возвращаемого диапазона в столбцах. Если опущено, принимается равной ширине исходной ссылки.

Важно помнить: Функция СМЕЩ возвращает ссылку, а не значение. Если ввести =СМЕЩ(A1; 1; 0) просто в ячейку, Excel покажет значение из ячейки A2 только потому, что пытается интерпретировать ссылку как значение. Но истинная сила функции раскрывается при вложении её в другие формулы, например: =СУММ(СМЕЩ(...)).

Практические примеры использования

1. Суммирование последних N записей

Частая задача в учете: нужно посчитать сумму продаж только за последние 5 дней, независимо от того, сколько всего строк в таблице уже заполнено.

Предположим, данные находятся в столбце B, начиная с ячейки B2. Формула будет выглядеть так: =СУММ(СМЕЩ($B$2; СЧЁТЗ($B:$B)-5; 0; 5; 1))

Как это работает:

  1. СЧЁТЗ($B:$B) считает количество заполненных ячеек в столбце.
  2. Вычитаем 5, чтобы найти точку начала отсчета (смещение вниз).
  3. Аргументы 5 и 1 задают размер захватываемого диапазона (5 строк высотой, 1 столбец шириной).
  4. СУММ складывает значения в этом динамическом окне.

2. Создание динамического выпадающего списка

Если у вас есть список товаров, который постоянно пополняется, можно сделать так, чтобы выпадающий список в проверке данных автоматически включал новые позиции без ручной правки диапазона.

  1. Перейдите на вкладку Данные -> Проверка данных.
  2. В поле «Источник» введите формулу: =СМЕЩ($A$2; 0; 0; СЧЁТЗ($A:$A)-1; 1)

Где $A$2 — первая ячейка списка, а -1 учитывает заголовок таблицы. Теперь при дописывании нового товара внизу столбца А, он автоматически появится в списке выбора.

Совет по производительности: Функция СМЕЩ является «летучей» (volatile). Это значит, что она пересчитывается при любом изменении на листе, даже если оно не касается её диапазона. В очень больших файлах (тысячи строк и сложные формулы) обилие функций СМЕЩ может замедлить работу. В таких случаях рассмотрите альтернативу через функцию ИНДЕКС.

3. Динамические заголовки отчетов

Можно использовать СМЕЩ для автоматического подтягивания актуальных данных в шапку отчета. Например, чтобы всегда отображать дату последней записи: =СМЕЩ($A$1; СЧЁТЗ($A:$A)-1; 0) Эта формула вернет значение из последней заполненной ячейки столбца А.

Частые ошибки при работе с СМЕЩ

  • #ССЫЛКА! (#REF!): Возникает, если смещение выводит диапазон за пределы листа. Например, попытка сдвинуться на 5 строк вверх от первой строки (A1 со смещением -5).
  • Неверный размер диапазона: Если аргументы «высота» или «ширина» указаны отрицательными числами или нулем, функция вернет ошибку.
  • Игнорирование абсолютных ссылок: При копировании формулы с относительной ссылкой на базовую ячейку (например, A1 вместо $A$1) точка отсчета «поедет», и результаты станут неверными. Всегда фиксируйте стартовую ячейку знаками доллара.

FAQ

В чем разница между СМЕЩ и ИНДЕКС? Обе функции могут возвращать ссылку на ячейку. Однако СМЕЩ более гибкая для задания размеров возвращаемого массива (через высоту и ширину), но она медленнее из-за постоянного пересчета. ИНДЕКС работает быстрее и стабильнее в больших массивах, но синтаксически чуть сложнее для создания динамических диапазонов переменной ширины.

Можно ли использовать СМЕЩ в условном форматировании? Да, это один из лучших способов выделить цветом, например, всю строку с последними внесенными данными или подсветить ячейки относительно активной даты.

Почему формула возвращает ошибку #ЗНАЧ! Проверьте аргументы «строки» и «столбцы». Они должны быть числами. Часто ошибка возникает, если в качестве аргумента передана текстовая строка или результат другой функции, которая вернула текст вместо числа.