Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис формулы и использование функции СМЕЩ в Microsoft Excel.
Описание
Данная функция возвращает ссылку на диапазон, отстоящий от ячейки или диапазона ячеек на заданное число строк и столбцов. Возвращаемая ссылка может быть отдельной ячейкой или диапазоном ячеек. Можно задавать количество возвращаемых строк и столбцов.
Синтаксис
СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;[высота];[ширина])
Аргументы функции СМЕЩ описаны ниже.
-
Ссылка — обязательный аргумент. Ссылка, от которой вычисляется смещение. Аргумент «ссылка» должен быть ссылкой на ячейку или на диапазон смежных ячеек, в противном случае функция СМЕЩ возвращает значение ошибки #ЗНАЧ!.
-
Смещ_по_строкам Обязательный. Количество строк, которые требуется отсчитать вверх или вниз, чтобы левая верхняя ячейка результата ссылалась на нужную ячейку. Например, если в качестве значения аргумента «смещ_по_строкам» задано число 5, это означает, что левая верхняя ячейка возвращаемой ссылки должна быть на пять строк ниже, чем указано в аргументе «ссылка». Значение аргумента «смещ_по_строкам» может быть как положительным (для ячеек ниже начальной ссылки), так и отрицательным (выше начальной ссылки).
-
Смещ_по_столбцам Обязательный. Количество столбцов, которые требуется отсчитать влево или вправо, чтобы левая верхняя ячейка результата ссылалась на нужную ячейку. Например, если в качестве значения аргумента «смещ_по_столбцам» задано число 5, это означает, что левая верхняя ячейка возвращаемой ссылки должна быть на пять столбцов правее, чем указано в аргументе «ссылка». Значение «смещ_по_столбцам» может быть как положительным (для ячеек справа от начальной ссылки), так и отрицательным (слева от начальной ссылки).
-
Высота Необязательный. Высота (число строк) возвращаемой ссылки. Значение аргумента «высота» должно быть положительным числом.
-
Ширина Необязательный. Ширина (число столбцов) возвращаемой ссылки. Значение аргумента «ширина» должно быть положительным числом.
Примечания
-
Если аргументы «смещ_по_строкам» и «смещ_по_столбцам» выводят ссылку за границы рабочего листа, функция СМЕЩ возвращает значение ошибки #ССЫЛ!.
-
Если высота или ширина опущена, то предполагается, что используется та же высота или ширина, что и в аргументе «ссылка».
-
Функция СМЕЩ фактически не передвигает никаких ячеек и не меняет выделения; она только возвращает ссылку. Функция СМЕЩ может использоваться с любой функцией, в которой ожидается аргумент типа «ссылка». Например, с помощью формулы СУММ(СМЕЩ(C2;1;2;3;1)) вычисляется суммарное значение диапазона, состоящего из трех строк и одного столбца и расположенного одной строкой ниже и двумя столбцами правее ячейки C2.
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Формула |
Описание |
Результат |
---|---|---|
=СМЕЩ(D3;3;-2;1;1) |
Отображает значение ячейки B6 (4) |
4 |
=СУММ(СМЕЩ(D3:F5;3;-2;3;3)) |
Суммирует диапазон B6:D8. |
34 |
=СМЕЩ(D3;-3;-3) |
Возвращает ошибку, так как ссылка указывает на несуществующий диапазон листа. |
#ССЫЛ! |
Данные |
Данные |
|
4 |
10 |
|
8 |
3 |
|
3 |
6 |
Нужна дополнительная помощь?
Функция СМЕЩ в Excel предназначена для создания ссылки на определенную ячейку или диапазон ячеек, находящихся на определенном расстоянии от указанной ячейки, измеряемом в заданном в качестве аргумента количестве столбцов и строк, и возвращает соответствующую ссылку. Синтаксис данной функции позволяет указывать требуемое количество возвращаемых столбцов и строк.
Примеры использования функции СМЕЩ в Excel
Пример 1. В таблицу Excel на протяжении экзамена записываются оценки, которые получили уже сдавшие предмет экзамены. Реализовать алгоритм динамического расчета среднего значения балла за экзамен для группы студентов.
Вид исходной таблицы:
Формула для расчета:
Функция ЕСЛИОШИБКА используется для вывода сообщения об отсутствии данных для расчета. Функция СРЗНАЧ принимает диапазон ячеек, возвращаемых функцией СМЕЩ со следующими параметрами:
- B3 – ссылка на начальную ячейку (точку отсчета);
- 0 – нулевое смещение по строкам;
- 0 – нулевое смещение по столбцам;
- СЧЁТ(B3:B14) – количество ячеек из диапазона B3:B14, которые содержат ненулевые значения, характеризующее высоту диапазона возвращаемых ячеек;
- 1 – ширина диапазона возвращаемых значений (в 1 столбец).
Результаты расчета по мере заполнения данными:
Примечания к примеру:
- Данные должны вноситься последовательно в каждую новую строку, иначе расчет выполняться не будет.
- Пример решения приведен в целях демонстрации использования функции СМЕЩ, решение задачи может быть реализовано более простым и надежным способом.
Динамическое обновление итоговых данных таблицы в Excel
Пример 2. В таблице Excel внесены данные о количестве продаж товаров за все время работы компании. Для еженедельного учета требуется выводить данные о продажах (общая сумма проданных товаров) за прошедшие 7 дней. Реализовать динамическое обновление данных.
Вид исходной таблицы данных:
Для расчета суммы проданных единиц товаров за последние 7 дней используем формулу:
Описание аргументов функции СМЕЩ:
- B3 – ссылка на ячейку, относительно которой выполняется отсчет;
- СЧЁТЗ(B3:B1000)-7 – функция, подсчитывающая количество непустых ячеек в диапазоне B3:B1000 (ячейка B1000 взята условно с запасом для последующих записей). От итогового результат вычитается число 7, поскольку по условию необходимо получить данные за неделю. В целом выражение определяет начальную позицию массива возвращаемых ячеек по вертикали относительно точки отсчета B3;
- 0 – нулевое смещение по столбцам (искомый диапазон ячеек находится в том же столбце, что и точка отсчета B3);
- 7 – высота диапазона возвращаемых ячеек (7 ячеек);
- 1 – ширина диапазона возвращаемых ячеек.
Полученный результат в результате расчетов:
При добавлении новых данных пересчет выполняется автоматически.
Выборка значений из таблицы с помощью функции СМЕЩ в Excel
Пример 3. В таблице содержатся данные о средних значениях курсов валют по месяцам года. Реализовать алгоритм вывода значений курсов в строку под таблицей по выбранному номеру месяца.
Исходная таблица данных имеет следующий вид:
Используем элемент управления «Счетчик» для выбора номера месяца. Для этого добавим пункт ленты меню «Разработчик» нажатием правой кнопкой мыши по любому существующему ее элементу:
Выберем пункт настройка ленты и в открывшемся окне установим флажок напротив пункта «Разработчик»:
В ленте добавится новый пункт меню. Выберем его, найдем кнопку «Вставить» и нажмем ее:
Выберем элемент «Счетчик», наведем курсор (вместо стрелки форма «+») на требуемую ячейку (в данном случае A16), выделим область для счетчика. После того, как кнопка мыши будет отпущена, появится заготовка счетчика. Нажмем правой кнопкой по счетчику и выберем пункт «Формат объекта»:
Заполним текущее и минимальное значения, а также установим связь с ячейкой, в которой данный счетчик находится:
Нажмем кнопку «ОК» и выделим любую другую ячейку на листе, чтобы завершить процесс настройки счетчика. В итоге получим:
Для вывода курсов доллара и евро соответственно используем функции:
=СМЕЩ(A1;A16;1)
=СМЕЩ(A1;A16;2)
В результате имеем возможность динамического вывода значений в зависимости от выбранного номера месяца. Примеры работы:
Особенности использования функции СМЕЩ в Excel
Функция имеет следующую синтаксическую запись:
=СМЕЩ(ссылка;смещение_по_строкам;смещение_по_столбцам;[высота];[ширина])
Описание аргументов:
- ссылка – обязательный для заполнения аргумент, принимающий данные ссылочного типа, характеризующие ячейку или диапазон ячеек, относительно которых производится отсчет расстояния до возвращаемых ячейки или диапазона ячеек;
- смещение_по_строкам — обязательный аргумент, который принимает данные числового типа, характеризующие расстояние между точкой отсчета (указанной аргументом ссылка) и возвращаемой ячейкой либо диапазоном ячеек. В качестве аргумента может быть передано:
- Положительное целое число. В этом случае смещение относительно точки отсчета выполняется вправо на указанное число ячеек.
- 0 – искомая ячейка или диапазон ячеек находятся в текущей строке.
- Отрицательное число – смещение влево на указанное число, взятое по модулю.
- Дробное число – функция СМЕЩ выполняет усечение дробной части, и использует полученное целое число для определения величины смещения по строкам.
- смещение_по_столбцам – обязательный аргумент, принимающий числовые значения, указывающие на величину смещения по столбцам относительно выбранной точки отсчета. Указанные свойства аргумента смещ_по_строкам верны для смещ_по_столбцам в интерпретации по вертикали. Например:
- Функция =СМЕЩ(A5;0;2) вернет ссылку на ячейку C5;
- Функция =СМЕЩ(A5;2;0) вернет ссылку на ячейку A7;
- Функция СМЕЩ с аргументами (C5;0-2) вернет ссылку на ячейку A5;
- Функция с аргументами (D5;0;-3,8) вернет ссылку на ячейку A5.
- [высота] – необязательный аргумент, принимающий числовое значение, характеризующее число ячеек по высоте (количество строк) возвращаемого диапазона ячеек. Принимает значения из диапазона целых положительных чисел, начиная от 1 (если принимает значение 0, функция СМЕЩ вернет код ошибки #ССЫЛКА!);
- [ширина] – необязательный для заполнения аргумент, принимающий числовое значение, которое характеризует ширину диапазона возвращаемых ячеек. Передаваемое значение должно быть целым положительным числом от 1 до +∞.
Примечания:
- Если функция СМЕЩ ссылается на ячейку или диапазон ячеек, которые находятся вне пределов рабочего листа по условиям, заданным параметрами смещ_по_строкам и смещ_по_столбцам, результатом выполнения данной функции будет код ошибки #ССЫЛКА!.
- Если необязательные аргументы [высота] и [ширина] явно не казаны, они принимают значения, равные высоте и ширине диапазона ячеек, указанного в качестве аргумента ссылка. Если ссылка принимает одну ячейку, данные аргументы по умолчанию принимают значения 1 и 1 соответственно.
- Функция СМЕЩ может быть использована в качестве аргумента любой функции, принимающей данные ссылочного типа.
- Если аргумент ссылка принимает ссылочное значение на единственную ячейку, а необязательные параметры указывают на диапазон (заданы числами, больше 1), тогда функция вернет код ошибки #ЗНАЧ! (пример с ошибкой – результат выполнения функции с аргументами (A5;2;3;3;2)).
Функция СМЕЩ в Excel используется, когда вы хотите получить ссылку, которая смещается на указанное число строк и столбцов от начального положения.
Содержание
- Что возвращает функция
- Синтаксис
- Аргументы функции
- Основной принцип работы функции
- Примеры использования функции СМЕЩ в Excel
- Пример 1. Ищем последнюю заполненную ячейку в колонке
- Пример 2. Создаем динамический выпадающий список с автоматическим дополнением новых данных
- Дополнительная информация
- Альтернативы функции OFFSET (СМЕЩ) в Excel
Что возвращает функция
Возвращает ссылку, которая смещается на заданное количество ячеек.
Синтаксис
=OFFSET(reference, rows, cols, [height], [width]) — английская версия
=СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;[высота];[ширина]) — русская версия
Аргументы функции
- reference (ссылка) — ссылка на ячейку, от которой вы хотите сделать смещение. Это может быть ссылка на ячейку или диапазон смежных ячеек;
- rows (смещ_по_строкам) — количество строк для смещения от изначальной позиции. Если вы укажете положительное число, то произойдет смещение строк ниже, если отрицательное — выше;
- cols (смещ_по_столбцам) — количество колонок для смещения от изначальной позиции. Если вы укажете положительное число, то произойдет смещение колонок вправо, если отрицательное число, то влево;
- [height] ([высота]) — количество строк в указанном диапазоне функции;
- [width] ([ширина]) — количество колонок в указанном диапазоне функции.
Основной принцип работы функции
Функция СМЕЩ, пожалуй, самая запутанная функция в Excel.
Давайте разберем ее работу на простом примере игры в шахматы. В шахматах есть фигура Ладья.
Источник фото: Wikipedia
По правилам игры в шахматы, Ладья может ходить только вправо, влево, вниз и вверх. Фигура не может передвигаться по диагонали.
Теперь давайте представим, что нашей Ладье нужно переместиться не строго влево или вправо, а на ячейку, находящуюся по диагонали от изначальной позиции. Что мы будем делать этом случае?
Правильно, мы будем использовать несколько шагов, для того чтобы привести Ладью к цели. Тот же принцип действует и в функции OFFSET (СМЕЩ).
Рассмотрим перемещение Ладьи на примере в Excel. Мы хотим начать с ячейки D5 (где находится ладья), а затем перейти на две строки вниз и два столбца вправо и извлечь значение из ячейки. Для этого будем использовать формулу:
=OFFSET(стартовая позиция, на сколько строк сместиться вниз, на сколько столбцов сместиться вправо) — английская версия
=СМЕЩ(стартовая позиция, на сколько строк сместиться вниз, на сколько столбцов сместиться вправо) — русская версия
Как вы видите формула по нашему примеру выглядит так:
=OFFSET(D5,2,2) — английская версия
=СМЕЩ(D5;2;2) — русская версия
Функции задан аргумент старта отсчета с ячейки «D5», затем смещение на две строки вниз, после этого на две колонки вправо. Так мы переместимся с ячейки «D5» на ячейку «F7». По завершении перемещения функция выдает значение ячейки «F7».
На примере выше мы рассмотрели функцию OFFSET (СМЕЩ) с тремя аргументами. Но есть еще два необязательных аргумента, которые можно использовать.
Давайте рассмотрим простой пример:
Больше лайфхаков в нашем Telegram Подписаться
Предположим, вы хотите использовать ссылку на ячейку «A1» (желтую), и хотите сослаться на весь диапазон, выделенный синим (C2:E4) в формуле.
Как бы вы это сделали с помощью клавиатуры? Сначала нужно перейти к ячейке C2, а затем выбрать все ячейки в диапазоне «C2:E4».
Теперь посмотрим, как это сделать, используя формулу OFFSET (СМЕЩ):
=OFFSET(A1,1,2,3,3) — английская версия
=СМЕЩ(A1;1;2;3;3) — русская версия
Если вы используете эту формулу в ячейке, она вернет #VALUE! Но если вы перейдете в режим редактирования, выберете формулу и нажмите клавишу «F9», вы увидите, что она возвращает все значения, выделенные синим цветом.
Надеюсь, теперь у вас есть базовое понимание использования функции OFFSET (СМЕЩ) в Excel.
Примеры использования функции СМЕЩ в Excel
Пример 1. Ищем последнюю заполненную ячейку в колонке
Представим, что у вас есть данные в колонке. Для того чтобы отобразить последнее значение в колонке используйте формулу:
=OFFSET(A1,COUNT(A:A)-1,0) — английская версия
=СМЕЩ(A1;СЧЁТ(A:A)-1;0) — русская версия
Эта формула предполагает, что кроме указанных значений нет никаких других, и в этой колонке нет пустых ячеек. Функция работает, подсчитывая общее количество заполненных ячеек и соответствующим образом смещает ячейку «A1».
Например, в указанном примере есть 8 значений, поэтому функция COUNT(A:A) или СЧЁТ(A:A) возвращает 8. Мы смещаем ячейку «A1» на 7, чтобы получить последнее значение.
Пример 2. Создаем динамический выпадающий список с автоматическим дополнением новых данных
Вы можете использовать принцип из Примера 1 для создания динамического выпадающего списка с автоматическим дополнением новых данных. Например, вы создали выпадающий список и хотите, чтобы при добавлении новых строк, значения автоматически подгружались в выпадающий список.
Обратите внимание, что на примере выше, значения автоматически появляются и исчезают из выпадающего списка, как только вы вносите изменения в диапазон ячеек, указанный для выпадающего списка.
Это происходит, поскольку формула, которая используется для создания раскрывающегося списка, является динамической и определяет любое добавление или удаление и соответствующим образом корректирует диапазон.
Как сделать такой список:
- Выберите ячейку, в которой вы хотите создать выпадающий список;
- Нажмите на вкладку Data => Data Tools => Data Validation;
- В диалоговом окне Data Validation, в разделе Настройки выберите List из выпадающего списка;
- В параметрах Source укажите формулу =OFFSET(A1,0,0,COUNT(A:A),1) или =СМЕЩ(A1;0;0;СЧЁТ(A:A);1)
- Нажмите ОК
Как эта формула работает:
Первые три аргумента функции OFFSET (СМЕЩ) A1, 0, 0. Это означает что начальное значение в ячейке «A1», которое не смещается ни по строкам и по колонкам (0, 0);
Четвертый аргумент функции указывает на высоту, и здесь функция COUNT (СЧЁТ) возвращает суммарное количество ячеек в диапазоне данных для выпадающего списка. Главное условие — отсутствие пустых ячеек в диапазоне.
Пятый аргумент функции “1”, обозначает ширину диапазона данных, которая в нашем случае равна одной колонке.
Дополнительная информация
- Функция OFFSET (СМЕЩ) — волатильная функция. Она пересчитывается каждый раз, как только вы открываете Excel файл. Работа этой функции может сильно сказываться на скорости работы всего файла.
- Если значения высоты и ширины не указаны, функция учитывает только первые три аргумента;
- Если значения аргументов rows (смещ_по_строкам) и cols (смещ_по_столбцам) отрицательны, то смещение будет происходить в обратную сторону.
Альтернативы функции OFFSET (СМЕЩ) в Excel
Ввиду некоторых ограничений функции, многие из вас рассматривают альтернативные методы:
- Функция INDEX (ИНДЕКС) также может использоваться для возврата ссылки на ячейку.
- Excel таблицы: если вы используете структурированные ссылки в таблице Excel, вам не нужно беспокоиться о добавлении новых данных и необходимости корректировки формул.
Функция
СМЕЩ(
)
, английский вариант OFFSET(),
возвращает ссылку на диапазон ячеек. Размер диапазона и его положение задается в параметрах этой функции.
Функция
СМЕЩ()
часто используется при создании
динамических диапазонов
. Рассмотрим ее подробнее.
Синтаксис функции СМЕЩ()
СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;высота;ширина), где
ссылка
— ссылка, от которой вычисляется смещение;
смещ_по_строкам
— количество строк, которые требуется отсчитать вверх или вниз, чтобы левая верхняя ячейка результата ссылалась на нужную ячейку (по умолчанию =0);
смещ_по_столбцам
– аналогично
смещ_по_строкам,
только смещение отсчитывается по столбцам (по умолчанию =0);
высота
— число строк возвращаемой ссылки. Значение аргумента «высота» должно быть положительным числом;
ширина
— число столбцов возвращаемой ссылки (по умолчанию =1).
Чтобы было понятнее, потренируемся с функцией
СМЕЩ()
, используя
файл примера
.
Примеры
Дана исходная таблица с тремя столбцами.
Задавая параметры функции
СМЕЩ()
подсчитаем сумму значений в различных диапазонах таблицы. Для визуального наблюдения диапазона, возвращаемого функцией
СМЕЩ()
, использовано
Условное форматирование
. Для удобства изменения параметров функции
СМЕЩ()
использованы
Элементы управления
Счетчик
.
Для подсчета суммы значений в столбце
Продажа1
запишем формулу:
=СУММ(СМЕЩ($B$2;0;0;8;1))
диапазон суммирования —
$B$2:$B$9
(левый верхний угол —
$B$2
, высота
8
, смещения верхнего угла нет). Результат
34
.
Для подсчета суммы значений в столбце
Продажа2
запишем формулу:
=СУММ(СМЕЩ($B$2;0;
1
;8;1))
Теперь левый верхний угол диапазона суммирования смещен от
$B$2
на один столбец вправо, т.е. диапазон суммирования стал
$C$2:$C$9
. Результат
68
.
Для подсчета суммы значений в столбцах
Продажа1
и
Продажа2,
изменим ширину диапазона.
=СУММ(СМЕЩ($B$2;0;0;8;
2
))
указав ширину в 2 ячейки, результат составит
102
, диапазон будет модифицирован в
$В$2:$С$9
.
Добавив смещение по строкам (+1), получим результат
99
:
=СУММ(СМЕЩ($B$2;
1
;0;8;2))
диапазон будет модифицирован в
$В$3:$С$9
.
Функция СМЕЩ() vs ИНДЕКС()
Пусть имеется диапазон с числами (
А2:А10
) Необходимо найти сумму первых 2-х, 3-х, …9 значений. Конечно, можно написать несколько формул
=СУММ(А2:А3)
,
=СУММ(А2:А4)
и т.д. Но, записав формулу ввиде:
=СУММ(СМЕЩ(A2;;;4))
получим универсальное решение, в котором требуется изменять только последний аргумент (если в формуле выше вместо 4 ввести 5, то будет подсчитана сумма первых 5-и значений). Вышеуказанная формула эквивалентна формуле
=СУММ(A2:ИНДЕКС(A2:A10;4))
, которая, в свою очередь, эквивалентна формуле
=СУММ(A2:A5)
Формула
ИНДЕКС(A2:A10;4)
возвращает ссылку на ячейку
А5
.
Функция СМЕЩ в Excel
Добрый день!
Темой этой статьи станет функция СМЕЩ в Excel. Как вы поняли с названия функции, ее основное задание работать с данными которые будут или уже смещены, то есть со своеобразными динамическими диапазонами.
Вы сами понимаете, как это хорошо когда Excel при работе с вашими данными при добавлении новых строк или столбиков изменяет диапазон данных. Особенно это актуально при построениях графиков и диаграмм. Представьте, к примеру, что у вас есть диапазон данных, которые вы используете для построения графиков и диаграммы, но их очень много и диаграмма получается в нечитабельном виде. Как выход из ситуации, вы можете использовать только часть данных, неделя, месяц, квартал и т.п., а после, функция СМЕЩ, нужный вам диапазон данных отправит для построения нового, более понятной диаграммы.
Так вот давайте же познакомимся более близко с этой замечательной возможностью, а также с функцией, которая нам это позволит сделать. Итак, функция СМЕЩ в Excel имеет следующий синтаксис:
=СМЕЩ( ссылка; смещение_по_строкам; смещение_по_столбцам; [высота]; [ширина]), где:
- Ссылка – этот аргумент является обязательным и от него, собственно и начинается вычисление смещения. Данный аргумент должен являться ссылкой на конкретную ячейку или же на определённый диапазон смежных ячеек, иначе функция СМЕЩ вернет вам ошибку #ЗНАЧ!;
- Смещение по строкам – является обязательным аргументом, он означает то количество строчек, которое нужно отсчитать вниз или вверх и необходимо, чтобы верхняя левая ячейка полученного результата ссылалась на нужную вам ячейку. К примеру, для этого аргумента ставим число 5, это означает что верхняя левая ячейка ссылки, которая возвращается, обязана быть ниже на 5 строк, нежели тот, который вы указали в предыдущем аргументе. Данное значение может быть положительным (это когда смещение происходит ниже начальной ссылки) и отрицательным (это когда выше начальной ссылки);
- Смещение по столбцам – также обязательный аргумент и означает то количество столбиков которое необходимо отсчитать вправо или же влево, для того чтобы верхняя левая ячейка результата ссылалась на нужную вам ячейку. К примеру, если этот аргумент указан как число 5, то это означает что верхняя левая ячейка ссылки, которая возвращается, смещается на 5 столбиков вправо от значения аргумента «ссылка». Этот аргумент бывает положительным (для размещения справа от первоначальной ссылки) и отрицательным (при размещении слева);
- Высота – является необязательным аргументом, в котором указывается высота (число строчек) ссылки, которая возвращается. В обязательном порядке этот аргумент обязан быть положительным значением;
- Ширина — является необязательным аргументом, в котором указывается ширина (число столбиков) ссылки, которая возвращается. В обязательном порядке этот аргумент обязан быть положительным.
А теперь рассмотрим несколько стандартных примеров, как используется функция СМЕЩ в Excel: При работе функция СМЕЩ в Excel может иметь некоторые ограничения или нюансы:
- В случае, когда аргументы «смещение_по_строкам» и «смещение_по_столбцам» уводят вашу ссылку за границу вашего рабочего листа, функцией будет возвращена ошибка #ССЫЛ!;
- Когда аргументы «высота» и «ширина» в формуле не указан, то по умолчанию будет использоваться те же параметры высоты и ширины, как и в аргументе «ссылка»;
- Функция СМЕЩ в Excel не меняет выделения и не двигает никакие ячейки, она всего лишь возвращает ссылку и ее можно использовать в совмещении с любой функцией, где используется аргумент типа «ссылка».
При работе с функцией СМЕЩ возникает закономерный вопрос, почему просто указать диапазон, типа A1:D5, нельзя прямо? А дело в том что причин может быть несколько:
- Во-первых, в случае, когда точный адрес нам неизвестен. В большинстве случаев нам известна, только лишь стартовая ячейка и иногда отсутствуют знания фактического адреса. В таких ситуациям использовать функцию СМЕЩ вExcel обязательно;
- Во-вторых, необходимость использования динамических диапазонов. Как вы понимаете указанный диапазон в ссылке A1:D5 и будет возвращать аналогичное значение, то есть он имеет статичную основу, а в некоторых случаях нам нужно динамичный диапазон. Эта необходимость возникает в случаях, когда данные изменяются (добавляются новые строчки и колонки).
Чтобы функция СМЕЩ в Excel стала вам ближе, рассмотрим ее на основе примера, вы ведете учет топлива в АТП, или транспортного отдела другой компании. Вот вам для заказа или учёта ГСМ нужно отслеживать постоянно расход топлива и сопутствующих материалов. Для этих целей мы создаем простую таблицу следующего вида (я использую небольшие числа для наглядности): Итак, какое же будет среднее значение расхода ГСМ, исходя из того что наши данные расхода находятся в диапазоне B2:B23, то нам можно написать формулу =СРЗНАЧ(B2:B23) и всё у нас получилось. Но, увы, нам очень важно, чтобы изменение в формуле происходили ежедневно и автоматически. Для этого нам нужно использовать функцию СМЕЩ всего один раз для вычисления среднего значения расхода топлива за последнюю неделю и вопрос будет закрыт, для этого нам нужна формула следующего вида:
=СРЗНАЧ(СМЕЩ(B2;СЧЁТЗ(B2:B300) -7;0;7;1))
Эта формула позволит нам найти искомое, и давайте познакомимся с ней более близко. Для начала формула СЧЁТЗ(B2:B300) -7 позволит нам посчитать количество значений и от полученного результата отнимает 7 дней (неделю). Это даст нам возможность определится с диапазоном для вычисления с помощью функции СРЗНАЧ, среднего недельного расхода топлива. А формула СМЕЩ смещает с ячейки В2 на начальную ячейку нашей последней недели. Ну вот, я надеюсь, что функция СМЕЩ в Excel стала вам понятнее и ближе. Если статья вам помогла, жду ваш лайк или комментарий, заранее за это благодарен. С другими не менее интересными функциями вы можете ознакомиться в «Справочнике функций».
До новых встреч на страницах сайта.
«Мало кто из нас может вынести бремя богатства. Конечно, чужого
»
Марк Твен
СМЕЩ (функция СМЕЩ)
В этой статье описаны синтаксис формулы и использование функции СМЕЩ в Microsoft Excel.
Данная функция возвращает ссылку на диапазон, отстоящий от ячейки или диапазона ячеек на заданное число строк и столбцов. Возвращаемая ссылка может быть отдельной ячейкой или диапазоном ячеек. Можно задавать количество возвращаемых строк и столбцов.
Аргументы функции СМЕЩ описаны ниже.
Ссылка — обязательный аргумент. Ссылка, от которой вычисляется смещение. Аргумент «ссылка» должен быть ссылкой на ячейку или на диапазон смежных ячеек, в противном случае функция СМЕЩ возвращает значение ошибки #ЗНАЧ!.
Смещ_по_строкам Обязательный. Количество строк, которые требуется отсчитать вверх или вниз, чтобы левая верхняя ячейка результата ссылалась на нужную ячейку. Например, если в качестве значения аргумента «смещ_по_строкам» задано число 5, это означает, что левая верхняя ячейка возвращаемой ссылки должна быть на пять строк ниже, чем указано в аргументе «ссылка». Значение аргумента «смещ_по_строкам» может быть как положительным (для ячеек ниже начальной ссылки), так и отрицательным (выше начальной ссылки).
Смещ_по_столбцам Обязательный. Количество столбцов, которые требуется отсчитать влево или вправо, чтобы левая верхняя ячейка результата ссылалась на нужную ячейку. Например, если в качестве значения аргумента «смещ_по_столбцам» задано число 5, это означает, что левая верхняя ячейка возвращаемой ссылки должна быть на пять столбцов правее, чем указано в аргументе «ссылка». Значение «смещ_по_столбцам» может быть как положительным (для ячеек справа от начальной ссылки), так и отрицательным (слева от начальной ссылки).
Высота Необязательный. Высота (число строк) возвращаемой ссылки. Значение аргумента «высота» должно быть положительным числом.
Ширина Необязательный. Ширина (число столбцов) возвращаемой ссылки. Значение аргумента «ширина» должно быть положительным числом.
Примечания
Если аргументы «смещ_по_строкам» и «смещ_по_столбцам» выводят ссылку за границы рабочего листа, функция СМЕЩ возвращает значение ошибки #ССЫЛ!.
Если высота или ширина опущена, то предполагается, что используется та же высота или ширина, что и в аргументе «ссылка».
Функция СМЕЩ фактически не передвигает никаких ячеек и не меняет выделения; она только возвращает ссылку. Функция СМЕЩ может использоваться с любой функцией, в которой ожидается аргумент типа «ссылка». Например, с помощью формулы СУММ(СМЕЩ(C2;1;2;3;1)) вычисляется суммарное значение диапазона, состоящего из трех строк и одного столбца и расположенного одной строкой ниже и двумя столбцами правее ячейки C2.
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Суммирование по «окну» на листе функцией СМЕЩ (OFFSET)
Бывают ситуации, когда заранее не известно какие именно ячейки на листе нужно подсчитывать. Например, представим, что нам нужно реализовать в Excel небольшой транспортный калькулятор для расчета расстояния проезда от одной заданной станции до другой:
В выпадающих списках в желтых ячейках F3 и F5 пользователь выбирает станции отправления и назначения, а в зеленой ячейке F7 должна подсчитываться сумма всех ячеек в заданном «окне» на листе. Для проезда от Останкино до Ховрино, как на рисунке, например, нужно будет просуммировать все ячейки в обведенном зеленым пунктиром диапазоне.
Как считать суммму — понятно, а вот как определить диапазон ячеек, которые нужно просуммировать? Ведь при выборе станций он будет постоянно трансформироваться?
В подобной ситуации может помочь функция СМЕЩ (OFFSET) , способная выдать ссылку на «плавающее окно» — диапазон заданного размера, расположенный в определенном месте листа. Синтаксис у функции следующий:
=СМЕЩ( Точка_отсчета ; Сдвиг_вниз ; Свиг_вправо ; Высота ; Ширина )
Эта функция на выходе дает ссылку на диапазон, сдвинутый относительно некоей стартовой ячейки (Точка_отсчета) на определенное количество строк вниз и столбцов вправо. Причем размер диапазона («окна») тоже может задаваться параметрами Высота и Ширина.
В нашем случае, если взять за точку отсчета ячейку А1, то:
- Точка отсчета = А1
- Сдвиг_вниз = 4
- Свиг_вправо = 2
- Высота = 4
- Ширина = 1
Чтобы рассчитать необходимые для СМЕЩ аргументы, давайте сначала применим функцию ПОИСКПОЗ (MATCH) , которую мы уже разбирали, для вычисления позиций станций отправления и назначения:
И, наконец, используем функцию СМЕЩ, чтобы получить ссылку на нужное «окно» на листе и просуммировать все ячейки из него:
Вот и все, задача решена 🙂
В отличие от большинства остальных функций Excel, СМЕЩ является волатильной (volatile) или, как еще говорят, «летучей» функцией. Обычные функции пересчитываются только в том случае, если меняются ячейки с их аргументами. Волатильные же пересчитываются каждый раз при изменении любой ячейки. Само-собой, это отрицательно сказывается на быстродействии. В больших тяжелых таблицах разница по скорости работы книги может быть очень ощутимой (в разы). Для некоторых случаев быстрее оказывается заменить медленную СМЕЩ на неволатильную ИНДЕКС или другие аналоги.
Функция СМЕЩ в Excel, которая может заменить СУММ и сэкономить время
Программу Excel любят за возможность быстро и автоматически считать сложные формулы. Достаточно освоить элементарные команды, чтобы экономить значительное количество времени.
Функция СМЕЩ относится к более сложным массивам, поэтому используется редко. Но она может оказаться очень полезной при подсчете суммы, когда есть необходимость добавлять новые строки.
СМЕЩ и ее синтаксис
Эта функция позволяет возвращать ссылку на диапазон, который смещен относительно исходной ссылки на определенное число столбцов и строк. Определение команды звучит не совсем понятно для среднестатистического пользователя. Синтаксис параметров:
- Ссылка: это отправная ячейка. Относительно нее и происходит смещение.
- Смещение по строкам: количество строк, на которые нужно спуститься или подняться от отправной ячейки. Если идем вниз – значение будет положительным (от 1 и далее); если вверх – отрицательным (от -1 и далее).
- Смещение по столбцам: количество столбцов, на которые нужно уйти вправо или влево от отправной точки. Если вправо – положительное значение; влево – отрицательное.
- Высота и ширина: параметры диапазона, который будет возвращен функцией СМЕЩ. Если нам нужна одна ячейка, мы ставим цифры 1 и 1. Если нужна таблица, задаем иные значения, например 3 и 4, 6 и 8 и т.д.
У команды СМЕЩ есть несколько функций, но сегодня мы разберем самую распространенную и востребованную – автоматическое суммирование новых значений из вновь добавляемых строк.
Пример функции СМЕЩ
Тем, кто знакомится с функцией СМЕЩ, поначалу кажется, что ее вполне можно заменить привычной нам функцией СУММ. Но в некоторых случаях СУММ просто не работает. Разберем это на конкретном примере.
На предприятии создается база данных по ценам разных марок зубных паст, закупаемых на складе по разным оптовым ценам. Внизу указывается общая сумма, которую придется заплатить за единицу продукции. Пока нового товара на складе нет, таблица остается неизменной, и функция СУММ отлично справляется со своей задачей.
Но как только склад предлагает новую марку зубной пасты (назовем ее M), предприятию приходится добавлять дополнительные строки. Если сделать это и ввести новую цифру, то СУММ никак не отреагирует на новую строку (об этом говорит появление зеленого треугольника в верхнем левом углу ячейки и восклицательного знака рядом), потому что команда рассчитана для определенного диапазона. И мы действительно видим, что сумма осталась прежней = 554.
Важно грамотно записать формулу для команды СМЕЩ, чтобы она работала правильно. Действуем по порядку. Наша цель – сосчитать сумму, поэтому функция СУММ будет внешней.
Первым числом в СУММ будет ссылка на первоначальную ячейку, с которой пойдет подсчет. Это D5. После нее записываем команду СМЕЩ, которая будет находиться внутри СУММ.
Начинаем заполнять синтаксис функции СМЕЩ. Первое – это ссылка. Ссылаться будем на саму ячейку, в которой у нас стоит формула, т.е. на D18.
Смещение по строкам указываем в отрицательном значении -1, чтобы второй элемент диапазона суммирования всегда находился в предыдущей ячейке.
Смещение по столбцам нам не нужно, поэтому ставим либо 0, либо просто оставляем пустое место. Не забываем разделять элементы формулы точкой с запятой.
Высоту и ширину не указываем. По умолчанию она будет равна одной ячейке.
После всех действий нажимаем Enter и получаем результат. Функция СМЕЩ просуммировала не только заданный диапазон, но и добавленную строку. Попробуем добавить еще одну, чтобы проверить работу команды. Пусть это будет марка зубной пасты под названием N по цене 51 рубль.
И видим, что сумма увеличилась на 51 (получилось 650), в то время как команда СУММ осталась прежней (554).
Добавим значения стоимости для зубных паст M и N и протянем формулу на остальные ячейки, чтобы знать суммы под всеми столбцами.
СМЕЩ замечательно среагировала на введение новых строк. С таким же успехом можно добавлять значения когда угодно, сохранив таблицу.
На освоение именно этой функции, которая позволяет автоматически прибавлять новые значения к общей сумме, обычно требуется не больше часа. Зато в будущем это помогает существенно экономить время на работе. Мы рассмотрели простейший пример с небольшими числами, но многие предприятия работают с огромными массивами, и пользоваться командой СУММ и уж, тем более, калькулятором, совсем неразумно.
Функция СМЕЩ() в MS EXCEL
Функция СМЕЩ() часто используется при создании динамических диапазонов. Рассмотрим ее подробнее.
Синтаксис функции СМЕЩ()
- ссылка — ссылка, от которой вычисляется смещение;
- смещ_по_строкам — количество строк, которые требуется отсчитать вверх или вниз, чтобы левая верхняя ячейка результата ссылалась на нужную ячейку (по умолчанию =0);
- смещ_по_столбцам – аналогично смещ_по_строкам, только смещение отсчитывается по столбцам (по умолчанию =0);
- высота — число строк возвращаемой ссылки. Значение аргумента «высота» должно быть положительным числом;
- ширина — число столбцов возвращаемой ссылки (по умолчанию =1).
Чтобы было понятнее, потренируемся с функцией СМЕЩ() , используя файл примера .
Дана исходная таблица с тремя столбцами.
Задавая параметры функции СМЕЩ() подсчитаем сумму значений в различных диапазонах таблицы. Для визуального наблюдения диапазона, возвращаемого функцией СМЕЩ() , использовано Условное форматирование. Для удобства изменения параметров функции СМЕЩ() использованы Элементы управления Счетчик.
Для подсчета суммы значений в столбце Продажа1 запишем формулу:
=СУММ(СМЕЩ($B$2;0;0;8;1))
диапазон суммирования — $B$2:$B$9 (левый верхний угол — $B$2, высота 8, смещения верхнего угла нет). Результат 34.
Для подсчета суммы значений в столбце Продажа2 запишем формулу:
=СУММ(СМЕЩ($B$2;0;1;8;1))
Теперь левый верхний угол диапазона суммирования смещен от $B$2 на один столбец вправо, т.е. диапазон суммирования стал $C$2:$C$9. Результат 68.
Для подсчета суммы значений в столбцах Продажа1 и Продажа2, изменим ширину диапазона.
=СУММ(СМЕЩ($B$2;0;0;8;2))
указав ширину в 2 ячейки, результат составит 102, диапазон будет модифицирован в $В$2:$С$9.
Добавив смещение по строкам (+1), получим результат 99:
=СУММ(СМЕЩ($B$2;1;0;8;2))
диапазон будет модифицирован в $В$3:$С$9.
Функция СМЕЩ() vs ИНДЕКС()
Пусть имеется диапазон с числами (А2:А10) Необходимо найти сумму первых 2-х, 3-х, . 9 значений. Конечно, можно написать несколько формул =СУММ(А2:А3) , =СУММ(А2:А4) и т.д. Но, записав формулу ввиде:
получим универсальное решение, в котором требуется изменять только последний аргумент (если в формуле выше вместо 4 ввести 5, то будет подсчитана сумма первых 5-и значений). Вышеуказанная формула эквивалентна формуле =СУММ(A2:ИНДЕКС(A2:A10;4)) , которая, в свою очередь, эквивалентна формуле =СУММ(A2:A5)
Формула ИНДЕКС(A2:A10;4) возвращает ссылку на ячейку А5.