Как получить значение ячейки в excel по номеру строки и столбца

Обновлено: 07.07.2024

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

Зачем нам это? – спросите Вы. Да, потому что ВПР – это не единственная функция поиска в Excel, и её многочисленные ограничения могут помешать Вам получить желаемый результат во многих ситуациях. С другой стороны, функции ИНДЕКС и ПОИСКПОЗ – более гибкие и имеют ряд особенностей, которые делают их более привлекательными, по сравнению с ВПР.

Базовая информация об ИНДЕКС и ПОИСКПОЗ

Так как задача этого учебника – показать возможности функций ИНДЕКС и ПОИСКПОЗ для реализации вертикального поиска в Excel, мы не будем задерживаться на их синтаксисе и применении.

Приведём здесь необходимый минимум для понимания сути, а затем разберём подробно примеры формул, которые показывают преимущества использования ИНДЕКС и ПОИСКПОЗ вместо ВПР.

ИНДЕКС – синтаксис и применение функции

Функция INDEX (ИНДЕКС) в Excel возвращает значение из массива по заданным номерам строки и столбца. Функция имеет вот такой синтаксис:

Каждый аргумент имеет очень простое объяснение:

  • array (массив) – это диапазон ячеек, из которого необходимо извлечь значение.
  • row_num (номер_строки) – это номер строки в массиве, из которой нужно извлечь значение. Если не указан, то обязательно требуется аргумент column_num (номер_столбца).
  • column_num (номер_столбца) – это номер столбца в массиве, из которого нужно извлечь значение. Если не указан, то обязательно требуется аргумент row_num (номер_строки)

Если указаны оба аргумента, то функция ИНДЕКС возвращает значение из ячейки, находящейся на пересечении указанных строки и столбца.

Вот простейший пример функции INDEX (ИНДЕКС):

Формула выполняет поиск в диапазоне A1:C10 и возвращает значение ячейки во 2-й строке и 3-м столбце, то есть из ячейки C2.

Очень просто, правда? Однако, на практике Вы далеко не всегда знаете, какие строка и столбец Вам нужны, и поэтому требуется помощь функции ПОИСКПОЗ.

ПОИСКПОЗ – синтаксис и применение функции

Функция MATCH (ПОИСКПОЗ) в Excel ищет указанное значение в диапазоне ячеек и возвращает относительную позицию этого значения в диапазоне.

Функция MATCH (ПОИСКПОЗ) имеет вот такой синтаксис:

  • lookup_value (искомое_значение) – это число или текст, который Вы ищите. Аргумент может быть значением, в том числе логическим, или ссылкой на ячейку.
  • lookup_array (просматриваемый_массив) – диапазон ячеек, в котором происходит поиск.
  • match_type (тип_сопоставления) – этот аргумент сообщает функции ПОИСКПОЗ, хотите ли Вы найти точное или приблизительное совпадение:
    • 1 или не указан – находит максимальное значение, меньшее или равное искомому. Просматриваемый массив должен быть упорядочен по возрастанию, то есть от меньшего к большему.
    • 0 – находит первое значение, равное искомому. Для комбинации ИНДЕКС/ПОИСКПОЗ всегда нужно точное совпадение, поэтому третий аргумент функции ПОИСКПОЗ должен быть равен 0.
    • -1 – находит наименьшее значение, большее или равное искомому значению. Просматриваемый массив должен быть упорядочен по убыванию, то есть от большего к меньшему.

    На первый взгляд, польза от функции ПОИСКПОЗ вызывает сомнение. Кому нужно знать положение элемента в диапазоне? Мы хотим знать значение этого элемента!

    Позвольте напомнить, что относительное положение искомого значения (т.е. номер строки и/или столбца) – это как раз то, что мы должны указать для аргументов row_num (номер_строки) и/или column_num (номер_столбца) функции INDEX (ИНДЕКС). Как Вы помните, функция ИНДЕКС может возвратить значение, находящееся на пересечении заданных строки и столбца, но она не может определить, какие именно строка и столбец нас интересуют.

    Как использовать ИНДЕКС и ПОИСКПОЗ в Excel

    Теперь, когда Вам известна базовая информация об этих двух функциях, полагаю, что уже становится понятно, как функции ПОИСКПОЗ и ИНДЕКС могут работать вместе. ПОИСКПОЗ определяет относительную позицию искомого значения в заданном диапазоне ячеек, а ИНДЕКС использует это число (или числа) и возвращает результат из соответствующей ячейки.

    Ещё не совсем понятно? Представьте функции ИНДЕКС и ПОИСКПОЗ в таком виде:

    =INDEX( столбец из которого извлекаем ,(MATCH ( искомое значение , столбец в котором ищем ,0))
    =ИНДЕКС( столбец из которого извлекаем ;(ПОИСКПОЗ( искомое значение ; столбец в котором ищем ;0))

    Думаю, ещё проще будет понять на примере. Предположим, у Вас есть вот такой список столиц государств:

    ИНДЕКС и ПОИСКПОЗ в Excel

    Давайте найдём население одной из столиц, например, Японии, используя следующую формулу:

    Теперь давайте разберем, что делает каждый элемент этой формулы:

    Вот такой результат получится в Excel:

    ИНДЕКС и ПОИСКПОЗ в Excel

    Важно! Количество строк и столбцов в массиве, который использует функция INDEX (ИНДЕКС), должно соответствовать значениям аргументов row_num (номер_строки) и column_num (номер_столбца) функции MATCH (ПОИСКПОЗ). Иначе результат формулы будет ошибочным.

    Стоп, стоп… почему мы не можем просто использовать функцию VLOOKUP (ВПР)? Есть ли смысл тратить время, пытаясь разобраться в лабиринтах ПОИСКПОЗ и ИНДЕКС?

    В данном случае – смысла нет! Цель этого примера – исключительно демонстрационная, чтобы Вы могли понять, как функции ПОИСКПОЗ и ИНДЕКС работают в паре. Последующие примеры покажут Вам истинную мощь связки ИНДЕКС и ПОИСКПОЗ, которая легко справляется с многими сложными ситуациями, когда ВПР оказывается в тупике.

    Почему ИНДЕКС/ПОИСКПОЗ лучше, чем ВПР?

    Решая, какую формулу использовать для вертикального поиска, большинство гуру Excel считают, что ИНДЕКС/ПОИСКПОЗ намного лучше, чем ВПР. Однако, многие пользователи Excel по-прежнему прибегают к использованию ВПР, т.к. эта функция гораздо проще. Так происходит, потому что очень немногие люди до конца понимают все преимущества перехода с ВПР на связку ИНДЕКС и ПОИСКПОЗ, а тратить время на изучение более сложной формулы никто не хочет.

    Далее я попробую изложить главные преимущества использования ПОИСКПОЗ и ИНДЕКС в Excel, а Вы решите – остаться с ВПР или переключиться на ИНДЕКС/ПОИСКПОЗ.

    4 главных преимущества использования ПОИСКПОЗ/ИНДЕКС в Excel:

    1. Поиск справа налево. Как известно любому грамотному пользователю Excel, ВПР не может смотреть влево, а это значит, что искомое значение должно обязательно находиться в крайнем левом столбце исследуемого диапазона. В случае с ПОИСКПОЗ/ИНДЕКС, столбец поиска может быть, как в левой, так и в правой части диапазона поиска. Пример: Как находить значения, которые находятся слева покажет эту возможность в действии.

    2. Безопасное добавление или удаление столбцов. Формулы с функцией ВПР перестают работать или возвращают ошибочные значения, если удалить или добавить столбец в таблицу поиска. Для функции ВПР любой вставленный или удалённый столбец изменит результат формулы, поскольку синтаксис ВПР требует указывать весь диапазон и конкретный номер столбца, из которого нужно извлечь данные.

    Например, если у Вас есть таблица A1:C10, и требуется извлечь данные из столбца B, то нужно задать значение 2 для аргумента col_index_num (номер_столбца) функции ВПР, вот так:

    =VLOOKUP("lookup value",A1:C10,2)
    =ВПР("lookup value";A1:C10;2)

    Если позднее Вы вставите новый столбец между столбцами A и B, то значение аргумента придется изменить с 2 на 3, иначе формула возвратит результат из только что вставленного столбца.

    Используя ПОИСКПОЗ/ИНДЕКС, Вы можете удалять или добавлять столбцы к исследуемому диапазону, не искажая результат, так как определен непосредственно столбец, содержащий нужное значение. Действительно, это большое преимущество, особенно когда работать приходится с большими объёмами данных. Вы можете добавлять и удалять столбцы, не беспокоясь о том, что нужно будет исправлять каждую используемую функцию ВПР.

    Предположим, Вы используете вот такую формулу с ВПР, которая ищет в ячейках от B5 до D10 значение, указанное в ячейке A2:

    Формула не будет работать, если значение в ячейке A2 длиннее 255 символов. Вместо неё Вам нужно использовать аналогичную формулу ИНДЕКС/ПОИСКПОЗ:

    4. Более высокая скорость работы. Если Вы работаете с небольшими таблицами, то разница в быстродействии Excel будет, скорее всего, не заметная, особенно в последних версиях. Если же Вы работаете с большими таблицами, которые содержат тысячи строк и сотни формул поиска, Excel будет работать значительно быстрее, при использовании ПОИСКПОЗ и ИНДЕКС вместо ВПР. В целом, такая замена увеличивает скорость работы Excel на 13%.

    Влияние ВПР на производительность Excel особенно заметно, если рабочая книга содержит сотни сложных формул массива, таких как ВПР+СУММ. Дело в том, что проверка каждого значения в массиве требует отдельного вызова функции ВПР. Поэтому, чем больше значений содержит массив и чем больше формул массива содержит Ваша таблица, тем медленнее работает Excel.

    С другой стороны, формула с функциями ПОИСКПОЗ и ИНДЕКС просто совершает поиск и возвращает результат, выполняя аналогичную работу заметно быстрее.

    ИНДЕКС и ПОИСКПОЗ – примеры формул

    Теперь, когда Вы понимаете причины, из-за которых стоит изучать функции ПОИСКПОЗ и ИНДЕКС, давайте перейдём к самому интересному и увидим, как можно применить теоретические знания на практике.

    Как выполнить поиск с левой стороны, используя ПОИСКПОЗ и ИНДЕКС

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

    Функции ПОИСКПОЗ и ИНДЕКС в Excel гораздо более гибкие, и им все-равно, где находится столбец со значением, которое нужно извлечь. Для примера, снова вернёмся к таблице со столицами государств и населением. На этот раз запишем формулу ПОИСКПОЗ/ИНДЕКС, которая покажет, какое место по населению занимает столица России (Москва).

    Как видно на рисунке ниже, формула отлично справляется с этой задачей:

    ИНДЕКС и ПОИСКПОЗ в Excel

    Теперь у Вас не должно возникать проблем с пониманием, как работает эта формула:

    Подсказка: Правильным решением будет всегда использовать абсолютные ссылки для ИНДЕКС и ПОИСКПОЗ, чтобы диапазоны поиска не сбились при копировании формулы в другие ячейки.

    Вычисления при помощи ИНДЕКС и ПОИСКПОЗ в Excel (СРЗНАЧ, МАКС, МИН)

    Вы можете вкладывать другие функции Excel в ИНДЕКС и ПОИСКПОЗ, например, чтобы найти минимальное, максимальное или ближайшее к среднему значение. Вот несколько вариантов формул, применительно к таблице из предыдущего примера:

    1. MAX (МАКС). Формула находит максимум в столбце D и возвращает значение из столбца C той же строки:

    2. MIN (МИН). Формула находит минимум в столбце D и возвращает значение из столбца C той же строки:

    3. AVERAGE (СРЗНАЧ). Формула вычисляет среднее в диапазоне D2:D10, затем находит ближайшее к нему и возвращает значение из столбца C той же строки:

    О чём нужно помнить, используя функцию СРЗНАЧ вместе с ИНДЕКС и ПОИСКПОЗ

    Используя функцию СРЗНАЧ в комбинации с ИНДЕКС и ПОИСКПОЗ, в качестве третьего аргумента функции ПОИСКПОЗ чаще всего нужно будет указывать 1 или -1 в случае, если Вы не уверены, что просматриваемый диапазон содержит значение, равное среднему. Если же Вы уверены, что такое значение есть, – ставьте 0 для поиска точного совпадения.

    • Если указываете 1, значения в столбце поиска должны быть упорядочены по возрастанию, а формула вернёт максимальное значение, меньшее или равное среднему.
    • Если указываете -1, значения в столбце поиска должны быть упорядочены по убыванию, а возвращено будет минимальное значение, большее или равное среднему.

    ИНДЕКС и ПОИСКПОЗ в Excel

    Как при помощи ИНДЕКС и ПОИСКПОЗ выполнять поиск по известным строке и столбцу

    Эта формула эквивалентна двумерному поиску ВПР и позволяет найти значение на пересечении определённой строки и столбца.

    В этом примере формула ИНДЕКС/ПОИСКПОЗ будет очень похожа на формулы, которые мы уже обсуждали в этом уроке, с одним лишь отличием. Угадайте каким?

    Как Вы помните, синтаксис функции INDEX (ИНДЕКС) позволяет использовать три аргумента:

    И я поздравляю тех из Вас, кто догадался!

    Начнём с того, что запишем шаблон формулы. Для этого возьмём уже знакомую нам формулу ИНДЕКС/ПОИСКПОЗ и добавим в неё ещё одну функцию ПОИСКПОЗ, которая будет возвращать номер столбца.

    =INDEX( Ваша таблица ,(MATCH( значение для вертикального поиска , столбец, в котором искать ,0)),(MATCH( значение для горизонтального поиска , строка в которой искать ,0))
    =ИНДЕКС( Ваша таблица ,(MATCH( значение для вертикального поиска , столбец, в котором искать ,0)),(MATCH( значение для горизонтального поиска , строка в которой искать ,0))

    Обратите внимание, что для двумерного поиска нужно указать всю таблицу в аргументе array (массив) функции INDEX (ИНДЕКС).

    А теперь давайте испытаем этот шаблон на практике. Ниже Вы видите список самых населённых стран мира. Предположим, наша задача узнать население США в 2015 году.

    ИНДЕКС и ПОИСКПОЗ в Excel

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

    Итак, начнём с двух функций ПОИСКПОЗ, которые будут возвращать номера строки и столбца для функции ИНДЕКС:

      ПОИСКПОЗ для столбца – мы ищем в столбце B, а точнее в диапазоне B2:B11, значение, которое указано в ячейке H2 (USA). Функция будет выглядеть так:

    Теперь вставляем эти формулы в функцию ИНДЕКС и вуаля:

    Если заменить функции ПОИСКПОЗ на значения, которые они возвращают, формула станет легкой и понятной:

    Эта формула возвращает значение на пересечении 4-ой строки и 5-го столбца в диапазоне A1:E11, то есть значение ячейки E4. Просто? Да!

    ИНДЕКС и ПОИСКПОЗ в Excel

    Поиск по нескольким критериям с ИНДЕКС и ПОИСКПОЗ

    В учебнике по ВПР мы показывали пример формулы с функцией ВПР для поиска по нескольким критериям. Однако, существенным ограничением такого решения была необходимость добавлять вспомогательный столбец. Хорошая новость: формула ИНДЕКС/ПОИСКПОЗ может искать по значениям в двух столбцах, без необходимости создания вспомогательного столбца!

    Предположим, у нас есть список заказов, и мы хотим найти сумму по двум критериям – имя покупателя (Customer) и продукт (Product). Дело усложняется тем, что один покупатель может купить сразу несколько разных продуктов, и имена покупателей в таблице на листе Lookup table расположены в произвольном порядке.

    ИНДЕКС и ПОИСКПОЗ в Excel

    Вот такая формула ИНДЕКС/ПОИСКПОЗ решает задачу:

    Эта формула сложнее других, которые мы обсуждали ранее, но вооруженные знанием функций ИНДЕКС и ПОИСКПОЗ Вы одолеете ее. Самая сложная часть – это функция ПОИСКПОЗ, думаю, её нужно объяснить первой.

    MATCH(1,(A2='Lookup table'!$A$2:$A$13),0)*(B2='Lookup table'!$B$2:$B$13)
    ПОИСКПОЗ(1;(A2='Lookup table'!$A$2:$A$13);0)*(B2='Lookup table'!$B$2:$B$13)

    В формуле, показанной выше, искомое значение – это 1, а массив поиска – это результат умножения. Хорошо, что же мы должны перемножить и почему? Давайте разберем все по порядку:

    • Берем первое значение в столбце A (Customer) на листе Main table и сравниваем его со всеми именами покупателей в таблице на листе Lookup table (A2:A13).
    • Если совпадение найдено, уравнение возвращает 1 (ИСТИНА), а если нет – 0 (ЛОЖЬ).
    • Далее, мы делаем то же самое для значений столбца B (Product).
    • Затем перемножаем полученные результаты (1 и 0). Только если совпадения найдены в обоих столбцах (т.е. оба критерия истинны), Вы получите 1. Если оба критерия ложны, или выполняется только один из них – Вы получите 0.

    Теперь понимаете, почему мы задали 1, как искомое значение? Правильно, чтобы функция ПОИСКПОЗ возвращала позицию только, когда оба критерия выполняются.

    Обратите внимание: В этом случае необходимо использовать третий не обязательный аргумент функции ИНДЕКС. Он необходим, т.к. в первом аргументе мы задаем всю таблицу и должны указать функции, из какого столбца нужно извлечь значение. В нашем случае это столбец C (Sum), и поэтому мы ввели 3.

    И, наконец, т.к. нам нужно проверить каждую ячейку в массиве, эта формула должна быть формулой массива. Вы можете видеть это по фигурным скобкам, в которые она заключена. Поэтому, когда закончите вводить формулу, не забудьте нажать Ctrl+Shift+Enter.

    Если всё сделано верно, Вы получите результат как на рисунке ниже:

    ИНДЕКС и ПОИСКПОЗ в Excel

    ИНДЕКС и ПОИСКПОЗ в сочетании с ЕСЛИОШИБКА в Excel

    Синтаксис функции ЕСЛИОШИБКА очень прост:

    Где аргумент value (значение) – это значение, проверяемое на предмет наличия ошибки (в нашем случае – результат формулы ИНДЕКС/ПОИСКПОЗ); а аргумент value_if_error (значение_если_ошибка) – это значение, которое нужно возвратить, если формула выдаст ошибку.

    Например, Вы можете вставить формулу из предыдущего примера в функцию ЕСЛИОШИБКА вот таким образом:

    =IFERROR(INDEX($A$1:$E$11,MATCH($G$2,$B$1:$B$11,0),MATCH($G$3,$A$1:$E$1,0)),
    "Совпадений не найдено. Попробуйте еще раз!") =ЕСЛИОШИБКА(ИНДЕКС($A$1:$E$11;ПОИСКПОЗ($G$2;$B$1:$B$11;0);ПОИСКПОЗ($G$3;$A$1:$E$1;0));
    "Совпадений не найдено. Попробуйте еще раз!")

    И теперь, если кто-нибудь введет ошибочное значение, формула выдаст вот такой результат:

    ИНДЕКС и ПОИСКПОЗ в Excel

    Надеюсь, что хотя бы одна формула, описанная в этом учебнике, показалась Вам полезной. Если Вы сталкивались с другими задачами поиска, для которых не смогли найти подходящее решение среди информации в этом уроке, смело опишите свою проблему в комментариях, и мы все вместе постараемся решить её.

    В данной статье, на примерах, рассмотрим, что такое функция ИНДЕКС в Excel и как она работает. Данная функция возвращает значение из ячейки, которая находится на пересечении конкретных строки и столбца, в указанном диапазоне. Рассматривать применение функции ИНДЕКС будем на примере таблицы, в которой причислены имена.

    Таблица

    Как вызвать функцию ИНДЕКС в Excel.

    В первую очередь необходимо выбрать ячейку в которой будет находиться функция ИНДЕКС. И соответственно в этой ячейки будет отражен результат работы данной функции. Сделать это очень просто, необходимо выбрать ячейку и щелкнуть по ней левой кнопкой мыши. Далее нажимаем на кнопку Вставить функцию. Появляется диалоговое окно Вставка функции. В данном диалоговом окне выбираем интересующую нас функцию. Если ее нет в перечне функций представленных в поле Выберите функцию:, необходимо воспользоваться полем Поиск функции.

    Функция ИНДЕКС в Excel

    Как работает функция ИНДЕКС в Excel.

    • массив; номе_строки; номер_столбца;
    • ссылка; номе_строки; номер_столбца; номер _области;

    Функция ИНДЕКС в Excel

    Вариант использования функции ИНДЕКС: массив; номе_строки; номер_столбца.

    Выбираем первый вариант: массив; номе_строки; номер_столбца. Открывается диалоговое окно Аргументы функции. В данном диалогов окне есть три поля:

    ВАЖНО: В полем Массив можно указывать диапазон конкретной таблицы или всего Листа. В зависимости от того, какой диапазон будет указан, зависит от куда необходимо отсчитывать номер строки и столбца. Если указывается конкретный диапазон (таблица), то номер строки необходимо отсчитывать от самой верхней строки этого диапазона (таблицы), а номер столбца необходимо отсчитывать от самого левого столбца диапазона (таблицы). Если указывается весь Лист, то отсчет видеться от самой верхней строки и самого левого столбца Листа, соответственно.

    Функция ИНДЕКС в Excel

    Функция ИНДЕКС в Excel

    Итак, функция ИНДЕКС вернула значение Владимир. Это значение находиться в ячейки, которая находиться на пересечении 4 строки и 3 столбца указанного диапазона ячеек.

    Теперь, в качестве диапазона, в диалоговом окне Аргументы функции, укажем весь Лист (поле Массив). А номер строки и столбца оставим те же. В результате получим:

    Функция ИНДЕКС в Excel

    Как видно в первом случае функция вернула нам значение Владимир, а во втором значение Егор. Разница возникла потому что в первом случае отсчет строк и столбцов шёл от границ конкретного указного диапазоне (таблицы), а во втором от крайней верхней строки и крайнего левого столбца Листа.

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

    Пример: все имена расположены в одном столбце. Диапазон ячеек: B2:B13 (значение в поле Массив). Тогда в поле Номер_ строки указываем значение 5, а в поле Номер_столбца ни чего не указываем.

    массив; номе_строки; номер_столбца

    Нажимаем ОК, функция ИНДЕКС возвращает значение: Петр.

    Вариант использования функции ИНДЕКС: ссылка; номе_строки; номер_столбца; номер _области.

    Рассмотрим данный способ использования функции ИНДЕКС на конкретном примере. Добавим в нашу таблицу четвертый столбец с именами. В диалоговом окне Аргументы функции, в поле Ссылка укажем два диапазона: B3:C6 и D3:E6. В поле Номер_строки укажем значение 3, в поле Номер_столбца укажем значение 2. В поле Номер_области укажем значение 2.

    Функция ИНДЕКС в Excel

    Важно: несколько диапазонов, которые указываются в поле Ссылка, необходимо заключать в скобки и перечислять через точку с запятой: (B3:C6;D3:E6)

    ссылка; номе_строки; номер_столбца; номер _области

    Функция ИНДЕКС вернула значение Борис, которое находиться на пересечение 3 строки и 2 столбца. При этом, отсчет данных координат проходил относительно границ диапазона №2 ( D3:E6).

    Excel – просто! Ищем значение на пересечении

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

    1. ИНДЕКС (INDEX)

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

    Аргументы функции выглядят следующим образом:

    Excel – просто. Ищем значение на пересечении

    Массив – ссылка на диапазон ячеек, в котором нам нужно осуществить поиск;

    Номер_строки – строка, из которой нужно извлечь значения;

    Номер_столбца – столбец, из которого нужно извлечь значение.

    Функция ИНДЕКС также может извлекать значение из разных выделенных областей, но в данной статье я не буду останавливаться на этой возможности.

    Схематически работу функции можно изобразить так:

    Excel – просто. Ищем значение на пересечении

    Для автоматического поиска строки/столбца функцию ИНДЕКС, как правило, дополняют двумя функциями ПОИСКПОЗ (MATCH).

    В таком случае формула выглядит примерно так:

    =ИНДЕКС($C$7:$F$9;ПОИСКПОЗ($I$5;$B$7:$B$9;0);ПОИСКПОЗ($I$6;$C$6:$F$6;0))

    Excel – просто. Ищем значение на пересечении

    При смене параметров поиска, значение пересекающейся ячейки будет изменяться автоматически.

    2. СУММПРОИЗВ (SUMPRODUCT)

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

    Excel – просто. Ищем значение на пересечении

    Для решения нашей задачи формула будет выглядеть так:

    =СУММПРОИЗВ((C6:F6=I6)*(B7:B9=I5)*(C7:F9))

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

    =СУММПРОИЗВ((условие_1)*(условие_2)*(что_суммировать))

    Excel – просто. Ищем значение на пересечении

    Сумма умножений 0, 1 и значений таблицы извлечёт нам искомое значение.

    3. ДВССЫЛ (INDIRECT)

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

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

    Excel – просто. Ищем значение на пересечении

    Если на первый взгляд функция выглядит простой и малополезной, то при дальнейшем её изучении Вы узнаете, что с её помощью мы можем перемещаться по листам, транспонировать таблицы, отбирать чётные (нечётные) строки и многое другое. Ведь для нее аргумент Ссылка_на_ячейку – всего лишь текстовая строка, которую можно изменять формулами.

    Чтобы найти значение ячейки на пересечении определенных сроки и столбца нам понадобится сразу две функции ДВССЫЛ.

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

    Выделяем столбцы с заголовками и нажимаем комбинацию клавиш Ctrl+Shift+F3

    Excel – просто. Ищем значение на пересечении

    Аналогичную операцию проделываем и для строк.

    Excel – просто. Ищем значение на пересечении

    Сама формула будет иметь такой вид:

    =ДВССЫЛ(I5) ДВССЫЛ(I6)

    Обратите внимание что функции разделены пробелом.

    Excel – просто. Ищем значение на пересечении

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

    Программа Excel ориентирована на ускоренные расчеты. Зачастую документы здесь состоят из большого количества листов, на которых представлены длинные таблицы с числами, формулами или текстом. Для удобного нахождения нужных ячеек существует специальный автоматизированный поиск. Ознакомившись с особенностями его использования, можно сократить время работы в документах. О том, как искать в Экселе слова, фразы или ячейки, подробно написано ниже.

    Как искать в Excel слова, текст, ячейки и значения в таблицах

    Как выполнить поиск значений в программе «Excel» .



    Поиск в Эксель
    Далее описаны несколько вариантов поиска и фильтрации данных в таблице «Эксель».

    Классический поиск «MS Office».
    Условное форматирование (выделение нужных ячеек цветом)
    Настройка фильтров по одному или нескольким значениям.
    Фрагмент макроса для перебора ячеек в диапазоне и поиска нужного значения.

    Синтаксис

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

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

    1) Классический поиск (обыкновенный).

    Вызвать панель (меню) поиска можно сочетанием горячих клавиш ctrl+F. (Легко запомнить: F- Found).

    Окно поиска состоит из поля, в которое вводится искомый фрагмент текста или искомое число, вкладки с дополнительными настройками («Параметры») и кнопки «Найти».



    Классический поиск в Excel

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

    Условное форматирование для искомых ячеек.

    Поиск точного совпадения с помощью ВПР

    Посмотрим на примере, как работает функция ВПР, когда выбран тип сопоставления «ЛОЖЬ», поиск точного совпадения. В массиве В5:Е10 указаны основные средства некой компании, их балансовая стоимость, инвентарный номер и место расположения. В ячейке В2 указано наименование, для которого нужно в таблице найти инвентарный номер и поместить его в ячейку С2.



    Функция ВПР в Excel

    Запишем формулу: =ВПР(B2;B5:E10;3;ЛОЖЬ).

    Здесь первый аргумент указывает, что в таблице нужно искать значение из ячейки В2, т.е. слово «Факс». Второй аргумент говорит, что таблица для поиска — в диапазоне В5:Е10, а искать слово «Факс» нужно в первом столбце, т.е. в массиве В5:В10. Третий аргумент сообщает программе, что результат расчета содержится в третьем столбце массива, т.е. D5:D10. Четвёртый аргумент равен «ЛОЖЬ», т.е. требуется полное совпадение.

    И так, функция получит строку «Факс» из ячейки В2 и будет искать его в массиве В5:В10 сверху вниз. Как только совпадение будет найдено (строка 8), функция вернёт соответствующее значение из столбца D, т.е. содержимое D8. Именно это нам и требовалось, задача решена.

    3) Третий способ поиска слов в таблице «Excel» — это использование фильтров.

    Фильтр устанавливается во вкладке «Данные» или сочетанием клавиш ctrl+shift+L.



    Настройка фильтра для поиска слов

    Кликнув по треугольнику фильтра можно в контекстном меню выбрать пункт «Текстовые фильтры», далее «содержит…» и указать искомое слово.

    После нажатия кнопки «Ок» на Экране останутся только ячейки столбца, содержащие искомое слово.

    Поиск ячеек

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

    Для поиска ячеек с формулами выполняются следующие действия.

    1. В открытом документе выделить ячейку или диапазон ячеек (в первом случае поиск идет по всему листу, во втором – в выделенных ячейках).
    2. Во вкладке «Главная» выбрать функцию «Найти и выделить».
    3. Обозначить команду «Перейти».
    4. Выделить клавишу «Выделить».
    5. Выбрать «Формулы».
    6. Обратить внимание на список пунктов под «Формулами» (возможно, понадобится снятие флажков с некоторых параметров).
    7. Нажать клавишу «Ок».

    как искать в excel

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

    1. Перейти во вкладку «Главная».
    2. Выбрать функцию «Найти и выделить».
    3. Нажать на команду «Найти».
    4. Перейти в «Параметры» и выбрать «Формат».
    5. Здесь выделить функцию «Выравнивание», поставить о.
    6. Нажать на «Ок».
    7. Нажать на кнопку «Найти все» и проанализировать список ячеек, которые объединены на соответствующем листе.

    При нажимании кнопкой мыши на элемент в списке происходит выделение объединенной ячейки на листе. Дополнительно доступна функция «Отменить объединение ячеек».

    как найти текст в excel

    Выполнение представленных выше действий приводит к нахождению всех объединенных ячеек на листе и при необходимости отмене данного свойства. Для поиска скрытых ячеек проводятся следующие действия.

    1. Выбрать лист, требующий анализа на присутствие скрытых ячеек и их нахождения.
    2. Нажать клавиши «F5_гт_ Special».
    3. Нажать сочетание клавиш «CTRL + G_гт_ Special».

    Можно воспользоваться еще одним способом для поиска скрытых ячеек:

    1. Открыть функцию «Редактирование» во вкладке «Главная».
    2. Нажать на «Найти».
    3. Выбрать команду «Перейти к разделу». Выделить «Специальные».
    4. Попав в группу «Выбор», поставить галочку на «Только видимые ячейки».
    5. Нажать кнопку «Ок».

    как искать слово в excel

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

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

    Чтобы найти ячейки, для которых применено условное форматирование:

    • нажать на ячейку, не предусматривающую условное форматирование;
    • выбрать функцию «Редактирование» во вкладке «Главная»;
    • нажать на кнопку «Найти и выделить»;
    • выделить категорию «Условное форматирование».

    Как искать в Excel слова, текст, ячейки и значения в таблицах

    Чтобы найти ячейки, для которых применено одинаковое условное форматирование:

    • выбрать ячейку, предусматривающую условное форматирование, требующую поиска;
    • выбрать группу «Редактирование» во вкладке «Главная»;
    • нажать на кнопку «Найти и выделить»;
    • выбрать категорию «Выделить группу ячеек»;
    • установить свойство «Условные форматы»;
    • напоследок нужно зайти в группу «Проверка данных» и установить аналогичный пункт.

    Как искать в Excel слова, текст, ячейки и значения в таблицах

    4) Способ поиска номер четыре — это макрос VBA для поиска (перебора значений).

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

    Sub Poisk()

    Dim keyword As String

    keyword = «Искомое слово» ‘присвоить переменной искомое слово

    On Error Resume Next ‘при ошибке пропустить

    For Each cell In Selection ‘для всх ячеек в выделении (выделенном диапазоне)

    If cell.Value = «» Then GoTo Line1 ‘если ячейка пустая перейти на «Line1″

    If InStr(StrConv(cell.Value, vbLowerCase), keyword) > 0 Then cell.Interior.Color = vbRed ‘если в ячейке содержится слово окрасить ее в красный цвет (поиск)

    Line1:

    Next cell

    End Sub

    Функция ПОИСК в формуле массива

    Примеры выше, где буквы перечислены явно в строковом массиве, занимает довольно много места. Буквы при этом идут подряд, что наводит на мысль, что их можно как-то иначе выразить как диапазон.

    И действительно, это возможно с помощью комбинации с функциями СТРОКА и ПОИСК:

    Отличие этой формулы массива от предыдущих — ее нужно вводить без фигурных скобок, они появятся при вводе формулы сочетанием Ctrl+Shift+Enter (вместо обычного Enter). В формуле выше, где явно прописаны все буквы, фигурные скобки вводятся вручную — это явное указание строкового массива.

    Что происходит в этой формуле?

    • Функция СТРОКА с численным аргументом «65:90» возвращает массив чисел с 65 по 90 включительно. Как раз в этом диапазоне в таблице ASCII находятся все символы латиницы;
    • Функция СИМВОЛ возвращает для каждого числового значения в этом массиве его символ, таким образом создавая массив латинских символов;
    • Функция ПОИСК производит поиск каждого из этих символов в строке и возвращает либо число, либо ошибку, таким образом создавая массив чисел и ошибок
    • Функция СЧЁТ считает числовые значения в полученном массиве. Если результат больше нуля, значит, хотя бы один символ латиницы был найден. Если нет (все поиски вернули ошибку), значит, не был

    Аналогичная формула для кириллицы:

    Подробнее о поиске и извлечении кириллицы и латиницы в Excel можно почитать тут:

    Найти латиницу или кириллицу в тексте

    Есть еще множество комбинаций функции ПОИСК с другими функциями Excel, смотрите разделы: Функция ИЛИ Функция И Функция ЗНАЧЕН Удалить первое слово в ячейке Excel

    Расширенный поиск

    Предположим, что требуется найти все значения в диапазоне от 3000 до 3999. В этом случае в строке поиска следует набрать 3. Подстановочный знак «?» заменяет собой любой другой.

    Анализируя результаты произведённого поиска, можно отметить, что, наряду с правильными 9 результатами, программа также выдала неожиданные, подчёркнутые красным. Они связаны с наличием в ячейке или формуле цифры 3.

    Можно удовольствоваться большинством полученных результатов, игнорируя неправильные. Но функция поиска в эксель 2010 способна работать гораздо точнее. Для этого предназначен инструмент «Параметры» в диалоговом окне.

    Щёлкнув «Параметры», пользователь получает возможность осуществлять расширенный поиск. Прежде всего, обратим внимание на пункт «Область поиска», в котором по умолчанию выставлено значение «Формулы».

    Это означает, что поиск производился, в том числе и в тех ячейках, где находится не значение, а формула. Наличие в них цифры 3 дало три неправильных результата. Если в качестве области поиска выбрать «Значения», то будет производиться только поиск данных и неправильные результаты, связанные с ячейками формул, исчезнут.

    Для того чтобы избавиться от единственного оставшегося неправильного результата на первой строчке, в окне расширенного поиска нужно выбрать пункт «Ячейка целиком». После этого результат поиска становимся точным на 100%.

    Такой результат можно было бы обеспечить, сразу выбрав пункт «Ячейка целиком» (даже оставив в «Области поиска» значение «Формулы»).

    Теперь обратимся к пункту «Искать».

    Если вместо установленного по умолчанию «На листе» выбрать значение «В книге», то нет необходимости находиться на листе искомых ячеек. На скриншоте видно, что пользователь инициировал поиск, находясь на пустом листе 2.

    Следующий пункт окна расширенного поиска – «Просматривать», имеющий два значения. По умолчанию установлено «по строкам», что означает последовательность сканирования ячеек по строкам. Выбор другого значения – «по столбцам», поменяет только направление поиска и последовательность выдачи результатов.

    При поиске в документах Microsoft Excel, можно использовать и другой подстановочный знак – «*». Если рассмотренный «?» означал любой символ, то «*» заменяет собой не один, а любое количество символов. Ниже представлен скриншот поиска по слову Louisiana.

    Иногда при поиске необходимо учитывать регистр символов. Если слово louisiana будет написано с маленькой буквы, то результаты поиска не изменятся. Но если в окне расширенного поиска выбрать «Учитывать регистр», то поиск окажется безуспешным. Программа станет считать слова Louisiana и louisiana разными, и, естественно, не найдёт первое из них.

    Поиск

    Для начала разберемся с менее популярной функцией – поиск. Использование инструмента позволяет найти положение искомой информации в тексте, выраженное в виде числа. Помимо этого можно искать не только единичные символы, но и целые сочетания букв. Чтобы включить поиск, нужно в строке формул написать одноименную функцию, указав впереди знак равно. Синтаксис следующий:

    1. Первый блок используется для записи искомой информации.
    2. Вторая часть функции позволяет задать диапазон поиска по части текста.
    3. Третий аргумент является необязательным. Его использование оправдано, если известна точка начала поиска внутри ячейки.

    Рассмотрим пример: необходимо найти фрукты, которые начинаются на букву А из списка.

    1. Составляете список на рабочем листе
    1. В соседнем столбце записываете =ПОИСК(«а»;$B$4:$B$11). Не забывайте ставить двойные кавычки при использовании текста в качестве аргумента.

    Поиск в экселе 3

    1. Используя маркер автозаполнения, применяете формулу ко всем остальным ячейкам. Диапазон поиска был зафиксирован значками доллара для более корректной работы.

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

    Позиции с единицами показывают, какие из строк содержат фрукты, начинающиеся на букву а. Как видите, остальные цифры также указывают на местоположение искомой буквы в остальных позициях диапазона. Однако, одна ячейка содержит ошибку ЗНАЧ!. Эта проблема возникает в двух случаях, при использовании функции ПОИСК:

    1. Нулевая ячейка
    2. Блок не содержит искомой информации.

    В нашем случае фрукт Персик не содержит ни одной а, поэтому программа выдала ошибку.

    Различия

    Проанализировав результаты, полученные при использовании инструментов ПОИСК и НАЙТИ, можно выделить несколько ключевых отличий:

    1. Функция НАЙТИ чувствительна к регистру букв, то есть алгоритм распознает большие и маленькие символы. Это четко видно на примере фрукта Апельсин. ПОИСК вернул 1, а НАЙТИ выдало ошибку, поскольку маленькой буквы а нет в ячейке. Подобная ситуация и для Ананаса с Айвой

    Поиск в экселе 8

    1. Дополнительным различием является то, что ПОИСК умеет работать с подстановочными символами типа вопросительный знак (?) и звездочка (*), которые используются для неточного формирования поискового запроса.

    На заметку! Чтобы найти именно эти символы в тексте необходимо использовать тильду (

    1. Инструмент НАЙТИ реализован как в виде отдельной кнопки на главной панели, так и в виде встроенной функции редактора.

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

    Предназначение и синтаксис метода Range.Find

    Метод Find объекта Range предназначен для поиска ячейки и сведений о ней в заданном диапазоне по ее значению, формуле и примечанию. Чаще всего этот метод используется для поиска в таблице ячейки по слову, части слова или фразе, входящей в ее значение.

    Синтаксис метода Range.Find

    1 Expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

    Expression – это переменная или выражение, возвращающее объект Range, в котором будет осуществляться поиск.

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

    Метод Range.Find возвращает объект Range, представляющий из себя первую ячейку, в которой найдена поисковая фраза (параметр What). Если совпадение не найдено, возвращается значение Nothing.

    Параметры метода Range.Find

    • xlValues (-4163) – значения;
    • xlComments (-4144) – примечания*;
    • xlNotes (-4144) – примечания*;
    • **.
    • xlWhole (1) – полное совпадение;
    • xlPart (2) – частичное совпадение.
    • xlByRows (1) – поиск по строкам;
    • xlByColumns (2) – поиск по столбцам.
    • xlNext (1) – поиск вперед;
    • xlPrevious (2) – поиск назад.
    • False (0) – поиск без учета регистра (по умолчанию);
    • True (1) – поиск с учетом регистра.
    • False (0) – двухбайтовый символ может соответствовать однобайтовому символу;
    • True (1) – двухбайтовый символ должен соответствовать только двухбайтовому символу.

    * Примечания имеют две константы с одним значением. Проверяется очень просто: MsgBox xlComments и MsgBox xlNotes. ** Тесты показали неработоспособность метода Range.Find с константой xlFormulas в моей версии VBA Excel.

    В справке Microsoft тип данных всех параметров, кроме SearchDirection, указан как Variant.

    Читайте также: