Использование функции смещения в Excel

  • Поделись Этим
Hugh West

Сегодня я хотел бы представить вам Функция OFFSET в Excel с 3 примерами из реальной жизни.

Сначала я опишу синтаксис формулы, а затем расскажу о том, как функцию OFFSET можно использовать для решения проблем в реальной жизни.

Введение

Функция OFFSET может вернуть ссылку на ячейку (назовем ее целевой ячейкой) или диапазон (целевой диапазон), который находится на заданном количестве строк и столбцов от другой ячейки (опорной ячейки) или диапазона (опорного диапазона).

На рисунке ниже показано, как использовать функцию OFFSET для возврата ссылки на ячейку (левая часть) или диапазон (правая часть).

Это даст вам интуитивное представление о том, что является целевой ячейкой, а что - опорной.

Ячейка, выделенная зеленым цветом, является целевой ячейкой, а ячейки, выделенные желтым цветом, составляют целевой диапазон.

Ячейки, выделенные синим цветом, являются опорными ячейками.

Рисунок 1

Что означает OFFSET в Excel (синтаксис)?

Вот синтаксис функции смещения: OFFSET (ссылка, строки, столбцы, [высота], [ширина])

Ссылка Требуется. Ссылка - это ячейка или диапазон ячеек, с которых начинается смещение. Обратите внимание, что ячейки должны быть соседними друг с другом, если вы указываете диапазон ячеек.
Строки Требуется . Количество строк, вверх или вниз, ячейка ссылки или верхняя левая ячейка диапазона ссылок. Строки может быть как положительным, так и отрицательным. Посмотрите на левую часть рисунка 1, целевая ячейка будет B2, если я изменю функцию как OFFSET (C3, -1, -1). B2 находится на один ряд выше C3.
Cols Требуется. Количество столбцов слева или справа от ячейки ссылки или верхней левой ячейки диапазона ссылок. Как и в случае с Строки аргумент, значения Cols может быть как положительным, так и отрицательным. Как мы можем написать функцию OFFSET, если мы зададим B4 в качестве опорной ячейки, а C3 - в качестве целевой ячейки? Ответ - OFFSET (B4, -1, 1). Здесь видно, что Cols положителен, а C3 находится на один столбец правее B4.
Высота Дополнительно. Используйте аргумент Height только в том случае, если цель - диапазон. Он указывает, сколько строк включает в себя целевой диапазон. Height должен быть положительным числом. Из правой части рисунка 1 видно, что в целевом диапазоне есть две строки. Поэтому в этом случае мы задаем Height равным 2.
Ширина Дополнительно. Используйте аргумент Width только в том случае, если цель - диапазон (см. правую часть рисунка 1). Он указывает, сколько столбцов содержит целевой диапазон. Ширина должна быть положительным числом.

Ну, а теперь позвольте мне показать вам, как использовать функцию OFFSET для решения проблем в реальной жизни.

Пример 1: Поиск справа налево с помощью комбинации функций OFFSET и MATCH

Хорошо известно, что поиск слева направо можно выполнить только с помощью функции VLOOKUP.

Искомое значение должно быть помещено в первый столбец массива таблицы.

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

Но, объединив OFFSET с функцией Match, можно снять ограничение функции VLOOKUP.

Что такое функция MATCH и как мы можем объединить функцию OFFSET с функцией Match для выполнения поиска?

Функция Match ищет заданный элемент в диапазоне ячеек, а затем возвращает относительное положение этого элемента в диапазоне.

В качестве примера возьмем диапазон B3:B8 с рисунка 2.1 (где показаны доходы разных стран в разные годы).

Формула "=MATCH("USA", B3:B8, 0)" вернет 1 поскольку USA является первым элементом в диапазоне (см. ячейки B10 и C10).

Для другого диапазона C2:F2 формула "=MATCH (2015, C2:F2, 0)" возвращает 3 поскольку 2015 год является третьим элементом в диапазоне (см. ячейки B11 и C11).

Возвращаясь к функции OFFSET.

Если мы зададим ячейку B2 как опорную ячейку и возьмем ячейку E3 как целевую ячейку, как мы можем написать формулу OFFSET?

E3 - это 1 ряд ниже B2 и 3 колонки справа - B2.

Поэтому формулу можно записать как "=OFFSET(B2, 1 , 3 )". Посмотрите внимательно на числа, выделенные красным цветом, можете ли вы обнаружить, что они совпадают?

Это и есть ответ на вопрос - Как совместить функцию OFFSET с функцией Match. Функция Match может быть применена в качестве второго или третьего аргумента функции OFFSET (см. ячейку C13).

В ячейке C14 показано, как использовать функцию VLOOKUP для получения тех же данных.

Перед написанием функции VLOOKUP мы должны знать, что выручка в 2015 году записана в 4-м столбце табличного массива B2:F8.

Это означает, что при использовании функции VLOOKUP мы должны очень хорошо знать структуру данных.

Это еще одно ограничение для VLOOKUP. Однако, используя функцию MATCH в качестве аргумента функции OFFSET, нам не нужно знать индекс столбца.

Это очень полезно, если имеется много столбцов.

Рисунок 2.1

Теперь давайте перейдем к более сложному примеру.

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

И мы хотим получить название компании из известного имени контакта или получить имя контакта из известного адреса электронной почты. Что мы можем сделать?

См. рисунок 2.2, диапазон B5:E8 включает информацию о компании. Введя данные в ячейки C2 и B3, с помощью формулы в красном квадрате, я могу получить название компании, если мне известно имя контакта.

В диапазоне D2:E4 показано, как получить имя контакта с известным адресом электронной почты.

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

Рисунок 2.2

Пример 2: Автоматизация вычислений, сочетающих функции OFFSET и COUNT

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

Предположим, что мы хотим получить последнее число в столбце B, формула будет иметь вид "=OFFSET (C2, 9 , 0)", если мы применим функцию OFFSET.

Из формулы мы можем узнать, что 9 это номер ключа.

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

9 это просто количество ячеек, содержащих числа в столбце C.

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

Например, формула "=COUNT (C3:C11)" подсчитает количество ячеек, содержащих числа в ячейках с C3 по C11.

В нашем случае мы хотим узнать, сколько чисел в целом столбце, поэтому следует использовать ссылку типа C:C, которая включает все строки в столбце C.

Пожалуйста, посмотрите на ячейки G4 и H4, число, возвращаемое "=COUNT(C:C)", в точности равно 9 .

Таким образом, заменив 9 на COUNT(C:C) в приведенной выше функции OFFSET, мы можем получить новую формулу "=OFFSET (C2, COUNT(C:C) , 0)" (в ячейке H5).

Число, которое он возвращает, равно 87000, что в точности соответствует последнему числу в столбце C.

Теперь перейдем к автоматическому вычислению. Предположим, что нам нужна сумма всех чисел в столбце C.

Формула будет иметь вид "=SUM (OFFSET (C2, 1, 0, 9 , 1))", если мы используем SUM вместе с OFFSET.

9 это общее количество строк в диапазоне C3:C11, а также общее количество ячеек, содержащих числа в столбце C.

Поэтому мы можем написать формулу по-новому, например "=SUM (OFFSET (C2,1, 0, COUNT (C:C), 1))".

Посмотрите на ячейки G10 и H10, общее количество зарплат для этих 9 сотрудников составляет $521 700.

Теперь, если вы поместите в ячейку C12 число типа $34,000, оба числа в ячейках G5 и G10 будут изменены на $34,000 и $555,700, соответственно.

Это то, что я называю автоматизацией, поскольку вам не нужно обновлять формулы в ячейках G5 или G10.

Вы должны быть осторожны при использовании функции COUNT, так как функция COUNT возвращает только количество ячеек, содержащих числа.

Например, "=COUNT (B: B)" возвращает 0 вместо 9, поскольку в столбце B нет ячеек, содержащих числа (см. ячейки G3 и H3).

Столбец D включает 10 ячеек, содержащих числа, и число, возвращаемое командой "COUNT (D: D)", также равно 10.

Но если мы хотим получить последнее число в столбце D, как мы это делали для столбца С, то получим число 0 (см. ячейки G8 и H8).

Очевидно, что 0 - это не то, что мы хотим. Что не так? Ячейка D13 находится на расстоянии 11 строк от ячейки D2 вместо 10 строк.

Это также можно продемонстрировать формулой "=OFFSET (D2, COUNT (D: D) + 1 , 0)" в ячейке G7.

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

Рисунок 3

Случай 3: Использование функции OFFSET для создания динамического диапазона

Предположим, что мы хотим построить график ежемесячных продаж единицы продукции компании, и на рисунке 4.1 показаны текущие данные и график, созданный на основе текущих данных.

Каждый месяц под последним числом в колонке C будут добавляться продажи единиц продукции за последний месяц.

Существует ли простой способ автоматического обновления графика?

Ключом к обновлению графика является использование функции OFFSET для создания динамических имен диапазонов для столбца "Единицы продажи".

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

Рисунок 4.1

Чтобы создать динамический диапазон, нажмите кнопку Формулы вкладку и, затем выберите Именной менеджер или Определить имя .

Ниже Новое имя Диалоговое окно появится, если вы нажмете кнопку Определить имя .

Если вы выберете Именной менеджер Вам также необходимо нажать на Новый чтобы сделать следующее Новое имя появится диалоговое окно.

Рисунок 4.2

В " Имя: " следует заполнить имя динамического диапазона, а в поле ввода " Относится к:" В поле ввода нам нужно ввести формулу OFFSET "=OFFSET (Figure4!$C$2, 1, 0, COUNT (!$C: $C), 1)", которая создаст динамический диапазон значений на основе значений Units Sold, введенных в столбце C.

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

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

Поэтому мы выбираем рисунок 4 в разделе " Область применения: ". После нажатия на кнопку OK , создается динамический диапазон.

Он будет автоматически включать все данные о продажах по мере ввода новых данных.

Теперь щелкните правой кнопкой мыши на любой точке графика и выберите "Выбрать данные".

Рисунок 4.3

В подсказанном Выберите данные Источник, выбор Серия1 а затем Редактировать.

Рисунок 4.4

Затем введите "=Figure4!Units", как показано на рисунке 4.5.

Рисунок 4.5

Наконец, давайте попробуем ввести 11 в ячейку C13. Вы можете видеть, что график изменился и значение 11 было включено.

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

Рисунок 4.6

Читать далее...

  • Функция Offset(...) в Excel с примерами

Скачать рабочие файлы

Загрузите рабочие файлы по ссылке ниже.

Excel-Offset-Function.rar

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.