Ромич Пользователь Сообщений: 85 |
Народ, прошу прощения за назойливость, но вот интересно стало, можно ли по имени(значению) получать адрес, а лучше даже ссылку на эту ячейку? Ну,например, на одном листе есть ячейка(А2) со значением 123. А во втором листе при вводе этого значения, например, в столбец ИМЯ, в соседнем столбце получаем ссылку на Лист1!А2 |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Ромич, а Если(..ВПР)? Ща наши киты подключатся, думаю и Индекс порулит… Неисповедимы пути формулистов:-) Только Ким жаловался, что формулисты не в фаворе. Я сам — дурнее всякого примера! … |
Ромич Пользователь Сообщений: 85 |
{quote}{login=KuklP}{date=26.06.2010 08:37}{thema=}{post}Ромич, а Если(..ВПР)? Ща наши киты подключатся, думаю и Индекс порулит… Неисповедимы пути формулистов:-) Только Ким жаловался, что формулисты не в фаворе. |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Ромич, честно каюсь — я не формулист. Как у них в избушке побываю — в шоке! Они там такое мутят, что не пойму сам: то ли я дурак(а это скорее!), то ли они иноПланетяне. Ждем наших уважаемых Формулистов. Хотя … макросом можно. Ща меня ногами формулисты запинают:-). Я сам — дурнее всякого примера! … |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
|
kim Пользователь Сообщений: 3139 Игорь |
Дык автор конкретно формулой вроде не просил… |
Ромич Пользователь Сообщений: 85 |
{quote}{login=Юрий М}{date=26.06.2010 08:56}{thema=}{post}Вот так, например.{/post}{/quote} Юрий, а можно поподробнее об этом макросе?что там к чему? |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
Хм, подробнее… Макрос отслеживает изменения в диапазоне А2:А1000, запускает по этому изменению поиск. Если находит, то в соседнюю ячейку записывает адрес найденной ячейки, если нет — орёт. |
Ромич Пользователь Сообщений: 85 |
{quote}{login=Юрий М}{date=26.06.2010 09:41}{thema=}{post}Хм, подробнее… Макрос отслеживает изменения в диапазоне А2:А1000, запускает по этому изменению поиск. Если находит, то в соседнюю ячейку записывает адрес найденной ячейки, если нет — орёт. а если не в соседнюю ячейку? |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
|
Владимир Пользователь Сообщений: 8196 |
Пока я телился… «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
Ромич Пользователь Сообщений: 85 |
{quote}{login=Юрий М}{date=26.06.2010 10:02}{thema=}{post}Тогда не Offset(0, 1){/post}{/quote} вместо 1 — число шагов до нужного столбца? |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
Точно: (0, 5) на пять столбцов правее в той же строке (ноль). |
Ромич Пользователь Сообщений: 85 |
{quote}{login=Юрий М}{date=26.06.2010 10:18}{thema=}{post}Точно: (0, 5) на пять столбцов правее в той же строке (ноль).{/post}{/quote} Юрий, огромное спасибо! как и остальным форумчанам — с этим сайтом постигать excel и проще, и интереснее и еще в завершение. можно ли сделать получаемый адрес гиперссылкой? |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
{quote}{login=Ромич}{date=26.06.2010 10:23}{thema=Re: }{post}{quote}{login=Юрий М}{date=26.06.2010 10:18}{thema=}{post}Точно: (0, 5) на пять столбцов правее в той же строке (ноль).{/post}{/quote}в завершение. можно ли сделать получаемый адрес гиперссылкой?{/post}{/quote} |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
Судя по всему вопросов больше нет Смотрите с гиперссылкой |
{quote}{login=Юрий М}{date=26.06.2010 11:07}{thema=}{post}Судя по всему вопросов больше нет Смотрите с гиперссылкой{/post}{/quote} Прекрайне благодарен! |
|
Владимир Пользователь Сообщений: 8196 |
Как понять это слово «прекрайне»? Бесконечно… …или крайность, в хорошем смысле слова… «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
|
Ромич Пользователь Сообщений: 85 |
См. значение префикса ПРЕ- |
Ромич Пользователь Сообщений: 85 |
{quote}{login=Юрий М}{date=26.06.2010 10:30}{thema=Re: Re: }{post}{quote}{login=Ромич}{date=26.06.2010 10:23}{thema=Re: }{post}{quote}{login=Юрий М}{date=26.06.2010 10:18}{thema=}{post}Точно: (0, 5) на пять столбцов правее в той же строке (ноль).{/post}{/quote}в завершение. можно ли сделать получаемый адрес гиперссылкой?{/post}{/quote} Юрий, а что нужно дописать в этом макросе,чтобы он выдавал не один адрес, а несколько,списком(если,например,имя встречается неоднократно). |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
А каким образом и куда выводить этот список? |
Ромич Пользователь Сообщений: 85 |
ну,например,так А еще был бы рад, если бы Вы оставили в тексте программы комментарии) |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
А как быть, если в А2 введём новое имя? Может лучше по строке вправо? Тогда всё найденное будет относиться к одному имени в одной строке. |
Ромич Пользователь Сообщений: 85 |
ну,дык, если в А2 вводить новое значение,то предыдущее стоит стереть?и,соответственно, адреса этого имени тоже стираются?или я что-то не так понял? |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
Не так. Ваш последний файл. Ранее для АБВ нашлись три адреса. Затем в А3 ввели новое имя. В В3 отобразился новый адрес. В В4 — осталось значение для ячейки А2. Если мы его очистим — список адресов для А2 будет неполным. Поэтому и предлагаю в строку все адреса для одного значения. Тогда и путаницы не будет никакой.Теперь понятно объяснил? |
Ромич Пользователь Сообщений: 85 |
нет.Имя по задумке вводится ТОЛЬКО в ячейку А2. Ввел,посмотрел(в оригинальном файле еще туча параметров выводится), стер. Если надо,ввел следующий. И еще вопрос.Можно ли указать промежутки поиска(например, чтоб в столбце В отображались адреса в промежутках А2:К200 и АВ2:АХ200, а в столбце С — адреса промежутка L2:AA200)? Ну или что-то в этом роде |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
Если нужно контролировать только одну ячейку — зачем тогда обрабатываем диапазон? Сформулируйте уже условие ЗАНОВО и ОДНОЗНАЧНО. |
Ромич Пользователь Сообщений: 85 |
Хорошо,сейчас попробую. |
Юрий М Модератор Сообщений: 60586 Контакты см. в профиле |
#30 28.06.2010 14:24:50 Уточняемся: |
При использовании формул поиска в Excel (таких как VLOOKUP, XLOOKUP или INDEX / MATCH) цель состоит в том, чтобы найти совпадающее значение и получить это значение (или соответствующее значение в той же строке / столбце) в качестве результата.
Но в некоторых случаях вместо получения значения может потребоваться, чтобы формула возвращала адрес ячейки значения.
Это может быть особенно полезно, если у вас большой набор данных и вы хотите узнать точное положение результата формулы поиска.
В Excel есть несколько функций, которые предназначены именно для этого.
В этом уроке я покажу вам, как вы можете найти и вернуть адрес ячейки вместо значения в Excel по простым формулам.
Поиск и возврат адреса ячейки с помощью функции АДРЕС
Функция АДРЕС в Excel предназначена именно для этого.
Он берет строку и номер столбца и дает вам адрес ячейки этой конкретной ячейки.
Ниже приведен синтаксис функции АДРЕС:
= АДРЕС (row_num, column_num, [abs_num], [a1], [sheet_text])
куда:
- row_num: номер строки ячейки, для которой вы хотите получить адрес ячейки
- column_num: номер столбца ячейки, для которой вы хотите адрес
- [abs_num]: необязательный аргумент, в котором вы можете указать, хотите ли вы, чтобы ссылка на ячейку была абсолютной, относительной или смешанной.
- [a1]: необязательный аргумент, в котором вы можете указать, хотите ли вы использовать ссылку в стиле R1C1 или в стиле A1.
- [sheet_text]: необязательный аргумент, в котором вы можете указать, хотите ли вы добавить имя листа вместе с адресом ячейки или нет.
Теперь давайте возьмем пример и посмотрим, как это работает.
Предположим, что существует набор данных, показанный ниже, где у меня есть идентификатор сотрудника, его имя и его отдел, и я хочу быстро узнать адрес ячейки, в которой находится отдел для идентификатора сотрудника KR256.
Ниже приведена формула, которая сделает это:
= АДРЕС (ПОИСКПОЗ ("KR256"; A1: A20,0); 3)
В приведенной выше формуле я использовал функцию ПОИСКПОЗ, чтобы узнать номер строки, содержащей данный идентификатор сотрудника.
И поскольку отдел находится в столбце C, я использовал 3 в качестве второго аргумента.
Эта формула отлично работает, но у нее есть один недостаток: она не будет работать, если вы добавите строку над набором данных или столбец слева от набора данных.
Это связано с тем, что, когда я указываю второй аргумент (номер столбца) как 3, он жестко запрограммирован и не изменится.
Если я добавлю какой-либо столбец слева от набора данных, формула будет считать 3 столбца с начала рабочего листа, а не с начала набора данных.
Итак, если у вас есть фиксированный набор данных и вам нужна простая формула, это сработает.
Но если вам нужно, чтобы это было более надежным, используйте тот, который описан в следующем разделе.
Поиск и возврат адреса ячейки с помощью функции CELL
Хотя функция АДРЕС была создана специально, чтобы дать вам ссылку на ячейку с указанным номером строки и столбца, есть еще одна функция, которая также делает это.
Это называется функцией ЯЧЕЙКА (и она может дать вам гораздо больше информации о ячейке, чем функция АДРЕС).
Ниже приведен синтаксис функции ЯЧЕЙКА:
= ЯЧЕЙКА (тип_информации; [ссылка])
куда:
- info_type: информация о нужной ячейке. Это может быть адрес, номер столбца, имя файла и т. Д.
- [Справка]: Необязательный аргумент, в котором вы можете указать ссылку на ячейку, для которой вам нужна информация о ячейке.
Теперь давайте посмотрим на пример, в котором вы можете использовать эту функцию для поиска и получения ссылки на ячейку.
Предположим, у вас есть набор данных, показанный ниже, и вы хотите быстро узнать адрес ячейки, в которой находится отдел для идентификатора сотрудника KR256.
Ниже приведена формула, которая сделает это:
= ЯЧЕЙКА ("адрес", ИНДЕКС ($ A $ 1: $ D $ 20, ПОИСКПОЗ ("KR256", $ A $ 1: $ A $ 20,0), 3))
Приведенная выше формула довольно проста.
Я использовал формулу ИНДЕКС в качестве второго аргумента, чтобы получить отдел для идентификатора сотрудника KR256.
А затем просто обернул его в функцию CELL и попросил вернуть адрес ячейки с этим значением, которое я получаю из формулы ИНДЕКС.
Теперь вот секрет того, почему это работает — формула ИНДЕКС возвращает значение подстановки, когда вы даете ей все необходимые аргументы. Но в то же время он также вернет ссылку на эту результирующую ячейку.
В нашем примере формула ИНДЕКС возвращает «Продажи» в качестве результирующего значения, но в то же время вы также можете использовать ее, чтобы дать вам ссылку на ячейку этого значения вместо самого значения.
Обычно, когда вы вводите формулу ИНДЕКС в ячейку, она возвращает значение, потому что это именно то, что от нее ожидается. Но в сценариях, где требуется ссылка на ячейку, формула ИНДЕКС даст вам ссылку на ячейку.
В этом примере это именно то, что он делает.
И самое лучшее в использовании этой формулы — это то, что она не привязана к первой ячейке на листе. Это означает, что вы можете выбрать любой набор данных (который может находиться в любом месте рабочего листа), использовать формулу ИНДЕКС для регулярного поиска, и он все равно даст вам правильный адрес.
А если вы вставите дополнительную строку или столбец, формула изменится соответствующим образом, чтобы дать вам правильный адрес ячейки.
Итак, это две простые формулы, которые вы можете использовать для поиска и найти и вернуть адрес ячейки вместо значения в Excel.
Надеюсь, вы нашли этот урок полезным.
Skip to content
В этом руководстве показано, как использовать ИНДЕКС и ПОИСКПОЗ в Excel и чем они лучше ВПР.
В нескольких недавних статьях мы приложили немало усилий, чтобы объяснить основы функции ВПР новичкам и предоставить более сложные примеры формул ВПР опытным пользователям. А теперь я постараюсь если не отговорить вас от использования ВПР, то хотя бы показать вам альтернативный способ поиска нужных значений в Excel.
- Краткий обзор функций ИНДЕКС и ПОИСКПОЗ
- Как использовать формулу ИНДЕКС ПОИСКПОЗ
- ИНДЕКС+ПОИСКПОЗ вместо ВПР?
- Поиск справа налево
- Двусторонний поиск в строках и столбцах
- ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
- Как найти среднее, максимальное и минимальное значение
- Что делать с ошибками поиска?
Для чего это нужно? Потому что функция ВПР имеет множество ограничений, которые могут помешать вам получить желаемый результат во многих ситуациях. С другой стороны, комбинация ПОИСКПОЗ ИНДЕКС более гибкая и имеет много замечательных возможностей, которые во многих отношениях превосходят ВПР.
Функции Excel ИНДЕКС и ПОИСКПОЗ — основы
Поскольку целью этого руководства является демонстрация альтернативного способа выполнения поиска в Excel с использованием комбинации функций ИНДЕКС и ПОИСКПОЗ, мы не будем подробно останавливаться на их синтаксисе и использовании. Тем более, что это подробно рассмотрено в других статьях, ссылки на которые вы можете найти в конце этого руководства. Мы рассмотрим лишь минимум, необходимый для понимания общей идеи, а затем подробно рассмотрим примеры формул, раскрывающие все преимущества использования ПОИСКПОЗ и ИНДЕКС вместо ВПР.
Функция ИНДЕКС
Функция ИНДЕКС (в английском варианте – INDEX) возвращает значение в массиве на основе указанных вами номеров строк и столбцов. Синтаксис функции ИНДЕКС прост:
ИНДЕКС(массив,номер_строки,[номер_столбца])
Вот простое объяснение каждого параметра:
- массив — это диапазон ячеек, именованный диапазон или таблица.
- номер_строки — это номер строки в массиве, из которого нужно вернуть значение. Если этот аргумент опущен, требуется следующий – номер_столбца.
- номер_столбца — это номер столбца, из которого нужно вернуть значение. Если он опущен, требуется номер_строки.
Дополнительные сведения см. в статье Функция ИНДЕКС в Excel .
А вот пример формулы ИНДЕКС в самом простом виде:
=ИНДЕКС(A1:C10;2;3)
Формула выполняет поиск в ячейках с A1 по C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, т. е. в ячейке C2.
Очень легко, правда? Однако при работе с реальными данными вы вряд ли когда-нибудь будете заранее знать, какие строки и столбцы вам нужны. Здесь вам пригодится ПОИСКПОЗ.
Функция ПОИСКПОЗ
Она ищет нужное значение в диапазоне ячеек и возвращает относительное положение этого значения в диапазоне.
Синтаксис функции ПОИСКПОЗ следующий:
ПОИСКПОЗ(искомое_значение, искомый_массив, [тип_совпадения])
- искомое_значение — числовое или текстовое значение, которое вы ищете.
- диапазон_поиска — диапазон ячеек, в которых будем искать.
- тип_совпадения — указывает, следует ли искать точное соответствие или наиболее близкое совпадение:
- 1 или опущено — находит наибольшее значение, которое меньше или равно искомому значению. Требуется сортировка массива поиска в порядке возрастания.
- 0 — находит первое значение, точно равное искомому значению. В комбинации ИНДЕКС/ПОИСКПОЗ вам почти всегда нужно точное совпадение, поэтому вы чаще всего устанавливаете третий аргумент вашей функции в 0.
- -1 — находит наименьшее значение, которое больше или равно искомому значению. Требуется сортировка массива поиска в порядке убывания.
Например, если диапазон B1:B3 содержит значения «яблоки», «апельсины», «лимоны», приведенная ниже формула возвращает число 3, поскольку «лимоны» — это третья по счету запись в этом диапазоне:
=ПОИСКПОЗ(«лимоны»;B1:B3;0)
Дополнительные сведения см . в статье Функция ПОИСКПОЗ в Excel .
На первый взгляд полезность функции ПОИСКПОЗ может показаться сомнительной. Кого волнует положение значения в диапазоне? Что мы действительно хотим определить, так это само значение.
Однако, относительная позиция искомого значения (т. е. номера строки и столбца, в которых оно находится) — это именно то, что нам нужно указать для аргументов номер_строки и номер_столбца функции ИНДЕКС. Как вы помните, ИНДЕКС может найти значение на пересечении заданной строки и столбца, но сама не может определить, какую именно строку и столбец ей нужно выбрать.
Вот поэтому совместное использование ИНДЕКС и ПОИСКПОЗ открывает перед нами массу возможностей для поиска в Excel.
Как использовать формулу ИНДЕКС ПОИСКПОЗ в Excel
Теперь, когда вы знаете основы, я считаю, что вы уже начали понимать, как ПОИСКПОЗ и ИНДЕКС работают вместе. Короче говоря, ИНДЕКС извлекает нужное значение по номерам столбцов и строк, а ПОИСКПОЗ предоставляет ей эти номера. Вот и все!
Для вертикального поиска вы используете функцию ПОИСКПОЗ только для определения номера строки, указывая диапазон столбцов непосредственно в самой формуле:
ИНДЕКС ( столбец для возврата значения ; ПОИСКПОЗ ( искомое значение ; столбец для поиска ; 0))
Все еще не совсем понимаете эту логику? Возможно, будет проще разобрать на примере. Предположим, у вас есть список национальных столиц и их население:
Чтобы найти население определенной столицы, скажем, Индии, используйте следующую формулу ПОИСКПОЗ ИНДЕКС:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(“Индия”;A2:A10;0))
Теперь давайте проанализируем, что на самом деле делает каждый компонент этой формулы:
- Функция ПОИСКПОЗ ищет искомое значение «Индия» в диапазоне A2:A10 и возвращает число 2, поскольку это слово занимает второе место в массиве поиска.
- Этот номер поступает непосредственно в аргумент номер_строки функции ИНДЕКС, предписывая вернуть значение из этой строки.
Таким образом, приведенная выше формула превращается в ИНДЕКС(C2:C10;2), которая означает, что нужно искать в ячейках от C2 до C10 и извлекать значение из второй ячейки в этом диапазоне, то есть из C3, потому что мы начинаем отсчет со второй строки.
Но указывать название города в формуле не совсем правильно, так как для каждого нового поиска придется корректировать эту формулу. Введите его в какую-нибудь отдельную ячейку, скажем, F1, укажите ссылку на ячейку для ПОИСКПОЗ, и вы получите формулу динамического поиска:
=ИНДЕКС(C2:C10;ПОИСКПОЗ(F1;A2:A10;0))
Важное замечание! Количество строк в аргументе массив функции ИНДЕКС должно совпадать с количеством строк в аргументе просматриваемый_массив в ПОИСКПОЗ, иначе формула выдаст неверный результат.
Вы спросите: «А почему бы нам просто не использовать обычную формулу ВПР? Какой смысл тратить время на то, чтобы разобраться в хитросплетениях ИНДЕКС ПОИСКПОЗ в Excel?»
Вот как это будет выглядеть:
=ВПР(F1; A2:C10; 3; 0)
Конечно, так проще. Но этот наш элементарный пример предназначен только для демонстрационных целей, чтобы вы поняли, как именно функции ИНДЕКС и ПОИСКПОЗ работают вместе. Действительно, ВПР была бы здесь более уместна. Другие примеры, которые вы найдёте ниже, покажут вам реальную силу этой комбинации, которая легко справляется со многими сложными задачами, когда ВПР будет бессильна.
ИНДЕКС+ПОИСКПОЗ вместо ВПР?
Решая, какую функцию использовать для вертикального поиска, большинство знатоков Excel сходятся во мнении, что ПОИСКПОЗ+ИНДЕКС намного лучше, чем ВПР. Однако многие до сих пор остаются с ВПР, во-первых, потому что это проще, а, во-вторых, потому что они не до конца понимают все преимущества использования формулы ПОИСКПОЗ ИНДЕКС в Excel. Без такого понимания никто не захочет тратить свое время на изучение более сложного синтаксиса.
Ниже я укажу на ключевые преимущества ИНДЕКС ПОИСКПОЗ перед ВПР, а уж вам решать, является ли это достойным дополнением к вашему арсеналу знаний в Excel.
4 основные причины использовать ИНДЕКС ПОИСКПОЗ вместо ВПР
- Поиск справа налево. Как известно любому образованному пользователю, ВПР не может искать влево. Это означает, что искомое значение всегда должно находиться в крайнем левом столбце таблицы. А извлекать нужное значение мы будем из столбца, который находится правее. ИНДЕКС+ПОИСКПОЗ может легко выполнять поиск влево! Здесь это показано в действии: Как выполнить поиск значения слева в Excel .
- Можно безопасно вставлять или удалять столбцы. Формулы ВПР не работают или выдают неверные результаты, когда новый столбец удаляется из таблицы поиска или добавляется в нее, поскольку синтаксис ВПР требует указания порядкового номера столбца, из которого вы хотите извлечь данные. Естественно, когда вы добавляете или удаляете столбцы, этот номер в формуле автоматически не меняется, а нужный столбец уже оказывается на новом месте.
С функциями ИНДЕКС и ПОИСКПОЗ вы указываете диапазон возвращаемых столбцов, а не номер одного из них. В результате вы можете вставлять и удалять столько столбцов, сколько хотите, не беспокоясь об обновлении каждой связанной с ними формулы.
- Нет ограничений на размер искомого значения. При использовании функции ВПР общая длина ваших критериев поиска не может превышать 255 символов, иначе вы получите ошибку #ЗНАЧ!. Таким образом, если ваш набор данных содержит длинные строки, ИНДЕКС ПОИСКПОЗ — единственное работающее решение.
- Более высокая скорость обработки. Если ваши таблицы относительно небольшие, вряд ли будет какая-то существенная разница в производительности Excel. Но если ваши рабочие листы содержат сотни или тысячи строк и, следовательно, сотни или тысячи формул, ИНДЕКС ПОИСКПОЗ будет работать намного быстрее, чем ВПР. Причина в том, что Excel будет обрабатывать только столбцы поиска и возврата, а не весь массив таблицы.
Влияние ВПР на производительность Excel может быть особенно заметным, если ваша книга содержит сложные формулы массива. Чем больше значений содержит ваш массив и чем больше формул массива содержится в книге, тем медленнее работает Excel.
ИНДЕКС ПОИСКПОЗ в Excel – примеры формул
Уяснив, почему все же стоит изучать ИНДЕКС ПОИСКПОЗ, давайте перейдем к самому интересному и посмотрим, как можно применить теоретические знания на практике.
Формула для поиска справа налево
Как уже упоминалось, ВПР не может получать значения слева от столбца поиска. Таким образом, если ваши значения поиска не находятся в самом левом столбце, нет никаких шансов, что формула ВПР принесет вам желаемый результат. Функция ПОИСКПОЗ ИНДЕКС в Excel более универсальна и не имеет особого значения, где расположены столбцы поиска и возврата.
Для этого примера мы добавим столбец «Ранг» слева от нашей основной таблицы и попытаемся выяснить, какое место занимает столица России по численности населения среди других перечисленных столиц.
Записав искомое значение в G1, используйте следующую формулу для поиска в C2:C10 и возврата соответствующего значения из A2:A10:
=ИНДЕКС(A2:A10; ПОИСКПОЗ(G1;C2:C10;0))
Совет. Если вы планируете использовать формулу ПОИСКПОЗ ИНДЕКС более чем для одной ячейки, обязательно зафиксируйте оба диапазона абсолютными ссылками (например, $A$2:$A$10 и $C$2:$C$10), чтобы они не изменялись при копировании формулы.
Двусторонний поиск в строках и столбцах
В приведенных выше примерах мы использовали ИНДЕКС ПОИСКПОЗ вместо классической функции ВПР, чтобы вернуть значение из точно указанного столбца. Но что, если вам нужно искать в нескольких строках и столбцах? То есть, сначала нужно найти подходящий столбец, а уж потом извлечь из него значение? Другими словами, что, если вы хотите выполнить так называемый матричный или двусторонний поиск?
Это может показаться сложным, но формула очень похожа на базовую функцию ПОИСКПОЗ ИНДЕКС в Excel, но с одним отличием.
Просто используйте две функции ПОИСКПОЗ, вложенных друг в друга: одну – для получения номера строки, а другую – для получения номера столбца.
ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
А теперь, пожалуйста, взгляните на приведенную ниже таблицу и давайте составим формулу двумерного поиска, чтобы найти население (в миллионах) в данной стране за данный год.
С целевой страной в G1 (значение_поиска1) и целевым годом в G2 (значение_поиска2) формула принимает следующий вид:
=ИНДЕКС(B2:D11; ПОИСКПОЗ(G1;A2:A11;0); ПОИСКПОЗ(G2;B1:D1;0))
Как работает эта формула?
Всякий раз, когда вам нужно понять сложную формулу Excel, разделите ее на более мелкие части и посмотрите, что делает каждая отдельная функция:
ПОИСКПОЗ(G1;A2:A11;0); – ищет в A2:A11 значение из ячейки G1 («США») и возвращает его позицию, которая равна 3.
ПОИСКПОЗ(G2;B1:D1;0) – просматривает диапазон B1:D1, чтобы получить позицию значения из ячейки G2 («2015»), которая равна 3.
Найденные выше номера строк и столбцов становятся соответствующими аргументами функции ИНДЕКС:
ИНДЕКС(B2:D11, 3, 3)
В результате вы получите значение на пересечении 3-й строки и 3-го столбца в диапазоне B2:D11, то есть из D4. Несложно?
ИНДЕКС ПОИСКПОЗ для поиска по нескольким условиям
Если у вас была возможность прочитать наши материалы по ВПР в Excel, вы, вероятно, уже протестировали формулу для ВПР с несколькими условиями . Однако существенным недостатком этого подхода является необходимость добавления вспомогательного столбца. Хорошей новостью является то, что функция ПОИСКПОЗ ИНДЕКС в Excel также может выполнять поиск по нескольким условиям без изменения или реструктуризации исходных данных!
Вот общая формула ИНДЕКС ПОИСКПОЗ с несколькими критериями:
{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}
Примечание. Это формула массива , которую необходимо вводить с помощью сочетания клавиш Ctrl + Shift + Enter
.
Предположим, что в таблице ниже вы хотите найти значение на основе двух критериев: Покупатель и Товар.
Следующая формула ИНДЕКС ПОИСКПОЗ отлично работает:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; (F1=A2:A10) * (F2=B2:B10); 0))
Где C2:C10 — это диапазон, из которого возвращается значение, F1 — это критерий1, A2:A10 — это диапазон для сравнения с критерием 1, F2 — это критерий 2, а B2:B10 — это диапазон для сравнения с критерием 2.
Не забудьте правильно ввести формулу, нажав Ctrl + Shift + Enter, и Excel автоматически заключит ее в фигурные скобки, как показано на скриншоте ниже:
Рис5
Если вы не хотите использовать формулы массива, добавьте в формулу в F4 еще одну функцию ИНДЕКС и завершите ее ввод обычным нажатием Enter:
=ИНДЕКС(C2:C10; ПОИСКПОЗ(1; ИНДЕКС((F1=A2:A10) * (F2=B2:B10); 0; 1); 0))
Разберем пошагово, как это работает.
Здесь используется тот же подход, что и в обычном сочетании ИНДЕКС ПОИСКПОЗ, где просматривается один столбец. Чтобы оценить несколько критериев, вы создаете два или более массива значений ИСТИНА и ЛОЖЬ, которые представляют совпадения и несовпадения для каждого отдельного критерия, а затем перемножаете соответствующие элементы этих массивов. Операция умножения преобразует ИСТИНА и ЛОЖЬ в 1 и 0 соответственно и создает массив, в котором единицы соответствуют строкам, которые удовлетворяют всем условиям. Функция ПОИСКПОЗ со значением поиска 1 находит первую «1» в массиве и передает ее позицию в ИНДЕКС, которая возвращает значение в этой позиции из указанного столбца.
Вторая формула без массива основана на способности функции ИНДЕКС работать с массивами. Второй вложенный ИНДЕКС имеет 0 в номер_строки , так что он будет передавать весь массив столбцов в ПОИСКПОЗ.
Среднее, максимальное и минимальное значение при помощи ИНДЕКС ПОИСКПОЗ
Microsoft Excel имеет специальные функции для поиска минимального, максимального и среднего значения в диапазоне. Но что, если вам нужно получить значение из другой ячейки, связанной с этими значениями? Например, получить название города с максимальным населением или узнать товар с минимальными продажами? В этом случае используйте функцию МАКС , МИН или СРЗНАЧ вместе с ИНДЕКС ПОИСКПОЗ.
Максимальное значение.
Предположим, нам нужно в списке городов найти столицу с самым большим населением. Чтобы найти наибольшее значение в столбце С и вернуть соответствующее ему значение из столбца В, находящееся в той же строке, используйте эту формулу:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(МАКС(C2:C10); C2:C10; 0))
Скриншот с примером находится чуть ниже.
Минимальное значение
Теперь найдём город с самым маленьким населением в списке. Чтобы найти наименьшее число в столбце С и получить соответствующее ему значение из столбца В:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(МИН(C2:C10); C2:C10; 0))
Ближайшее к среднему
Теперь мы находим город, население которого наиболее близко к среднему значению. Чтобы вычислить позицию, наиболее близкую к среднему значению показателя, рассчитанному из D2:D10, и получить соответствующее значение из столбца C, используйте следующую формулу:
=ИНДЕКС(B2:B10; ПОИСКПОЗ(СРЗНАЧ(C2:C10); C2:C10; -1 ))
В зависимости от того, как организованы ваши данные, укажите 1 или -1 для третьего аргумента (тип_совпадения) функции ПОИСКПОЗ:
- Если ваш столбец поиска (столбец D в нашем случае) отсортирован по возрастанию , поставьте 1. Формула вычислит наибольшее значение, которое меньше или равно среднему значению.
- Если ваш столбец поиска отсортирован по убыванию , введите -1. Формула вычислит наименьшее значение, которое больше или равно среднему значению.
- Если ваш массив поиска содержит значение , точно равное среднему, вы можете ввести 0 для точного совпадения. Никакой сортировки не требуется.
В нашем примере данные в столбце D отсортированы в порядке убывания, поэтому мы используем -1 для типа соответствия. В результате мы получаем «Токио», так как его население (13 189 000) является ближайшим, превышающим среднее значение (12 269 006).
Что делать с ошибками поиска?
Как вы, наверное, заметили, если формула ИНДЕКС ПОИСКПОЗ в Excel не может найти искомое значение, она выдает ошибку #Н/Д. Если вы хотите заменить это стандартное сообщение чем-то более информативным, оберните формулу ПОИСКПОЗ ИНДЕКС в функцию ЕСНД . Например:
=ЕСНД(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Не найдено»)
И теперь, если кто-то вводит значение, которое не существует в диапазоне поиска, формула явно сообщит пользователю, что совпадений не найдено:
Если вы хотите перехватывать все ошибки, а не только #Н/Д, используйте функцию ЕСЛИОШИБКА вместо ЕСНД:
=ЕСЛИОШИБКА(ИНДЕКС(C2:C10; ПОИСКПОЗ(F1;A2:A10;0)); «Что-то пошло не так!»)
Пожалуйста, имейте в виду, что во многих ситуациях было бы не совсем правильно скрывать все такие ошибки, потому что они предупреждают вас о возможных проблемах в вашей формуле.
Итак, еще раз об основных преимуществах формулы ИНДЕКС ПОИСКПОЗ.
-
Возможен ли «левый» поиск?
-
Повлияет ли на результат вставка и удаление столбцов?
Вы можете вставлять и удалять столько столбцов, сколько хотите. На результат ИНДЕКС ПОИСКПОЗ это не повлияет.
-
Возможен ли поиск по строкам и столбцам?
Можно сначала найти подходящий столбец, а уж потом извлечь из него значение. Общий вид формулы:
ИНДЕКС(массив; ПОИСКПОЗ(значение_поиска1 ; столбец_поиска ; 0); ПОИСКПОЗ(значение_поиска2 ; столбец_поиска ; 0))
Подробную инструкцию смотрите здесь. -
Как сделать поиск ИНДЕКС ПОИСКПОЗ по нескольким условиям?
Можно выполнять поиск по двум или более условиям без добавления дополнительных столбцов. Вот формула массива, которая решит проблему:
{=ИНДЕКС( диапазон_возврата; ПОИСКПОЗ (1; ( критерий1 = диапазон1 ) * ( критерий2 = диапазон2 ); 0))}
Вот как можно использовать ИНДЕКС и ПОИСКПОЗ в Excel. Я надеюсь, что наши примеры формул окажутся полезными для вас.
Вот еще несколько статей по этой теме:
На чтение 3 мин. Просмотров 60 Опубликовано 21.05.2021
Как правило, вы получаете значение ячейки, когда используете формулу для поиска значения в Excel. Но здесь я представлю несколько формул для поиска значения и возврата относительного адреса ячейки.
Найдите значение и верните адрес ячейки с формулой
Содержание
- Найти значение и вернуть адрес ячейки с формулой
- Пакетное преобразование ссылки формулы в абсолютное, относительное, абсолютное значение столбца или абсолютное значение строки
- Относительные статьи
Найти значение и вернуть адрес ячейки с формулой
Чтобы найти значение и вернуть соответствующий адрес ячейки вместо значения ячейки в Excel, вы можете использовать приведенные ниже формулы.
Формула 1 Чтобы вернуть ячейку абсолютная ссылка
Например, у вас есть диапазон данных, как показано на скриншоте ниже, и вы хотите найти продукт AA и вернуть абсолютную ссылку на относительную ячейку.
1. Выберите ячейку и введите в нее AA, здесь я ввожу AA в ячейку A26. См. Снимок экрана:
2. Затем введите эту формулу = ЯЧЕЙКА (“адрес”, ИНДЕКС ($ A $ 18: $ A $ 24, ПОИСКПОЗ (A26, $ A $ 18: $ A $ 24,1))) в ячейке рядом с ячейкой A26 (ячейка, которую вы ввели AA ), затем нажмите клавиши Shift + Ctrl + Enter , и вы получите относительную ссылку на ячейку. См. Снимок экрана:
Совет:
1. В приведенной выше формуле A18: A24 – это диапазон столбцов, в котором находится ваше значение поиска, A26 – значение поиска.
2. Эта формула может найти только первый относительный адрес ячейки, который соответствует значению поиска.
Формула 2 Чтобы вернуть номер строки значения ячейки в таблице
Например, у вас есть данные, как показано на скриншоте ниже, вы хотите найти продукт BB и вернуть все его адреса ячеек в таблице.
1. Введите BB в ячейку, здесь я ввожу BB в ячейку A10. См. Снимок экрана:
2. В ячейке, смежной с ячейкой A10 (ячейка, в которую вы ввели BB), введите эту формулу = МАЛЕНЬКИЙ (ЕСЛИ ($ A $ 10 = $ A $ 2: $ A $ 8, ROW ($ A $ 2: $ A $ -ROW ($ A $ 2) +1), ROW (1: 1)) и нажмите клавиши Shift + Ctrl + Enter , затем перетащите дескриптор автозаполнения вниз, чтобы применить эту формулу, пока не появится # ЧИСЛО! . см. снимок экрана:
3. Затем вы можете удалить # ЧИСЛО !. См. Снимок экрана:
Советы:
1. В этой формуле A10 указывает значение поиска, а A2: A8 – это диапазон столбцов, в котором находится ваше значение поиска.
2. С помощью этой формулы вы можете получить только номера строк относительных ячеек в таблице, кроме заголовка таблицы..
Пакетное преобразование ссылки формулы в абсолютное, относительное, абсолютное значение столбца или абсолютное значение строки
|
Иногда вам может потребоваться преобразовать ссылку на формулу в абсолютную, но в Excel можно использовать только горячие клавиши. преобразовывать ссылки одну за другой, что может напрасно тратить время при наличии сотен формул. Преобразование ссылки Kutools for Excel может пакетно преобразовывать ссылки в выбранных ячейках в относительные, абсолютные по мере необходимости. Нажмите, чтобы получить полнофункциональную 30-дневную бесплатную пробную версию! |
Kutools для Excel: с более чем 300 удобными надстройками Excel, попробуйте бесплатно, без ограничений в течение 30 дней. |
Относительные статьи
- ВПР и возврат нескольких значений по горизонтали
- ВПР и возврат наименьшего значения
- ВПР и вернуть ноль вместо # Н/Д
Функция АДРЕС возвращает адрес определенной ячейки (текстовое значение), на которую указывают номера столбца и строки. К примеру, в результате выполнения функции =АДРЕС(5;7) будет выведено значение $G$5.
Примечание: наличие символов «$» в адресе ячейки $G$5 свидетельствует о том, что ссылка на данную ячейку является абсолютной, то есть не меняется при копировании данных.
Функция АДРЕС в Excel: описание особенностей синтаксиса
Функция АДРЕС имеет следующую синтаксическую запись:
=АДРЕС(номер_строки;номер_столбца;[тип_ссылки];[a1];[имя_листа])
Первые два аргумента данной функции являются обязательными для заполнения.
Описание аргументов:
- Номер_строки – числовое значение, соответствующее номеру строки, в которой находится требуемая ячейка;
- Номер_столбца – числовое значение, которое соответствует номеру столбца, в котором расположена искомая ячейка;
- [тип_ссылки] – число из диапазона от 1 до 4, соответствующее одному из типов возвращаемой ссылки на ячейку:
- абсолютная на всю ячейку, например — $A$4
- абсолютная только на строку, например — A$4;
- абсолютная только на столбец, например — $A4;
- относительная на всю ячейку, например A4.
- [a1] – логическое значение, определяющее один из двух типов ссылок: A1 либо R1C1;
- [имя_листа] – текстовое значение, которое определяет имя листа в документе Excel. Используется для создания внешних ссылок.
Примечания:
- Ссылки типа R1C1 используются для цифрового обозначения столбцов и строк. Для возвращения ссылок такого типа в качестве параметра a1 должно быть явно указано логическое значение ЛОЖЬ или соответствующее числовое значение 0.
- Стиль ссылок в Excel может быть изменен путем установки/снятия флажка пункта меню «Стиль ссылок R1C1», который находится в «Файл – Параметры – Формулы – Работа с Формулами».
- Если требуется ссылка на ячейку, которая находится в другом листе данного документа Excel, полезно использовать параметр [имя_листа], который принимает текстовое значение, соответствующее названию требуемого листа, например «Лист7».
Примеры использования функции АДРЕС в Excel
Пример 1. В таблице Excel содержится ячейка, отображающая динамически изменяемые данные в зависимости от определенных условий. Для работы с актуальными данными в таблице, которая находится на другом листе документа требуется получить ссылку на данную ячейку.
На листе «Курсы» создана таблица с актуальными курсами валют:
На отдельном листе «Цены» создана таблица с товарами, отображающая стоимость в долларах США (USD):
В ячейку D3 поместим ссылку на ячейку таблицы, находящейся на листе «Курсы», в которой содержится информация о курсе валюты USD. Для этого введем следующую формулу: =АДРЕС(3;2;1;1;»Курсы»).
Значение параметров:
- 3 – номер строки, в которой содержится искомая ячейка;
- 2 – номер столбца с искомой ячейкой;
- 1 – тип ссылки – абсолютная;
- 1 – выбор стиля ссылок с буквенно-цифровой записью;
- «Курсы» — название листа, на котором находится таблица с искомой ячейкой.
Для расчета стоимости в рублях используем формулу: =B3*ДВССЫЛ(D3).
Функция ДВССЫЛ необходима для получения числового значения, хранимого в ячейке, на которую указывает ссылка. В результате вычислений для остальных товаров получим следующую таблицу:
Как получить адрес ссылки на ячейку Excel?
Пример 2. В таблице содержатся данные о цене товаров, отсортированные в порядке возрастания стоимости. Необходимо получить ссылки на ячейки с минимальной и максимальной стоимостью товаров соответственно.
Исходная таблица имеет следующий вид:
Для получения ссылки на ячейку с минимальной стоимостью товара используем формулу:
Функция АДРЕС принимает следующие параметры:
- число, соответствующее номеру строки с минимальным значением цены (функция МИН выполняет поиск минимального значения и возвращает его, функция ПОИСКПОЗ находит позицию ячейки, содержащей минимальное значение цены. К полученному значению добавлено 2, поскольку ПОИСКПОЗ осуществляет поиск относительно диапазона выбранных ячеек.
- 2 – номер столбца, в котором находится искомая ячейка.
Аналогичным способом получаем ссылку на ячейку с максимальной ценой товара. В результате получим:
Адрес по номерам строк и столбцов листа Excel в стиле R1C1
Пример 3. В таблице содержится ячейка, данные из которой используются в другом программном продукте. Для обеспечения совместимости необходимо предоставить ссылку на нее в виде R1C1.
Исходная таблица имеет следующий вид:
Для получения ссылки на ячейку B6 используем следующую формулу: =АДРЕС(6;2;1;0).
Аргументы функции:
- 6 – номер строки искомой ячейки;
- 2 – номер столбца, в котором содержится ячейка;
- 1 – тип ссылки (абсолютная);
- 0 – указание на стиль R1C1.
В результате получим ссылку:
Практическое применение функции АДРЕС: Поиск значения в диапазоне таблицы Excel по столбцам и строкам.
Примечание: при использовании стиля R1C1 запись абсолютной ссылки не содержит знака «$». Чтобы отличать абсолютные и относительные ссылки используются квадратные скобки «[]». Например, если в данном примере в качестве параметра тип_ссылки указать число 4, ссылка на ячейку примет следующий вид:
Скачать примеры функции АДРЕС для получения ссылки на ячейку в Excel
Так выглядит абсолютный тип ссылок по строкам и столбцам при использовании стиля R1C1.