Excel сдвиг ячеек формула

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 на протяжении экзамена записываются оценки, которые получили уже сдавшие предмет экзамены. Реализовать алгоритм динамического расчета среднего значения балла за экзамен для группы студентов.

Вид исходной таблицы:

Пример 1.

Формула для расчета:

Функция ЕСЛИОШИБКА используется для вывода сообщения об отсутствии данных для расчета. Функция СРЗНАЧ принимает диапазон ячеек, возвращаемых функцией СМЕЩ со следующими параметрами:

  • B3 – ссылка на начальную ячейку (точку отсчета);
  • 0 – нулевое смещение по строкам;
  • 0 – нулевое смещение по столбцам;
  • СЧЁТ(B3:B14) – количество ячеек из диапазона B3:B14, которые содержат ненулевые значения, характеризующее высоту диапазона возвращаемых ячеек;
  • 1 – ширина диапазона возвращаемых значений (в 1 столбец).

Результаты расчета по мере заполнения данными:

СЧЁТ.

Примечания к примеру:

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



Динамическое обновление итоговых данных таблицы в Excel

Пример 2. В таблице Excel внесены данные о количестве продаж товаров за все время работы компании. Для еженедельного учета требуется выводить данные о продажах (общая сумма проданных товаров) за прошедшие 7 дней. Реализовать динамическое обновление данных.

Вид исходной таблицы данных:

Пример 2.

Для расчета суммы проданных единиц товаров за последние 7 дней используем формулу:

Описание аргументов функции СМЕЩ:

  • B3 – ссылка на ячейку, относительно которой выполняется отсчет;
  • СЧЁТЗ(B3:B1000)-7 – функция, подсчитывающая количество непустых ячеек в диапазоне B3:B1000 (ячейка B1000 взята условно с запасом для последующих записей). От итогового результат вычитается число 7, поскольку по условию необходимо получить данные за неделю. В целом выражение определяет начальную позицию массива возвращаемых ячеек по вертикали относительно точки отсчета B3;
  • 0 – нулевое смещение по столбцам (искомый диапазон ячеек находится в том же столбце, что и точка отсчета B3);
  • 7 – высота диапазона возвращаемых ячеек (7 ячеек);
  • 1 – ширина диапазона возвращаемых ячеек.

Полученный результат в результате расчетов:

Динамическое обновление данных.

При добавлении новых данных пересчет выполняется автоматически.

Выборка значений из таблицы с помощью функции СМЕЩ в Excel

Пример 3. В таблице содержатся данные о средних значениях курсов валют по месяцам года. Реализовать алгоритм вывода значений курсов в строку под таблицей по выбранному номеру месяца.

Исходная таблица данных имеет следующий вид:

Пример 3.

Используем элемент управления «Счетчик» для выбора номера месяца. Для этого добавим пункт ленты меню «Разработчик» нажатием правой кнопкой мыши по любому существующему ее элементу:

Разработчик.

Выберем пункт настройка ленты и в открывшемся окне установим флажок напротив пункта «Разработчик»:

установим флажок.

В ленте добавится новый пункт меню. Выберем его, найдем кнопку «Вставить» и нажмем ее:

Вставить.

Выберем элемент «Счетчик», наведем курсор (вместо стрелки форма «+») на требуемую ячейку (в данном случае A16), выделим область для счетчика. После того, как кнопка мыши будет отпущена, появится заготовка счетчика. Нажмем правой кнопкой по счетчику и выберем пункт «Формат объекта»:

Формат объекта.

Заполним текущее и минимальное значения, а также установим связь с ячейкой, в которой данный счетчик находится:

установим связь с ячейкой.

Нажмем кнопку «ОК» и выделим любую другую ячейку на листе, чтобы завершить процесс настройки счетчика. В итоге получим:

Счетчик.

Для вывода курсов доллара и евро соответственно используем функции:

=СМЕЩ(A1;A16;1)

Для вывода курсов доллара.

=СМЕЩ(A1;A16;2)

В результате имеем возможность динамического вывода значений в зависимости от выбранного номера месяца. Примеры работы:

Для вывода курсов евро.

Особенности использования функции СМЕЩ в Excel

Функция имеет следующую синтаксическую запись:

=СМЕЩ(ссылка;смещение_по_строкам;смещение_по_столбцам;[высота];[ширина])

Описание аргументов:

  • ссылка – обязательный для заполнения аргумент, принимающий данные ссылочного типа, характеризующие ячейку или диапазон ячеек, относительно которых производится отсчет расстояния до возвращаемых ячейки или диапазона ячеек;
  • смещение_по_строкам — обязательный аргумент, который принимает данные числового типа, характеризующие расстояние между точкой отсчета (указанной аргументом ссылка) и возвращаемой ячейкой либо диапазоном ячеек. В качестве аргумента может быть передано:
  1. Положительное целое число. В этом случае смещение относительно точки отсчета выполняется вправо на указанное число ячеек.
  2. 0 – искомая ячейка или диапазон ячеек находятся в текущей строке.
  3. Отрицательное число – смещение влево на указанное число, взятое по модулю.
  4. Дробное число – функция СМЕЩ выполняет усечение дробной части, и использует полученное целое число для определения величины смещения по строкам.
  • смещение_по_столбцам – обязательный аргумент, принимающий числовые значения, указывающие на величину смещения по столбцам относительно выбранной точки отсчета. Указанные свойства аргумента смещ_по_строкам верны для смещ_по_столбцам в интерпретации по вертикали. Например:
  1. Функция =СМЕЩ(A5;0;2) вернет ссылку на ячейку C5;
  2. Функция =СМЕЩ(A5;2;0) вернет ссылку на ячейку A7;
  3. Функция СМЕЩ с аргументами (C5;0-2) вернет ссылку на ячейку A5;
  4. Функция с аргументами (D5;0;-3,8) вернет ссылку на ячейку A5.
  • [высота] – необязательный аргумент, принимающий числовое значение, характеризующее число ячеек по высоте (количество строк) возвращаемого диапазона ячеек. Принимает значения из диапазона целых положительных чисел, начиная от 1 (если принимает значение 0, функция СМЕЩ вернет код ошибки #ССЫЛКА!);
  • [ширина] – необязательный для заполнения аргумент, принимающий числовое значение, которое характеризует ширину диапазона возвращаемых ячеек. Передаваемое значение должно быть целым положительным числом от 1 до +∞.

Примечания:

  1. Если функция СМЕЩ ссылается на ячейку или диапазон ячеек, которые находятся вне пределов рабочего листа по условиям, заданным параметрами смещ_по_строкам и смещ_по_столбцам, результатом выполнения данной функции будет код ошибки #ССЫЛКА!.
  2. Если необязательные аргументы [высота] и [ширина] явно не казаны, они принимают значения, равные высоте и ширине диапазона ячеек, указанного в качестве аргумента ссылка. Если ссылка принимает одну ячейку, данные аргументы по умолчанию принимают значения 1 и 1 соответственно.
  3. Функция СМЕЩ может быть использована в качестве аргумента любой функции, принимающей данные ссылочного типа.
  4. Если аргумент ссылка принимает ссылочное значение на единственную ячейку, а необязательные параметры указывают на диапазон (заданы числами, больше 1), тогда функция вернет код ошибки #ЗНАЧ! (пример с ошибкой – результат выполнения функции с аргументами (A5;2;3;3;2)).

Бывают ситуации, когда заранее не известно какие именно ячейки на листе нужно подсчитывать. Например, представим, что нам нужно реализовать в Excel небольшой транспортный калькулятор для расчета расстояния проезда от одной заданной станции до другой:

Калькулятор проезда с функцией СМЕЩ (OFFSET)

В выпадающих списках в желтых ячейках F3 и F5 пользователь выбирает станции отправления и назначения, а в зеленой ячейке F7 должна подсчитываться сумма всех ячеек в заданном «окне» на листе. Для проезда от Останкино до Ховрино, как на рисунке, например, нужно будет просуммировать все ячейки в обведенном зеленым пунктиром диапазоне.

Как считать суммму — понятно, а вот как определить диапазон ячеек, которые нужно просуммировать? Ведь при выборе станций он будет постоянно трансформироваться?

В подобной ситуации может помочь функция СМЕЩ (OFFSET), способная выдать ссылку на «плавающее окно» — диапазон заданного размера, расположенный в определенном месте листа. Синтаксис у функции следующий:

=СМЕЩ(Точка_отсчета; Сдвиг_вниз; Свиг_вправо; Высота; Ширина)

Эта функция на выходе дает ссылку на диапазон, сдвинутый относительно некоей стартовой ячейки (Точка_отсчета) на определенное количество строк вниз и столбцов вправо. Причем размер диапазона («окна») тоже может задаваться параметрами Высота и Ширина

В нашем случае, если взять за точку отсчета ячейку А1, то:

Параметры СМЕЩ

  • Точка отсчета = А1
  • Сдвиг_вниз = 4
  • Свиг_вправо = 2
  • Высота = 4
  • Ширина = 1

Чтобы рассчитать необходимые для СМЕЩ аргументы, давайте сначала применим функцию ПОИСКПОЗ (MATCH), которую мы уже разбирали, для вычисления позиций станций отправления и назначения:

Вычисляем позиции станций

И, наконец, используем функцию СМЕЩ, чтобы получить ссылку на нужное «окно» на листе и просуммировать все ячейки из него:

Суммируем ячейки из динамического окна на листе функцией СМЕЩ

Вот и все, задача решена :)

P.S.

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

Ссылки по теме

  • Поиск позиции заданного элемента в списке функцией ПОИСКПОЗ (MATCH)
  • 4 способа создать выпадающий список в ячейке листа Excel
  • 5 вариантов применения функции ИНДЕКС

Формула СМЕЩ

Не правда ли, было бы замечательно, если бы Excel мог изменять диапазон данных, например, для графиков или диаграмм, при добавлении новых строк или столбцов. На самом деле, возможность создания динамических диапазонов существует, и она реализована с помощью функции СМЕЩ.

Функция СМЕЩ возвращает ссылку на диапазон с определенной отправной точкой с заданной высотой и шириной.

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

Синтаксис формулы СМЕЩ

Перевод статьи с сайта Chandoo

Формула СМЕЩ выглядит следующим образом:

=СМЕЩ(ссылка; смещение по строкам; смещение по столбцам; высота; ширина)

  • Ссылка: отправная точка, эта ячейка, относительно которой необходимо смещаться
  • Смещение по строкам и столбцам: Указывает, на какое количество строк или столбцов необходимо сместиться от отправной точки. Может иметь положительные и отрицательные значения, а также равняться нулю.
  • Высота и ширина: Это размер диапазона, который вы хотите вернуть. К примеру, 4X3 вернет диапазон содержащий 4 строки в высоту и 3 столбца в ширину.

И конечно, все аргументы могут ссылаться на другие ячейки. Это означает, что вы можете написать формулу =СМЕЩ(A1;D1;D2;D3; D4), которая вернет диапазон

  • Смещенный от ячейки A1
  • На D1 строк и D2 столбцов
  • Размером D3 строчки и D4 столбца

На рисунке изображен пример работы формулы СМЕЩ для лучшего понимания.

Пример формулы СМЕЩ

Зачем использовать формулу СМЕЩ?

Почему просто нельзя явно указать название диапазона, например, A1:C4?

Вот пара причин почему:

  • Динамические диапазоны: Ссылка типа A1:C4 всегда будет возвращать диапазон A1:C4, т.е. она статична. Но иногда нам необходимо, чтобы диапазон был динамичным. Это требуется потому что данные могут меняться (с каждым месяцем добавляются новые строчки, запускаются новые продукты – добавляются колонки)
  • Мы не знаем точного адреса: Иногда мы не можем знать фактического адреса. Чаще всего нам известна только стартовая ячейка. В такой ситуации нам поможет формула СМЕЩ.

Интерактивное описание формулы СМЕЩ

Формула СМЕЩ довольно непростая для понимания, поэтому была создана интерактивная таблица, чтобы вы могли лучше понять, как она работает. Изменяя 5 аргументов формулы, Excel будет выделять диапазон, который вы выбрали. После нескольких минут баловства, вы поймете формулу лучше.

Интерактивная таблица

Скачать книгу с интерактивной таблицей формулы СМЕЩ.

Практикуемся с формулой СМЕЩ – среднее значение последней недели

Предположим, что мы работаем в службе качества фабрики по производству шоколадных батончиков. Одним из показателей эффективности (KPI), который мы должны отслеживать является бракованные батончики. Лист сбора данных будет выглядеть примерно следующим образом.

Лист сбора данных

Так как же мы будем считать средний показатель брака за неделю?

Если предположить, что данные находятся в диапазоне B2:B23, тогда необходимо записать =СРЗНАЧ(B2:B23).

Но нам необходимо, чтобы эта формула менялась ежедневно!!!

Используя формулу СМЕЩ мы можем один раз посчитать среднее значение и больше не возвращаться к этому вопросу.

=СРЗНАЧ(СМЕЩ(B2;СЧЁТЗ(B2:B300)-7;0;7;1))

Разберемся, как работает эта формула

  • Для того, чтобы посчитать среднее значение последней недели, мы должны вытянуть последние 7 строк со всего массива данных.
  • Вот откуда взялась формула СЧЁТЗ(B2:B300)-7, которая считает количество значений и затем, от полученной цифры отнимается 7.
  • Формула СМЕЩ перемещается с ячейки B2 на стартовую ячейку последней недели.
  • На гифке показано, как работает динамический диапазон.

как работает динамический диапазон


Функция

СМЕЩ(

)

, английский вариант 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 сдвиг непустых ячеек за пределы листа
  • Excel сдвиг даты на месяц