Функция СМЕЩ в 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, вам не нужно беспокоиться о добавлении новых данных и необходимости корректировки формул.
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2019 for Mac Excel 2016 Excel 2016 for Mac Excel 2013 Excel 2010 Excel 2007 Excel for Mac 2011 Excel Starter 2010 More…Less
This article describes the formula syntax and usage of the OFFSET function in Microsoft Excel.
Description
Returns a reference to a range that is a specified number of rows and columns from a cell or range of cells. The reference that is returned can be a single cell or a range of cells. You can specify the number of rows and the number of columns to be returned.
Syntax
OFFSET(reference, rows, cols, [height], [width])
The OFFSET function syntax has the following arguments:
-
Reference Required. The reference from which you want to base the offset. Reference must refer to a cell or range of adjacent cells; otherwise, OFFSET returns the #VALUE! error value.
-
Rows Required. The number of rows, up or down, that you want the upper-left cell to refer to. Using 5 as the rows argument specifies that the upper-left cell in the reference is five rows below reference. Rows can be positive (which means below the starting reference) or negative (which means above the starting reference).
-
Cols Required. The number of columns, to the left or right, that you want the upper-left cell of the result to refer to. Using 5 as the cols argument specifies that the upper-left cell in the reference is five columns to the right of reference. Cols can be positive (which means to the right of the starting reference) or negative (which means to the left of the starting reference).
-
Height Optional. The height, in number of rows, that you want the returned reference to be. Height must be a positive number.
-
Width Optional. The width, in number of columns, that you want the returned reference to be. Width must be a positive number.
Remarks
-
If rows and cols offset reference over the edge of the worksheet, OFFSET returns the #REF! error value.
-
If height or width is omitted, it is assumed to be the same height or width as reference.
-
OFFSET doesn’t actually move any cells or change the selection; it just returns a reference. OFFSET can be used with any function expecting a reference argument. For example, the formula SUM(OFFSET(C2,1,2,3,1)) calculates the total value of a 3-row by 1-column range that is 1 row below and 2 columns to the right of cell C2.
Example
Copy the example data in the following table, and paste it in cell A1 of a new Excel worksheet. For formulas to show results, select them, press F2, and then press Enter. If you need to, you can adjust the column widths to see all the data.
Formula |
Description |
Result |
---|---|---|
=OFFSET(D3,3,-2,1,1) |
Displays the value in cell B6 (4) |
4 |
=SUM(OFFSET(D3:F5,3,-2, 3, 3)) |
Sums the range B6:D8 |
34 |
=OFFSET(D3, -3, -3) |
Returns an error, because the reference is to a non-existent range on the worksheet. |
#REF! |
Data |
Data |
|
4 |
10 |
|
8 |
3 |
|
3 |
6 |
Need more help?
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
Excel contains many useful formulas and functions that make it more and more useful and at the same time user-friendly. Such a function is the OFFSET() function. In many cases, this function is also used inside another function. This function basically returns a reference of a single cell or a range of cells depending on the input. With the help of this function, we can traverse from one cell to another cell. Moreover, the user can specify the number of rows and columns to be returned.
This function is a volatile function that also works according to its name. It returns a reference of the desired element(s) that is(are) ‘offset’ of some distance from the given starting point. This can be used within some functions to make tasks easier.
Syntax:
OFFSET(reference, rows, cols, [height], [width]) -->Here the [height] and [width] are optional.
This function takes a valid reference, rows, and columns(To know how much distance the function will traverse), and height and width(that describes the height and width of output reference) as its arguments and returns the desired reference of the cell or the range of cells. These arguments are discussed below elaborately.
Arguments:
- reference (Required): This is the reference of the starting point or the base of the OFFSET() function and this reference must be provided by the user. The reference must be valid i.e. a reference of a single cell or a reference to a range of adjacent cells.
- rows (Required): This argument contains the number of rows(up or down) that are used by the OFFSET() function to traverse up or down. Again this argument must be provided by the user. This value may be negative or positive. A negative value denotes that the function has to traverse upwards and a positive value denotes traversing downwards.
- cols (Required): This argument contains the number of columns provided by the user. With the help of this argument OFFSET(), function traverse left or right of the starting point. This value may also be negative or positive. A negative value means traversing to the left and a positive value means traversing to the right.
- [height] (Optional): This is the height of the reference to be returned by the OFFSET() function. Basically, this value denotes the number of rows of the returned reference. This value must be a positive number. But this is an optional argument. If this argument is omitted, OFFSET() returns a reference of the same height as the ‘reference’(starting point).
- [width] (Optional): This is the width of the reference to be returned by the OFFSET() function. Basically, this value denotes the number of columns of the returned reference. This value must also be a positive number. But again this is an optional argument. If this argument is omitted, OFFSET() returns a reference of the same width as the ‘reference’(starting point).
Note: The number of rows and columns must not exceed the height and width of the worksheet.
Return Value: This function naturally returns a reference to a range of cells(sometimes a single cell depending on the input arguments) of a certain height and width either same as the ‘reference’ argument or as the user has provided.
Example:
An Excel sheet has been taken as an example and the OFFSET function has been used in several formats.
Value 1 | Value 2 | Value 3 |
---|---|---|
25 | 5 | 5 |
35 | 7 | 5 |
23 | 0 | 0 |
26 | 25 | 5 |
28 | 3 | 6 |
OFFSET function has been applied to the above table.
OFFSET() function | Results | Remarks |
---|---|---|
=OFFSET(C4, 2, -2, 1, 1) | 28 |
OFFSET function traverses 2 rows down and 2 columns left, and returns the reference of cell A6. |
=OFFSET(C2, 5, -5) | #REF! | Rows and columns arguments exceed the height and width of the worksheet. So it shows the error(#REF!). |
=SUM(OFFSET(B2:C5, 0, -1)) | 146 | Here OFFSET is used within the SUM() function. It returns the sum of all elements from A2 to B5 as OFFSET returns the reference of A2:B5 cells. |
Output:
Like Article
Save Article
30 функций Excel за 30 дней: СМЕЩ (OFFSET)
Смотрите также это ссылка. Ссылаться и т.д. строки ниже и и разной всячины) на определенное количество(ПОДСТАВИТЬ) заменяет второй C11, которой присвоено сведения или примеры) Необходимо найти сумму
быть положительным числом; столбца и расположенного значения аргумента «смещ_по_строкам» рисунке возвращает диапазонSUM возвращает имя месяца. быть положительным (вправоВчера в марафоне будем на самуУ команды СМЕЩ есть
на 5 столбцов и ,что самое строк вниз и символ пробела новой имя использования этой функции, первых 2-х, 3-х,ширина одной строкой ниже задано число 5,
Функция 26: OFFSET (СМЕЩ)
1х2, который находится(СУММ) и Единственное отличие – от начальной ссылки)30 функций Excel за ячейку, в которой несколько функций, но
Как можно использовать функцию OFFSET (СМЕЩ)?
вправо: смешное — так столбцов вправо. Причем строкой » |RptTitle пожалуйста, делитесь ими …9 значений. Конечно,- число столбцов и двумя столбцами
- это означает, что на 5 строк
- COUNT это сдвиг по
- или отрицательным (влево 30 дней
- у нас стоит сегодня мы разберемCells(1,1).Offset(2,5)
Синтаксис OFFSET (СМЕЩ)
и понял до размер диапазона («окна») «.. Символы
в комментариях.
можно написать несколько
- возвращаемой ссылки (по правее ячейки C2. левая верхняя ячейка ниже и на
- (СЧЁТ), чтобы показать столбцам: 1 вместо от начальной ссылки).мы заменяли текстовые формула, т.е. на самую распространенную и
- Сместились и задаем конца зачем она тоже может задаваться=SUBSTITUTE(B3,» «,» | «,C3)yyyФункция
- формул =СУММ(А2:А3), =СУММ(А2:А4) и т.д. Но, умолчанию =1).Скопируйте образец данных из возвращаемой ссылки должна 1 столбец правее
- сумму за последние 0.height строки с помощью D18.
- востребованную – автоматическое размер диапазона - нужна и как параметрами=ПОДСТАВИТЬ(B3;» «;» | «;C3)в тексте заголовкаSUBSTITUTE
Ловушки OFFSET (СМЕЩ)
записав формулу ввиде:Чтобы было понятнее, потренируемся следующей таблицы и быть на пять ячейкиn=OFFSET(C1,F2,1,1,1)(высота) – количество функцииСмещение по строкам указываем суммирование новых значений 3 строки и правильно работает.ВысотаЧтобы не использовать две будут заменены на(ПОДСТАВИТЬ) заменяет старый=СУММ(СМЕЩ(A2;;;4)) с функцией СМЕЩ(), вставьте их в
Пример 1: Находим сумму продаж для выбранного месяца
строк ниже, чемA2месяцев. Как только=СМЕЩ(C1;F2;1;1;1) строк в возвращаемойREPLACE в отрицательном значении из вновь добавляемых 4 столбца:Кто-нибудь может доступно
- и формулы для решения
- название региона, выбранное текст на новыйполучим универсальное решение, в
- используя файл примера. ячейку A1 нового указано в аргументе. Функция
- добавляются новые значения,Замечание: ссылке, должен быть(ЗАМЕНИТЬ) и выяснили,
- -1, чтобы второй строк.Cells(1,1).Offset(2,5).Resize(3,4) обьяснить ДЛЯ ЧЕГО
Ширина
этой задачи, Вы
в ячейке D13. текст внутри текстовой котором требуется изменятьДана исходная таблица с листа Excel. Чтобы «ссылка». Значение аргументаSUM результат формулы будет
В данном примере
положительным.
что вставлять символы элемент диапазона суммированияJayBhagavan она создана и. можете объединить их=SUBSTITUTE(RptTitle,»yyy»,D13) строки. Функция заменит только последний аргумент тремя столбцами.
Пример 2: Суммируем продажи за выбранные месяцы
отобразить результаты формул, «смещ_по_строкам» может быть(СУММ) вычисляет сумму автоматически скорректирован, чтобы аргументыwidth она тоже умеет. всегда находился вТем, кто знакомится с: Более наглядно: «пять как применять ее?В нашем случае, если в одну длинную:=ПОДСТАВИТЬ(RptTitle;»yyy»;D13) все повторения старого
- (если в формулеЗадавая параметры функции СМЕЩ() выделите их и
- как положительным (для значений этого диапазона. включить величину продажheight(ширина) – количество
- В 26-й день марафона предыдущей ячейке.
- функцией СМЕЩ, поначалу шагов на северВ каких наиболее взять за точку=SUBSTITUTE(B3,» «,» | «,LEN(B3)-LEN(SUBSTITUTE(B3,»
При копировании данных с
текста, пока не
Пример 3: Создаем динамический диапазон, основанный на подсчете
выше вместо 4 подсчитаем сумму значений нажмите клавишу F2, ячеек ниже начальной=SUM(OFFSET(A2,5,1,1,2)) за последний месяц.(высота) и столбцов в возвращаемой
мы будем изучать
Смещение по столбцам нам
кажется, что ее от старой берёзы». нужных моментах можно отсчета ячейку А1, «,»»))) веб-сайта, в тексте будет выполнено определённое ввести 5, то в различных диапазонах
Пример 4: Суммируем продажи за последние n месяцев
а затем — ссылки), так и=СУММ(СМЕЩ(A2;5;1;1;2)) В ячейке E2width ссылке, должен быть функцию не нужно, поэтому вполне можно заменитьСливочный формулу использовать? то:=ПОДСТАВИТЬ(B3;» «;» | «;ДЛСТР(B3)-ДЛСТР(ПОДСТАВИТЬ(B3;» могут оказаться лишние условие. Она чувствительна будет подсчитана сумма таблицы. Для визуального клавишу ВВОД. При отрицательным (выше начальнойРезультат: количество месяцев равно(ширина) можно не положительным.
- OFFSET ставим либо 0,
- привычной нам функцией: vikttur, спасибо, весьма
- Буду очень благодаренТочка отсчета = А1
- «;»»))) символы пробелов. Текст к регистру.
- первых 5-и значений).
- наблюдения диапазона, возвращаемого необходимости измените ширину ссылки).Примечание
- 2 указывать, поскольку нам
- Если аргументы
(СМЕЩ). Она возвращает
либо просто оставляем
СУММ. Но в доходчиво
за ответ.
Сдвиг_вниз = 4
Урок подготовлен для Вас
office-guru.ru
Функция СМЕЩ в Excel
может содержать, какФункция Вышеуказанная формула эквивалентна функцией СМЕЩ(), использовано столбцов, чтобы видетьСмещ_по_столбцам: Чтобы вернуть значения, поэтому складываться будут нужна ссылка того
- height ссылку заданного размера, пустое место. Не некоторых случаях СУММПрограмму Excel любят заSkif-FСвиг_вправо = 2 командой сайта office-guru.ru обычные пробелы (символSUBSTITUTE формуле =СУММ(A2:ИНДЕКС(A2:A10;4)), которая, Условное форматирование. Для все данные. Обязательный. Количество столбцов, которые ячеек (без расчета
суммы за август
же размера, что
(высота) или
- отстоящую от стартовой забываем разделять элементы просто не работает. возможность быстро и: Ну, пример:Высота = 4Источник: http://blog.contextures.com/archives/2011/01/28/30-excel-functions-in-30-days-27-substitute/ 32), так и(ПОДСТАВИТЬ) заменяет старый в свою очередь, удобства изменения параметровФормула требуется отсчитать влево суммы), выберите диапазон
(Aug-10) и сентябрь
и стартовая.
width
ссылки на указанное формулы точкой с Разберем это на автоматически считать сложныев столбце BШирина = 1Перевел: Антон Андронов не неразрывные (символ текст новым внутри эквивалентна формуле =СУММ(A2:A5) функции СМЕЩ() использованыОписание или вправо, чтобы такого же размера, (Sep-10).В этом примере функция(ширина) не указаны,
количество строк и запятой.
конкретном примере.
формулы. Достаточно освоить
ищем значение:
office-guru.ru
Функция СМЕЩ
Чтобы рассчитать необходимые дляАвтор: Антон Андронов 160). Когда Вы текстовой строки. ВыФормула ИНДЕКС(A2:A10;4) возвращает ссылку
Описание
Элементы управления Счетчик.Результат левая верхняя ячейка прежде чем вставитьНачальная ссылка – ячейкаOFFSET используются размеры исходной столбцов.Высоту и ширину неНа предприятии создается база элементарные команды, чтобы
Синтаксис
Set Rng=Sheets(1).Rows(2).Find(«Что-то»)
СМЕЩБывают ситуации, когда заранее
-
сделаете попытку удалить можете использовать её на ячейкуДля подсчета суммы значений=СМЕЩ(D3;3;-2;1;1) результата ссылалась на функцию C2.(СМЕЩ) возвращает ссылку ссылки.
-
Итак, давайте изучим информацию указываем. По умолчанию данных по ценам экономить значительное количествои получаем значениеаргументы, давайте сначала не известно какие их, то обнаружите, для того, чтобы:А5 в столбце Продажа1Отображает значение ячейки B6 нужную ячейку. Например,OFFSETКоличество строк для сдвига на данные оФункция и примеры применения она будет равна разных марок зубных времени. из столбца D применим функцию
-
именно ячейки на что функцияИзменять название региона в. запишем формулу: (4) если в качестве(СМЕЩ). Если вы рассчитывается так: продажах за выбранныйOFFSET функции одной ячейке. паст, закупаемых наФункция СМЕЩ относится к той же строки:ПОИСКПОЗ (MATCH) листе нужно подсчитывать.TRIM заголовке отчёта.Вчера в марафоне=СУММ(СМЕЩ($B$2;0;0;8;1))4
-
значения аргумента «смещ_по_столбцам» хотите, чтобы формулаподсчитываем количество чисел в месяц, а функция(СМЕЩ) пересчитывается каждый
-
OFFSETПосле всех действий нажимаем складе по разным более сложным массивам,Значение=Rng.Offset(0,2).Value
Примечания
-
, которую мы уже Например, представим, что(СЖПРОБЕЛЫ) не способнаУдалить непечатаемые символы.30 функций Excel за
-
диапазон суммирования -=СУММ(СМЕЩ(D3:F5;3;-2;3;3)) задано число 5, вернула ячейку или столбце C,SUM
-
раз при любом(СМЕЩ), а если Enter и получаем оптовым ценам. Внизу поэтому используется редко.что можно заменить разбирали, для вычисления нам нужно реализовать удалить неразрывные пробелы.Заменить последний символ пробела. 30 дней$B$2:$B$9Суммирует диапазон B6:C8 это означает, что диапазон ячеек, расположенныхвычитаем из результата количество(СУММ) подсчитывает сумму изменении значений на
Пример
у Вас есть результат. Функция СМЕЩ указывается общая сумма, Но она может выражением: позиций станций отправления в Excel небольшойК счастью, Вы можетеФункциямы использовали функцию(левый верхний угол34 левая верхняя ячейка
выше и левее |
месяцев, указанное в |
для этого диапазона. |
листе Excel. Используя |
дополнительные сведения и просуммировала не только |
которую придется заплатить |
оказаться очень полезной |
Значение=Sheets(1).Cells(Rng.Row,Rng.Column+2).Value |
и назначения: |
транспортный калькулятор для |
использовать функциюSUBSTITUTEOFFSET |
- |
=СМЕЩ(D3;-3;-3) |
возвращаемой ссылки должна |
|
точки отсчета, введите |
ячейке E3, |
|
В ячейке B10 |
эту функцию во |
|
свои примеры, пожалуйста, |
заданный диапазон, но |
support.office.com
Функция СМЕЩ() в MS EXCEL
за единицу продукции. при подсчете суммы,Какой вариант удобнее?И, наконец, используем функцию расчета расстояния проездаSUBSTITUTE(ПОДСТАВИТЬ) имеет вот
(СМЕЩ), чтобы возвратить$B$2Возвращает ошибку, так как быть на пять
Синтаксис функции СМЕЩ()
отрицательные числа в
- и прибавляем 1. указан номер выбранного многих формулах, можно
- делитесь ими в и добавленную строку. Пока нового товара когда есть необходимостьЮрий МСМЕЩ от одной заданной(ПОДСТАВИТЬ), чтобы заменить
- такой синтаксис: ссылку, а также, высота 8, смещения ссылка указывает на столбцов правее, чем качестве второго и
- Продажи находятся в столбце месяца 3, следовательно, сильно замедлить работу. комментариях. Попробуем добавить еще
- на складе нет, добавлять новые строки.: Вы про функцию, чтобы получить ссылку
станции до другой: каждый неразрывный пробелSUBSTITUTE(text,old_text,new_text,instance_num)
Примеры
увидели, что она верхнего угла нет).
несуществующий диапазон листа. указано в аргументе третьего аргументов. C, поэтому сдвиг результатом будет сумма ВместоФункция одну, чтобы проверить таблица остается неизменной,Эта функция позволяет возвращать
листа? на нужное «окно»В выпадающих списках в
на обычный, а
ПОДСТАВИТЬ(текст;стар_текст;нов_текст;номер_вхождения) очень похожа на Результат 34.#ССЫЛ! «ссылка». Значение «смещ_по_столбцам»Урок подготовлен для Вас по столбцам равен продаж в марте
OFFSETOFFSET работу команды. Пусть
и функция СУММ ссылку на диапазон,vikttur
на листе и желтых ячейках F3 затем, используя функциюtext функциюДля подсчета суммы значенийДанные может быть как командой сайта office-guru.ru
нулю. (Mar).(СМЕЩ) Вы можете(СМЕЩ) возвращает ссылку,
это будет марка отлично справляется со который смещен относительно
: Вы играете в просуммировать все ячейки и F5 пользовательTRIM(текст) – текстоваяINDEX
в столбце Продажа2Данные положительным (для ячеек
Источник: http://www.excel-easy.com/examples/offset.htmlВысота введена в ячейкеНачальная ссылка
использовать функцию смещённую от заданной зубной пасты под своей задачей.
Функция СМЕЩ() vs ИНДЕКС()
исходной ссылки на необычные шашки: передвигаете из него: выбирает станции отправления(СЖПРОБЕЛЫ), удалить все строка или ссылка,(ИНДЕКС). Кроме этого запишем формулу:4
справа от начальной
Перевел: Антон Андронов E3.A3:A6INDEX ссылки на определенное названием N поНо как только склад определенное число столбцов дамку из а1Вот и все, задача и назначения, а лишние пробелы.
где будет осуществлена мы узнали, что=СУММ(СМЕЩ($B$2;0;10
excel2.ru
30 функций Excel за 30 дней: ПОДСТАВИТЬ (SUBSTITUTE)
ссылки), так иАвтор: Антон АндроновШирина равна 1 столбцу..(ИНДЕКС), чтобы возвратить количество строк и цене 51 рубль. предлагает новую марку и строк. Определение на 5 клеточек решена :) в зеленой ячейке=TRIM(SUBSTITUTE(B3,CHAR(160),» «)) замена текста. функция18 отрицательным (слева отВ этой статье описаны=SUM(OFFSET(C2,COUNT(C:C)-E3+1,0,E3,1))Сдвиг по строкам равен
ссылку. столбцов.И видим, что сумма зубной пасты (назовем команды звучит не вправо (вот такаяВ отличие от большинства F7 должна подсчитываться=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(B3;СИМВОЛ(160);» «))old_textOFFSET;8;1))3
начальной ссылки). синтаксис формулы и=СУММ(СМЕЩ(C2;СЧЁТ(C:C)-E3+1;0;E3;1)) нулю (если нольINDEXФункция увеличилась на 51 ее M), предприятию совсем понятно для она, дамка
остальных функций Excel, сумма всех ячеекЧтобы не заменять все(стар_текст) – текст,(СМЕЩ) пересчитывается приТеперь левый верхний3Высота использование функцииУрок подготовлен для Вас
Функция 27: SUBSTITUTE (ПОДСТАВИТЬ)
вообще не указать,(ИНДЕКС) пересчитывает результатOFFSET (получилось 650), в приходится добавлять дополнительные среднестатистического пользователя. Синтаксис), вверх/вниз неСМЕЩ в заданном «окне» вхождения текстовой строки, который надо заменить.
Как можно использовать функцию SUBSTITUTE (ПОДСТАВИТЬ)?
любом изменении данных угол диапазона суммирования6 Необязательный. Высота (число строк) возвращаемойСМЕЩ командой сайта office-guru.ru результат будет тот
- только при изменении(СМЕЩ) может возвратить
- то время как
- строки. Если сделать
Синтаксис SUBSTITUTE (ПОДСТАВИТЬ)
параметров: отклоняясь:является волатильной (volatile) на листе. Для
Вы можете использовать
new_text
- на листе, а смещен отФункция СМЕЩ(), английский вариант ссылки. Значение аргументав Microsoft Excel.
- Источник: http://blog.contextures.com/archives/2011/01/27/30-excel-functions-in-30-days-26-offset/ же). своих аргументов.
- ссылку на диапазон, команда СУММ осталась это и ввести
- Ссылка: это отправная ячейка.СМЕЩ(A1;0;5) или, как еще проезда от Останкино аргумент
Ловушки SUBSTITUTE (ПОДСТАВИТЬ)
- (нов_текст) – текст,INDEX$B$2 OFFSET(), возвращает ссылку «высота» должно бытьДанная функция возвращает ссылкуПеревел: Антон АндроновСдвиг по столбцам соответствуетПри помощи функции а также работать
- прежней (554). новую цифру, то Относительно нее иТеперь не балуемся, говорят, «летучей» функцией.
Пример 1: Изменяем название региона в заголовке отчёта
до Ховрино, какinstance_num который будет вставлен.(ИНДЕКС) только прина один столбец на диапазон ячеек. положительным числом. на диапазон, отстоящийАвтор: Антон Андронов значению ячейки B10.OFFSET в сочетании сДобавим значения стоимости для СУММ никак не происходит смещение. играем в нормальные Обычные функции пересчитываются на рисунке, например,(номер_вхождения) для указания,
instance_num
изменении своих аргументов.
Пример 2: Удаляем непечатаемые символы
вправо, т.е. диапазон Размер диапазона иШирина от ячейки илиФункцияВысота и ширина не(СМЕЩ) Вы можете другими функциями. Используйте зубных паст M отреагирует на новуюСмещение по строкам: количество шахматы. Лошадь а1:в4: только в том нужно будет просуммировать какое из вхождений
(номер_вхождения) – номерВ 27-й день марафона суммирования стал его положение задается Необязательный. Ширина (число столбцов) диапазона ячеек наOFFSET указаны, поскольку итоговый возвращать ссылку на её для того,
и N и
строку (об этом
Пример 3: Заменяем последний символ пробела
строк, на которые=СМЕЩ(A1;-2;1) случае, если меняются все ячейки в нужно заменить. В вхождения текста, который мы займёмся изучением$C$2:$C$9 в параметрах этой возвращаемой ссылки. Значение заданное число строк(СМЕЩ) в Excel диапазон должен быть
диапазон, отталкиваясь от чтобы: протянем формулу на говорит появление зеленого нужно спуститься или-2 — потому ячейки с их обведенном зеленым пунктиром следующем примере представлен нужно заменить (не функции. Результат 68. функции. аргумента «ширина» должно и столбцов. Возвращаемая возвращает ячейку или того же размера, стартовой ссылки. В
Находить суммы продаж для
остальные ячейки, чтобы
треугольника в верхнем подняться от отправной что у нас аргументами. Волатильные же диапазоне. список ингредиентов для
обязательный аргумент).
SUBSTITUTE
Для подсчета суммы значенийФункция СМЕЩ() часто используется быть положительным числом. ссылка может быть диапазон ячеек, который
что и начальный. этом примере мы
выбранного месяца. знать суммы под
левом углу ячейки ячейки. Если идем
а1
пересчитываются каждый раз
Как считать суммму -
office-guru.ru
Суммирование по «окну» на листе функцией СМЕЩ (OFFSET)
рецепта, где требуетсяФункция(ПОДСТАВИТЬ). Как и в столбцах Продажа1 при создании динамическихЕсли смещ_по_строкам и смещ_по_столбцам отдельной ячейкой или находится на заданном=SUM(OFFSET(A3:A6,0,B10)) хотим получить суммуСуммировать данные о продажах
всеми столбцами. и восклицательного знака вниз – значениенаходится в левом при изменении понятно, а вот заменить только последнийSUBSTITUTE функция и Продажа2, изменим диапазонов. Рассмотрим ее выводят ссылку за диапазоном ячеек. Можно расстоянии от указанной=СУММ(СМЕЩ(A3:A6;0;B10)) продаж в ячейке за выбранные месяцы.
СМЕЩ замечательно среагировала на рядом), потому что будет положительным (от нижнем углу, ведьлюбой как определить диапазон символ пробела.
(ПОДСТАВИТЬ) может заменитьREPLACE ширину диапазона. подробнее. границы рабочего листа, задавать количество возвращаемых ячейки или диапазонаВы можете использовать функцию G2.Создавать динамические диапазоны на
введение новых строк. команда рассчитана для
1 и далее); играем белымиячейки. Само-собой, это ячеек, которые нужноФункция все повторения старого(ЗАМЕНИТЬ), она заменяет=СУММ(СМЕЩ($B$2;0;0;8;СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;высота;ширина), где функция СМЕЩ возвращает строк и столбцов. ячеек.OFFSETСтартовая ссылка – это основе подсчета. С таким же
определенного диапазона. И если вверх –Интересно: справку по отрицательно сказывается на
- просуммировать? Ведь при
- LEN
- текста, поэтому, если
- старый текст на
- 2
ссылка значение ошибки #ССЫЛ!.СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;[высота];[ширина])Функция(СМЕЩ), чтобы создать ячейка C1.Суммировать продажи за последние успехом можно добавлять мы действительно видим,
отрицательным (от -1 данной функции пробовали быстродействии. В больших выборе станций он(ДЛСТР) в ячейке Вам нужно заменить новый, а также
))- ссылка, от
P.S.
Если высота или ширинаАргументы функции СМЕЩ описаныOFFSET динамический диапазон. ВКоличество строк для сдвигаn значения когда угодно, что сумма осталась и далее). почитать? тяжелых таблицах разница будет постоянно трансформироваться? C3 подсчитывает количество только определённое вхождение, может сделать многочисленныеуказав ширину в которой вычисляется смещение; опущена, то предполагается, ниже.(СМЕЩ) на рисунке этом примере мы вводится в ячейкемесяцев. сохранив таблицу. прежней = 554.Смещение по столбцам: количествоСливочный по скорости работы
planetaexcel.ru
Работа функции OFFSET (смещение)
В подобной ситуации может символов в ячейке
используйте аргумент замены одинакового текста 2 ячейки, результат
смещ_по_строкам что используется таСправочник ниже возвращает ячейку, создали именованный диапазон F2.ФункцияНа освоение именно этойВажно грамотно записать формулу столбцов, на которые
: Skif-F, более менее книги может быть помочь функция B3. Функция
instance_num в строке. составит 102, диапазон
- количество строк, же высота или
Обязательный. Ссылка, от которой которая находится на
MonthListСуммы продаж находятся в
OFFSET
функции, которая позволяет для команды СМЕЩ, нужно уйти вправо
объяснил понятно, но
очень ощутимой (вСМЕЩ (OFFSET)
SUBSTITUTE
(номер_вхождения).
Как показывает практика, в будет модифицирован в которые требуется отсчитать
ширина, что и вычисляется смещение. Аргумент 3 строки нижес такой формулой: столбце C, поэтому(СМЕЩ) имеет вот автоматически прибавлять новые чтобы она работала или влево от
лично я всё
разы). Для некоторых, способная выдать ссылку(ПОДСТАВИТЬ) заменяет все
Если нужно сделать замену
некоторых ситуациях быстрее$В$2:$С$9 вверх или вниз, в аргументе «ссылка». «ссылка» должен быть и на 2
=OFFSET(‘Ex03’!$C$1,0,0,COUNTA(‘Ex03’!$C:$C),1) сдвиг по столбцам такой синтаксис:
значения к общей правильно. Действуем по отправной точки. Если равно не понял случаев быстрее оказывается на «плавающее окно» символы пробела пустой без учёта регистра, и проще использовать. чтобы левая верхняяФункция СМЕЩ фактически не ссылкой на ячейку столбца правее ячейки
=СМЕЩ(‘Ex03’!$C$1;0;0;СЧЁТЗ(‘Ex03’!$C:$C);1) равен нулю.
OFFSET(reference,rows,cols,[height],[width]) сумме, обычно требуется порядку. Наша цель вправо – положительное до конца
заменить медленную
— диапазон заданного строкой, а вторая используйте функцию команды
Добавив смещение по строкам
ячейка результата ссылалась передвигает никаких ячеек или на диапазонA2
Если к списку вАргументСМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;[высота];[ширина])
planetaexcel.ru
Функция СМЕЩ в Excel, которая может заменить СУММ и сэкономить время
не больше часа. – сосчитать сумму, значение; влево –, т.е. функция OffsetСМЕЩ размера, расположенный в функция
REPLACEFind (+1), получим результат на нужную ячейку и не меняет смежных ячеек, в. Функция столбце C добавить
СМЕЩ и ее синтаксис
heightreference Зато в будущем поэтому функция СУММ отрицательное. задаёт для дальнейшихна неволатильную определенном месте листа.LEN(ЗАМЕНИТЬ).
- / 99: (по умолчанию =0);
- выделения; она только противном случае функцияOFFSET ещё один месяц,(высота) равен 1(ссылка) – ячейка это помогает существенно будет внешней.Высота и ширина: параметры манипуляция начальным тотИНДЕКС
- Синтаксис у функции(ДЛСТР) находит длинуПри помощи функцииReplace=СУММ(СМЕЩ($B$2;смещ_по_столбцам возвращает ссылку. Функция СМЕЩ возвращает значение
- (СМЕЩ) возвращает одну он автоматически появится строке. или диапазон смежных экономить время наПервым числом в СУММ диапазона, который будет диапазон, который былили другие аналоги. следующий: обработанной строки. ДлинаSUBSTITUTE
(Найти/Заменить), когда необходимо1– аналогично СМЕЩ может использоваться ошибки #ЗНАЧ!. ячейку, потому что в выпадающем спискеАргумент
ячеек.
Пример функции СМЕЩ
работе. Мы рассмотрели будет ссылка на возвращен функцией СМЕЩ. выбран или указанivansamsonov=СМЕЩ(Точка_отсчета; Сдвиг_вниз; Свиг_вправо; Высота; оказывается на 2(ПОДСТАВИТЬ), Вы можете сделать замену чувствительную;0;8;2))
смещ_по_строкам, с любой функцией,Смещ_по_строкам заданная высота и в ячейке F2,widthrows простейший пример с первоначальную ячейку, с Если нам нужна ранее? Не понимаю): Доброго времени суток. Ширина) символа короче, значит создать заголовок отчёта,
к регистру.диапазон будет модифицировантолько смещение отсчитывается в которой ожидается Обязательный. Количество строк, которые ширина равны 1. который использует имя(ширина) равен 1(смещ_по_строкам) – может небольшими числами, но которой пойдет подсчет. одна ячейка, мы Можно какой-нибудь файл-примерВыручайте, товарищи. СрочноЭта функция на выходе в строке было который автоматически изменяетсяИтак, давайте внимательно изучим в по столбцам (по аргумент типа «ссылка».
требуется отсчитать вверх=OFFSET(A2,3,2,1,1)MonthList столбцу. быть положительным (вниз многие предприятия работают Это D5. После ставим цифры 1
простенький? нужно разобраться с дает ссылку на 2 пробела. в зависимости от информацию и примеры$В$3:$С$9 умолчанию =0);
Например, с помощью или вниз, чтобы=СМЕЩ(A2;3;2;1;1), как источник данных.=OFFSET(C1,F2,0,1,1) от начальной ссылки) с огромными массивами, нее записываем команду
и 1. Еслиvikttur функцией СМЕЩЕНИЕ (OFFSET). диапазон, сдвинутый относительно=LEN(B3)-LEN(SUBSTITUTE(B3,» «,»»)) того, какой регион
по.высота формулы СУММ(СМЕЩ(C2;1;2;3;1)) вычисляется левая верхняя ячейкаРезультат:В этом заключительном примере=СМЕЩ(C1;F2;0;1;1)
или отрицательным (вверх и пользоваться командой СМЕЩ, которая будет нужна таблица, задаем
: Что непонятно?Я потратил уже некоей стартовой ячейки=ДЛСТР(B3)-ДЛСТР(ПОДСТАВИТЬ(B3;» «;»»)) выбран. В этомSUBSTITUTEПусть имеется диапазон с- число строк суммарное значение диапазона, результата ссылалась наФункцияOFFSETВ ячейке H2 находится
от начальной ссылки). СУММ и уж, находиться внутри СУММ. иные значения, напримерСмещаемся от ячейки более 4 часов
(В ячейке D3 функция примере заголовок отчёта(ПОДСТАВИТЬ). Если у числами ( возвращаемой ссылки. Значение состоящего из трех
нужную ячейку. Например,OFFSET(СМЕЩ) работает вместе формула, очень похожаяcols тем более, калькулятором,
Начинаем заполнять синтаксис функции 3 и 4, А1 на 2 на просмотры видеоТочка_отсчетаSUBSTITUTE введён в ячейке Вас есть другиеА2:А10 аргумента «высота» должно строк и одного если в качестве(СМЕЩ) на следующем с на предыдущую, которая(смещ_по_столбцам) — может совсем неразумно. СМЕЩ. Первое –
exceltable.com
6 и 8
Вчера в марафоне 30 функций Excel за 30 дней мы заменяли текстовые строки с помощью функции REPLACE (ЗАМЕНИТЬ) и выяснили, что вставлять символы она тоже умеет.
В 26-й день марафона мы будем изучать функцию OFFSET (СМЕЩ). Она возвращает ссылку заданного размера, отстоящую от стартовой ссылки на указанное количество строк и столбцов.
Итак, давайте изучим информацию и примеры применения функции OFFSET (СМЕЩ), а если у Вас есть дополнительные сведения и свои примеры, пожалуйста, делитесь ими в комментариях.
Содержание
- Функция 26: OFFSET (СМЕЩ)
- Как можно использовать функцию OFFSET (СМЕЩ)?
- Синтаксис OFFSET (СМЕЩ)
- Ловушки OFFSET (СМЕЩ)
- Пример 1: Находим сумму продаж для выбранного месяца
- Пример 2: Суммируем продажи за выбранные месяцы
- Пример 3: Создаем динамический диапазон, основанный на подсчете
- Пример 4: Суммируем продажи за последние n месяцев
Функция 26: OFFSET (СМЕЩ)
Функция OFFSET (СМЕЩ) возвращает ссылку, смещённую от заданной ссылки на определенное количество строк и столбцов.
Как можно использовать функцию OFFSET (СМЕЩ)?
Функция OFFSET (СМЕЩ) может возвратить ссылку на диапазон, а также работать в сочетании с другими функциями. Используйте её для того, чтобы:
- Находить суммы продаж для выбранного месяца.
- Суммировать данные о продажах за выбранные месяцы.
- Создавать динамические диапазоны на основе подсчета.
- Суммировать продажи за последние n месяцев.
Синтаксис OFFSET (СМЕЩ)
Функция OFFSET (СМЕЩ) имеет вот такой синтаксис:
OFFSET(reference,rows,cols,[height],[width])
СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;[высота];[ширина])
- reference (ссылка) – ячейка или диапазон смежных ячеек.
- rows (смещ_по_строкам) – может быть положительным (вниз от начальной ссылки) или отрицательным (вверх от начальной ссылки).
- cols (смещ_по_столбцам) — может быть положительным (вправо от начальной ссылки) или отрицательным (влево от начальной ссылки).
- height (высота) – количество строк в возвращаемой ссылке, должен быть положительным.
- width (ширина) – количество столбцов в возвращаемой ссылке, должен быть положительным.
- Если аргументы height (высота) или width (ширина) не указаны, используются размеры исходной ссылки.
Ловушки OFFSET (СМЕЩ)
Функция OFFSET (СМЕЩ) пересчитывается каждый раз при любом изменении значений на листе Excel. Используя эту функцию во многих формулах, можно сильно замедлить работу. Вместо OFFSET (СМЕЩ) Вы можете использовать функцию INDEX (ИНДЕКС), чтобы возвратить ссылку. INDEX (ИНДЕКС) пересчитывает результат только при изменении своих аргументов.
Пример 1: Находим сумму продаж для выбранного месяца
При помощи функции OFFSET (СМЕЩ) Вы можете возвращать ссылку на диапазон, отталкиваясь от стартовой ссылки. В этом примере мы хотим получить сумму продаж в ячейке G2.
- Стартовая ссылка – это ячейка C1.
- Количество строк для сдвига вводится в ячейке F2.
- Суммы продаж находятся в столбце C, поэтому сдвиг по столбцам равен нулю.
- Аргумент height (высота) равен 1 строке.
- Аргумент width (ширина) равен 1 столбцу.
=OFFSET(C1,F2,0,1,1)
=СМЕЩ(C1;F2;0;1;1)
В ячейке H2 находится формула, очень похожая на предыдущую, которая возвращает имя месяца. Единственное отличие – это сдвиг по столбцам: 1 вместо 0.
=OFFSET(C1,F2,1,1,1)
=СМЕЩ(C1;F2;1;1;1)
Замечание: В данном примере аргументы height (высота) и width (ширина) можно не указывать, поскольку нам нужна ссылка того же размера, что и стартовая.
Пример 2: Суммируем продажи за выбранные месяцы
В этом примере функция OFFSET (СМЕЩ) возвращает ссылку на данные о продажах за выбранный месяц, а функция SUM (СУММ) подсчитывает сумму для этого диапазона. В ячейке B10 указан номер выбранного месяца 3, следовательно, результатом будет сумма продаж в марте (Mar).
- Начальная ссылка A3:A6.
- Сдвиг по строкам равен нулю (если ноль вообще не указать, результат будет тот же).
- Сдвиг по столбцам соответствует значению ячейки B10.
- Высота и ширина не указаны, поскольку итоговый диапазон должен быть того же размера, что и начальный.
=SUM(OFFSET(A3:A6,0,B10))
=СУММ(СМЕЩ(A3:A6;0;B10))
Пример 3: Создаем динамический диапазон, основанный на подсчете
Вы можете использовать функцию OFFSET (СМЕЩ), чтобы создать динамический диапазон. В этом примере мы создали именованный диапазон MonthList с такой формулой:
=OFFSET('Ex03'!$C$1,0,0,COUNTA('Ex03'!$C:$C),1)
=СМЕЩ('Ex03'!$C$1;0;0;СЧЁТЗ('Ex03'!$C:$C);1)
Если к списку в столбце C добавить ещё один месяц, он автоматически появится в выпадающем списке в ячейке F2, который использует имя MonthList, как источник данных.
Пример 4: Суммируем продажи за последние n месяцев
В этом заключительном примере OFFSET (СМЕЩ) работает вместе с SUM (СУММ) и COUNT (СЧЁТ), чтобы показать сумму за последние n месяцев. Как только добавляются новые значения, результат формулы будет автоматически скорректирован, чтобы включить величину продаж за последний месяц. В ячейке E2 количество месяцев равно 2, поэтому складываться будут суммы за август (Aug-10) и сентябрь (Sep-10).
- Начальная ссылка – ячейка C2.
- Количество строк для сдвига рассчитывается так:
- подсчитываем количество чисел в столбце C,
- вычитаем из результата количество месяцев, указанное в ячейке E3,
- и прибавляем 1.
- Продажи находятся в столбце C, поэтому сдвиг по столбцам равен нулю.
- Высота введена в ячейке E3.
- Ширина равна 1 столбцу.
=SUM(OFFSET(C2,COUNT(C:C)-E3+1,0,E3,1))
=СУММ(СМЕЩ(C2;СЧЁТ(C:C)-E3+1;0;E3;1))
Оцените качество статьи. Нам важно ваше мнение:
Бывают ситуации, когда заранее не известно какие именно ячейки на листе нужно подсчитывать. Например, представим, что нам нужно реализовать в Excel небольшой транспортный калькулятор для расчета расстояния проезда от одной заданной станции до другой:
В выпадающих списках в желтых ячейках F3 и F5 пользователь выбирает станции отправления и назначения, а в зеленой ячейке F7 должна подсчитываться сумма всех ячеек в заданном «окне» на листе. Для проезда от Останкино до Ховрино, как на рисунке, например, нужно будет просуммировать все ячейки в обведенном зеленым пунктиром диапазоне.
Как считать суммму — понятно, а вот как определить диапазон ячеек, которые нужно просуммировать? Ведь при выборе станций он будет постоянно трансформироваться?
В подобной ситуации может помочь функция СМЕЩ (OFFSET), способная выдать ссылку на «плавающее окно» — диапазон заданного размера, расположенный в определенном месте листа. Синтаксис у функции следующий:
=СМЕЩ(Точка_отсчета; Сдвиг_вниз; Свиг_вправо; Высота; Ширина)
Эта функция на выходе дает ссылку на диапазон, сдвинутый относительно некоей стартовой ячейки (Точка_отсчета) на определенное количество строк вниз и столбцов вправо. Причем размер диапазона («окна») тоже может задаваться параметрами Высота и Ширина.
В нашем случае, если взять за точку отсчета ячейку А1, то:
- Точка отсчета = А1
- Сдвиг_вниз = 4
- Свиг_вправо = 2
- Высота = 4
- Ширина = 1
Чтобы рассчитать необходимые для СМЕЩ аргументы, давайте сначала применим функцию ПОИСКПОЗ (MATCH), которую мы уже разбирали, для вычисления позиций станций отправления и назначения:
И, наконец, используем функцию СМЕЩ, чтобы получить ссылку на нужное «окно» на листе и просуммировать все ячейки из него:
Вот и все, задача решена
P.S.
В отличие от большинства остальных функций Excel, СМЕЩ является волатильной (volatile) или, как еще говорят, «летучей» функцией. Обычные функции пересчитываются только в том случае, если меняются ячейки с их аргументами. Волатильные же пересчитываются каждый раз при изменении любой ячейки. Само-собой, это отрицательно сказывается на быстродействии. В больших тяжелых таблицах разница по скорости работы книги может быть очень ощутимой (в разы). Для некоторых случаев быстрее оказывается заменить медленную СМЕЩ на неволатильную ИНДЕКС или другие аналоги.
Ссылки по теме
- Поиск позиции заданного элемента в списке функцией ПОИСКПОЗ (MATCH)
- 4 способа создать выпадающий список в ячейке листа Excel
- 5 вариантов применения функции ИНДЕКС
Функция
СМЕЩ(
)
, английский вариант 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
.