ИНДЕКС+ПОИСКПОЗ – поиск с учётом регистра для любых типов данных
Наконец мы приблизились к неограниченной по возможностям и чувствительной к регистру формуле поиска, которая работает с любыми наборами данных.
Этот пример идёт последним не потому, что лучшее оставлено на десерт, а потому, что знания, полученные из предыдущих примеров, помогут лучше и быстрее понять чувствительную к регистру формулу ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH).
Как Вы, наверное, догадались, комбинация функций ПОИСКПОЗ и ИНДЕКС используется в Excel как более гибкая и мощная альтернатива для ВПР. Статья Использование ИНДЕКС и ПОИСКПОЗ вместо ВПР прекрасно объяснит Вам, как эти функции работают в паре.
Я лишь напомню ключевые моменты:
- Функция ПОИСКПОЗ (MATCH) ищет значение в заданном диапазоне и возвращает его относительную позицию, то есть номер строки и/или столбца;
- Далее, функция ИНДЕКС (INDEX) возвращает значение из определённого столбца и/или строки.
Чтобы формула ИНДЕКС+ПОИСКПОЗ могла искать с учётом регистра, к ней нужно добавить лишь одну функцию. Не трудно догадаться, что это снова СОВПАД (EXACT):
В этой формуле СОВПАД работает так же, как и в , и даёт такой же результат:
Заметьте, что формула ИНДЕКС+ПОИСКПОЗ заключена в фигурные скобки – это формула массива, и Вы должны завершить её ввод нажатием Ctrl+Shift+Enter.
Почему ИНДЕКС+ПОИСКПОЗ – это лучшее решение для поиска с учётом регистра?
Главные преимущества связки ИНДЕКС и ПОИСКПОЗ:
- Не требует добавления вспомогательного столбца, в отличие от ВПР.
- Не требует сортировки столбца поиска, в отличие от ПРОСМОТР.
- Работает со всеми типами данных – с числами, текстом и датами.
Эта формула кажется идеальной, не правда ли? На самом деле, это не так. И вот почему.
Предположим, что ячейка в столбце возвращаемых значений, связанных с искомым значением, пуста. Какой результат возвратит формула? Никакой? Давайте посмотрим, что возвратит формула на самом деле:
Упс, формула возвращает ноль! Это может быть не велика беда, если Вы работаете с чисто текстовыми значениями. Однако, если таблица содержит числа, в том числе «настоящие» нули – это становится проблемой.
На самом деле, все остальные формулы поиска (ВПР, ПРОСМОТР и СУММПРОИЗВ), которые мы обсуждали ранее, ведут себя так же. Но Вы же хотите безупречную формулу, так ведь?
Чтобы сделать чувствительную к регистру формулу ИНДЕКС+ПОИСКПОЗ идеальной, поместите её в функцию ЕСЛИ (IF), которая будет проверять ячейку с возвращаемым значением и возвращать пустой результат, если она пуста:
В этой формуле:
- B – это столбец с возвращаемыми значениями
- 1+ – это число, которое превращает относительную позицию ячейки, возвращаемую функцией ПОИСКПОЗ, в реальный адрес ячейки. Например, в нашей функции ПОИСКПОЗ задан массив поиска A2:A7, то есть относительная позиция ячейки A2 будет 1, потому что она первая в массиве. Но реальная позиция ячейки A2 в столбце – это 2, поэтому мы добавляем 1, чтобы компенсировать разницу и чтобы функция ДВССЫЛ (INDIRECT) извлекла значение из нужной ячейки.
Рисунки ниже демонстрируют исправленную чувствительную к регистру формулу ИНДЕКС+ПОИСКПОЗ в действии. Она возвращает пустой результат, если возвращаемая ячейка пуста.
Я переписал формулу в столбцы B:D, чтобы строка формул поместилась на скриншоте.
Формула возвращает , если возвращаемая ячейка содержит ноль.
Если Вы хотите, чтобы связка ИНДЕКС и ПОИСКПОЗ отображала какое-то сообщение, когда возвращаемое значение пусто, можете написать его в последних кавычках («») формулы, например, так:
Выбор уникальных и повторяющихся значений в Excel
Использование функции ЕСЛИ с частичным совпадением текста.
Выше мы с вами рассмотрели, как использовать текстовые значения в функции ЕСЛИ. Но часто случается, что необходимо определить не полное, а частичное совпадение текста с каким-то эталоном
К примеру, нас интересует город, но при этом совершенно не важно его название
Первое, что приходит на ум – использовать подстановочные знаки «?» и «*» (вопросительный знак и звездочку). Однако, к сожалению, этот простой способ здесь не проходит.
ЕСЛИ + ПОИСК
Нам поможет функция ПОИСК (в английском варианте – SEARCH). Она позволяет определить позицию, начиная с которой искомые символы встречаются в тексте. Синтаксис ее таков:
=ПОИСК(что_ищем, где_ищем, начиная_с_какого_символа_ищем)
Если третий аргумент не указан, то поиск начинаем с самого начала – с первого символа.
Функция ПОИСК возвращает либо номер позиции, начиная с которой искомые символы встречаются в тексте, либо ошибку.
Но нам для использования в функции ЕСЛИ нужны логические значения.
Здесь нам на помощь приходит еще одна функция EXCEL – ЕЧИСЛО. Если ее аргументом является число, она возвратит логическое значение ИСТИНА. Во всех остальных случаях, в том числе и в случае, если ее аргумент возвращает ошибку, ЕЧИСЛО возвратит ЛОЖЬ.
В итоге наше выражение в ячейке G2 будет выглядеть следующим образом:
Еще одно важное уточнение. Функция ПОИСК не различает регистр символов
ЕСЛИ + НАЙТИ
В том случае, если для нас важны строчные и прописные буквы, то придется использовать вместо нее функцию НАЙТИ (в английском варианте – FIND).
Синтаксис ее совершенно аналогичен функции ПОИСК: что ищем, где ищем, начиная с какой позиции.
Изменим нашу формулу в ячейке G2
То есть, если регистр символов для вас важен, просто замените ПОИСК на НАЙТИ.
Итак, мы с вами убедились, что простая на первый взгляд функция ЕСЛИ дает нам на самом деле много возможностей для операций с текстом.
Функция ПОИСКПОЗ в Excel используется для поиска точного совпадения или ближайшего (меньшего или большего заданному в зависимости от типа сопоставления, указанного в качестве аргумента) значения заданному в массиве или диапазоне ячеек и возвращает номер позиции найденного элемента.
Использование функции
Рассмотрим структуру ВПР, какие аргументы она задействует. Как и любая другая функция в Excel начинается она со знака равенства (=). Далее имя функции и аргументы, заключенные в круглые скобки.
ВПР содержит 4 аргумента.
Функция ведет поиск искомого значения в крайнем левом столбце и производит возврат значения в той же строке из указанного столбца.
Вторым — указывается именно та таблица (или диапазон ячеек), в которой следует произвести этот поиск.
Номер столбца должен включать столбец для ответа, он находится правее от столбца с исходным значением.
Последний аргумент – интервальный просмотр, здесь может быть 2 значения: 0 – ЛОЖЬ, 1 — ИСТИНА. отвечает за точный поиск (совпадения при просмотре сверху вниз). Если ничего не находит, то возвращается ошибка Н/Д (нет данных), 1 – приблизительный.
Для лучшего понимания принципа работы функции рассмотрим пример использования ВПР.
Что делать, если нужен поиск сразу по двум критериям
В нашем примере модели автомобилей в таблицах не повторяются, поэтому мы ищем только по одному критерию — названию модели. Но бывают случаи, когда такой поиск не подходит.
Например, у нас несколько одинаковых моделей с разным цветом.
Таблица с ценами на модели разных цветов
И по традиции есть таблица с клиентами, которые эти модели забронировали.
Сюда нужно перенести цены автомобилей
Если идти по классическому пути ВПР, получится такая функция: fx=ВПР(A29;’каталог авто’!$A$29:$E$35;5;0). В таком виде ВПР найдёт первую совпавшую модель и подтянет её стоимость. Параметр цвета не будет учтён.
Соответственно, цены у всех Nissan Juke будут 1 850 000 рублей, у всех Subaru Forester — 3 190 000 рублей, у всех Toyota C-HR — 2 365 000 рублей.
Такой результат получится, если использовать обычную функцию ВПР
Поэтому в этом варианте нужно искать стоимость авто сразу по двум критериям — модель и цвет. Для этого нужно изменить формулу вручную. В строке ссылок ставим курсор сразу после искомого значения.
Дописываем в формулу фразу ЕСЛИ(‘каталог авто’!$B$29:$B$35=B29, где:
- ‘каталог авто’!$B$29:$B$35 — закреплённый диапазон цвета автомобилей в таблице, откуда нужно перенести данные. Это весь столбец с ценами.
- B29 — искомое значение цвета автомобиля в таблице, куда мы переносим данные. Это первая ячейка в столбце с цветом — дополнительным параметром для поиска.
Итоговая функция такая: fx=ВПР(A29;ЕСЛИ(‘каталог авто’!$B$29:$B$35=B29;’каталог авто’!$A$29:$E$35);5;0). Теперь значения цен переносятся верно.
Так выглядит таблица, в которую ВПР переносит данные на основе двух совпадений
Как использовать ВПР в «Google Таблицах»? В них тоже есть функция Vlookup, но нет окна построителя формул. Поэтому придётся прописывать её вручную. Перечислите через точку с запятой все аргументы и не забудьте зафиксировать диапазон. Для фиксации поставьте перед каждым символом значок доллара. В готовой формуле это будет выглядеть так: =ВПР(A2;’Лист1′!$A$2:$C$5;3;0).
Как удалить # ИМЯ? Ошибка в Excel?
Функция MATCH: находит позицию по искомому значению
ПОДСТАВИТЬ – замена фрагментов текста
Как сравнить два столбца в Excel на совпадения и выделить цветом
Когда мы ищем совпадения между двумя столбцами в Excel, нам может потребоваться визуализировать найденные совпадения или различия в данных, например, с помощью выделения цветом. Самый простой способ для выделения цветом совпадений и различий – использовать “Условное форматирование” в Excel. Рассмотрим как это сделать на примерах ниже.
Поиск и выделение совпадений цветом в нескольких столбцах в Эксель
В тех случаях, когда нам требуется найти совпадения в нескольких столбцах, то для этого нам нужно:
- Выделить столбцы с данными, в которых нужно вычислить совпадения;
- На вкладке “Главная” на Панели инструментов нажимаем на пункт меню “Условное форматирование” -> “Правила выделения ячеек” -> “Повторяющиеся значения”;
- Во всплывающем диалоговом окне выберите в левом выпадающем списке пункт “Повторяющиеся”, в правом выпадающем списке выберите каким цветом будут выделены повторяющиеся значения. Нажмите кнопку “ОК”:
- После этого в выделенной колонке будут подсвечены цветом совпадения:
Поиск и выделение цветом совпадающих строк в Excel
Поиск совпадающих ячеек с данными в двух, нескольких столбцах и поиск совпадений целых строк с данными это разные понятия
Обратите внимание на две таблицы ниже:
В таблицах выше размещены одинаковые данные. Их отличие в том, что на примере слева мы искали совпадающие ячейки, а справа мы нашли целые повторяющие строчки с данными.
Рассмотрим как найти совпадающие строки в таблице:
Справа от таблицы с данными создадим вспомогательный столбец, в котором напротив каждой строки с данными проставим формулу, объединяющую все значения строки таблицы в одну ячейку:
Во вспомогательной колонке вы увидите объединенные данные таблицы:
Теперь, для определения совпадающих строк в таблице сделайте следующие шаги:
- Выделите область с данными во вспомогательной колонке (в нашем примере это диапазон ячеек E2:E15 );
- На вкладке “Главная” на Панели инструментов нажимаем на пункт меню “Условное форматирование” -> “Правила выделения ячеек” -> “Повторяющиеся значения”;
- Во всплывающем диалоговом окне выберите в левом выпадающем списке “Повторяющиеся”, в правом выпадающем списке выберите каким цветом будут выделены повторяющиеся значения. Нажмите кнопку “ОК”:
- После этого в выделенной колонке будут подсвечены дублирующиеся строки:
На примере выше, мы выделили строки в созданной вспомогательной колонке.
Но что, если нам нужно выделить цветом строки не во вспомогательном столбце, а сами строки в таблице с данными?
Для этого сделаем следующее:
Так же как и в примере выше создадим вспомогательный столбец, в каждой строке которого проставим следующую формулу:
Таким образом, мы получим в одной ячейке собранные данные всей строки таблицы:
- Теперь, выделим все данные таблицы (за исключением вспомогательного столбца). В нашем случае это ячейки диапазона A2:D15 ;
- Затем, на вкладке “Главная” на Панели инструментов нажмем на пункт “Условное форматирование” -> “Создать правило”:
Эта формула проверяет диапазон данных во вспомогательной колонке и при наличии повторяющихся строк выделяет их цветом в таблице:
Используйте ВПР + ПОИСКПОЗ для полностью динамического индекса столбца
Усовершенствовав предыдущий совет, вы можете использовать ПОИСКПОЗ для определения позиции столбца и возврата полностью динамического его индекса (порядкового номера).
Иногда это называется двусторонним поиском, поскольку вы просматриваете как по вертикали, так и по горизонтали.
Пригодиться это может при вычислении продаж для продавца в конкретном месяце или выборе цены на конкретный продукт от конкретного поставщика.
Предположим, что у вас есть продажи за месяц, с разбивкой по менеджерам.
ВПР может легко найти нужного сотрудника, но у нее нет возможности автоматически обрабатывать еще и название месяца. Хитрость заключается в том, чтобы использовать функцию ПОИСКПОЗ вместо статического индекса. С ее помощью мы вычислим номер нужной нам колонки.
При этом давайте еще попробуем использовать именованные диапазоны. Так нам будет проще разобраться.
Итак, A7:D17 присвоим имя «данные». A6:D6 назовем «месяц».
В результете в G8 мы можем записать:
Примечание: подобный двусторонний поиск с помощью ИНДЕКС и ПОИСКПОЗ, который предлагает большую гибкость и лучшую производительность для больших наборов данных, мы рассмотрим в дальнейшем.
Особенности использования функции ПОИСКПОЗ в Excel
Функция имеет следующий синтаксис:
= ПОИСКПОЗ (искомое_значение; искомое_массив; )
- lookup_value — обязательный аргумент, который принимает текстовые, числовые значения, а также логические и справочные данные, которые используются в качестве критерия поиска (для сопоставления значений или для поиска точного совпадения);
- lookup_array — это обязательный аргумент, который принимает данные ссылки на тип (ссылки на диапазон ячеек) или константу массива, в которой выполняется поиск позиции элемента в соответствии с критерием, заданным первым аргументом функции;
- — необязательный числовой аргумент, указывающий, как искать в диапазоне ячеек или массиве. Может принимать следующие значения:
- -1 — Находит наименьшее ближайшее значение, заданное параметром lookup_value, в порядке убывания массива или диапазона ячеек.
- 0 — (по умолчанию) Находит первое значение в массиве или диапазоне ячеек (не обязательно отсортированных), которое точно соответствует значению, переданному в качестве первого аргумента.
- 1 — Найдите ближайшее наибольшее значение, заданное первым аргументом в возрастающем массиве или диапазоне ячеек.
- Если текстовая строка была передана как аргумент lookup_value, функция ПОИСКПОЗ вернет позицию элемента в массиве (если есть) без учета регистра. Например, линии «МоскВа» и «Москва» равнозначны. Чтобы различать регистры, вы также можете использовать функцию EXACT.
- Если поиск с использованием этой функции не дал результатов, будет возвращен код ошибки # N / A.
- Если аргумент не указан явно или принимает число 0, можно использовать подстановочные знаки для поиска частичного совпадения текстовых значений («?» — заменяет любой символ, «*» — заменяет любое количество символов).
- Если объект данных, переданный в качестве аргумента lookup_array, содержит два или более элементов, которые соответствуют значению поиска, будет возвращена позиция первого вхождения этого элемента.
Функция ВПР в Экселе: пошаговая инструкция
Условное форматирование по части текста в ячейке Excel
Метод 2: удаление повторений при помощи “умной таблицы”
Поиск ТЕКСТовых значений в Excel. Бесплатные примеры и статьи.
Альтернативная формула для ИНДЕКС и ПОИСКПОЗ по нескольким условиям
Исправляем ошибку #Н/Д функции ВПР в Excel
В формулах с ВПР сообщение об ошибке #N/A (#Н/Д) – означает not available (нет данных) – появляется, когда Excel не может найти искомое значение. Это может произойти по нескольким причинам.
1. Искомое значение написано с опечаткой
Хорошая мысль проверить этот пункт в первую очередь! Опечатки часто возникают, когда Вы работаете с очень большими объёмами данных, состоящих из тысяч строк, или когда искомое значение вписано в формулу.
2. Ошибка #Н/Д при поиске приближённого совпадения с ВПР
Если Вы используете формулу с условием поиска приближённого совпадения, т.е. аргумент range_lookup (интервальный_просмотр) равен TRUE (ИСТИНА) или не указан, Ваша формула может сообщить об ошибке #Н/Д в двух случаях:
- Искомое значение меньше наименьшего значения в просматриваемом массиве.
- Столбец поиска не упорядочен по возрастанию.
3. Ошибка #Н/Д при поиске точного совпадения с ВПР
Если Вы ищете точное совпадение, т.е. аргумент range_lookup (интервальный_просмотр) равен FALSE (ЛОЖЬ) и точное значение не найдено, формула также сообщит об ошибке #Н/Д. Более подробно о том, как искать точное и приближенное совпадение с функцией ВПР.
4. Столбец поиска не является крайним левым
Как Вы, вероятно, знаете, одно из самых значительных ограничений ВПР это то, что она не может смотреть влево, следовательно, столбец поиска в Вашей таблице должен быть крайним левым. На практике мы часто забываем об этом, что приводит к не работающей формуле и появлению ошибки #Н/Д.
Решение: Если нет возможности изменить структуру данных так, чтобы столбец поиска был крайним левым, Вы можете использовать комбинацию функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH), как более гибкую альтернативу для ВПР.
5. Числа форматированы как текст
Другой источник ошибки #Н/Д в формулах с ВПР – это числа в текстовом формате в основной таблице или в таблице поиска.
Это обычно случается, когда Вы импортируете информацию из внешних баз данных или когда ввели апостроф перед числом, чтобы сохранить стоящий в начале ноль.
Наиболее очевидные признаки числа в текстовом формате показаны на рисунке ниже:
Кроме этого, числа могут быть сохранены в формате General (Общий). В таком случае есть только один заметный признак – числа выровнены по левому краю ячейки, в то время как стандартно они выравниваются по правому краю.
Решение: Если это одиночное значение, просто кликните по иконке ошибки и выберите Convert to Number (Конвертировать в число) из контекстного меню.
Если такая ситуация со многими числами, выделите их и щелкните по выделенной области правой кнопкой мыши. В появившемся контекстном меню выберите Format Cells (Формат ячеек) > вкладка Number (Число) > формат Number (Числовой) и нажмите ОК.
6. В начале или в конце стоит пробел
Это наименее очевидная причина ошибки #Н/Д в работе функции ВПР, поскольку зрительно трудно увидеть эти лишние пробелы, особенно при работе с большими таблицами, когда большая часть данных находится за пределами экрана.
Решение 1: Лишние пробелы в основной таблице (там, где функция ВПР)
Если лишние пробелы оказались в основной таблице, Вы можете обеспечить правильную работу формул, заключив аргумент lookup_value (искомое_значение) в функцию TRIM (СЖПРОБЕЛЫ):
=VLOOKUP(TRIM($F2),$A$2:$C$10,3,FALSE)=ВПР(СЖПРОБЕЛЫ($F2);$A$2:$C$10;3;ЛОЖЬ)
Решение 2: Лишние пробелы в таблице поиска (в столбце поиска)
Если лишние пробелы оказались в столбце поиска – простыми путями ошибку #Н/Д в формуле с ВПР не избежать. Вместо ВПР Вы можете использовать формулу массива с комбинацией функций ИНДЕКС (INDEX), ПОИСКПОЗ (MATCH) и СЖПРОБЕЛЫ (TRIM):
=INDEX($C$2:$C$10,MATCH(TRUE,TRIM($A$2:$A$10)=TRIM($F$2),0))=ИНДЕКС($C$2:$C$10;ПОИСКПОЗ(ИСТИНА;СЖПРОБЕЛЫ($A$2:$A$10)=СЖПРОБЕЛЫ($F$2);0))
Так как это формула массива, не забудьте нажать Ctrl+Shift+Enter вместо привычного Enter, чтобы правильно ввести формулу.
Поиск ближайшего большего знания в диапазоне чисел Excel
Пример 3. Найти ближайшее меньшее числу 22 в диапазоне чисел, хранящихся в столбце таблицы Excel.
Вид исходной таблицы данных:
Для поиска ближайшего большего значения заданному во всем столбце A:A (числовой ряд может пополняться новыми значениями) используем формулу массива (CTRL+SHIFT+ENTER):
Функция ПОИСКПОЗ возвращает позицию элемента в столбце A:A, имеющего максимальное значение среди чисел, которые больше числа, указанного в ячейке B2. Функция ИНДЕКС возвращает значение, хранящееся в найденной ячейке.
Для поиска ближайшего меньшего значения достаточно лишь немного изменить данную формулу и ее следует также ввести как массив (CTRL+SHIFT+ENTER):
Предположим, что вы хотите найти расширение телефона сотрудника, используя его номер эмблемы или правильную ставку комиссионных за объем продаж. Вы можете искать данные для быстрого и эффективного поиска определенных данных в списке, а также для автоматической проверки правильности данных. После поиска данных можно выполнить вычисления или отобразить результаты с возвращаемой величиной. Существует несколько способов поиска значений в списке данных и отображения результатов.
Поиск и подстановка по нескольким условиям
Как работает функция?
Когда возникает ошибка #Н/Д и как от нее избавиться при использовании ВПР().
Сообщение об ошибке Н/Д можно расшифровать как аббревиатуру (НД) – нет данных, то есть функции ВПР() нечего отобразить, и она как бы сообщает: «нет данных для отображения».
Почему возникает ошибка Н/Д (НД)?
- Ошибка может возникать потому, что в Вашем списке (диапазоне) для сравнения нет искомого функцией ВПР() значения.
- Ошибка может возникать потому, что в Вашем списке (диапазоне) для сравнения значения ячеек имеют ошибки. Иногда ошибки нельзя увидеть «не вооружённым глазом», например, если в ячейке добавлен лишний пробел или едва заметная точка. ВПР() воспринимает значение ячейки без пробела и с пробелом как совершенно разные данные и выдает ошибку «Н/Д».
- Ошибка может возникать потому, что в искомой ячейке уже стоит значение «Н/Д», то есть ВПР() подтягивает эту ошибку из другой ячейки (искомой).
Как исправить ошибки Н/Д?
- Первый способ – применить обработку ошибок – функцию ЕСЛИОШИБКА(ВПР(*;*;*;0);”Здесь была ошибка”). Эта функция заменяет сообщение об ошибке на любое значение, которое Вы укажете.
- Способ №2 – удалить все пробелы и, по возможности, знаки препинания из ячеек. Для этого нужно нажатием клавиш ctrl+H вызвать окно замены значений, потом в поле «Найти» ввести пробел или знак препинания, а в поле «Заменить на:» не вводить ничего и нажить кнопку «Заменить все».
- Способ №3 – поставить в функции ВПР() допуск ошибки. Как нам извесчтно 4 –й аргумент функции это число ошибок которые может допускать в сравниваемой строке функция ВПР(). То есть, если поставить число «1», то допускается 1 ошибка при сравнении . В таком случае строка без пробела и с одним пробелом будут считаться идентичными. Но в таком способе есть подвох — очень высока вероятность неверных результатов, например, слово «полка» и «палка» имеют отличие всего в один знак и будут восприняты функцией, как одно и то же.
Поиск значения в строке Excel
Ошибка #ЗНАЧ! в формулах с ВПР
В большинстве случаев, Microsoft Excel сообщает об ошибке #VALUE! (#ЗНАЧ!), когда значение, использованное в формуле, не подходит по типу данных. Что касается ВПР, то обычно выделяют две причины ошибки #ЗНАЧ!.
1. Искомое значение длиннее 255 символов
Будьте внимательны: функция ВПР не может искать значения, содержащие более 255 символов. Если искомое значение превышает этот предел, то Вы получите сообщение об ошибке #ЗНАЧ!.
Решение: Используйте связку функций ИНДЕКС+ПОИСКПОЗ (INDEX+MATCH). Ниже представлена формула, которая отлично справится с этой задачей:
=INDEX(C2:C7,MATCH(TRUE,INDEX(B2:B7=F$2,0),0))=ИНДЕКС(C2:C7;ПОИСКПОЗ(ИСТИНА;ИНДЕКС(B2:B7=F$2;0);0))
2. Не указан полный путь к рабочей книге для поиска
Если Вы извлекаете данные из другой рабочей книги, то должны указать полный путь к этому файлу. Если говорить точнее, Вы должны указать имя рабочей книги (включая расширение) в квадратных скобках , далее указать имя листа, а затем – восклицательный знак. Всю эту конструкцию нужно заключить в апострофы, на случай если имя книги или листа содержит пробелы.
Вот полная структура функции ВПР для поиска в другой книге:
=VLOOKUP(lookup_value,’sheet name’!table_array, col_index_num,FALSE)=ВПР(искомое_значение;’имя_листа’!таблица;номер_столбца;ЛОЖЬ)
Настоящая формула может выглядеть так:
=VLOOKUP($A$2,’Sheet1′!$B:$D,3,FALSE)=ВПР($A$2;’Sheet1′!$B:$D;3;ЛОЖЬ)
Эта формула будет искать значение ячейки A2 в столбце B на листе Sheet1 в рабочей книге New Prices и извлекать соответствующее значение из столбца D.
Если любая часть пути к таблице пропущена, Ваша функция ВПР не будет работать и сообщит об ошибке #ЗНАЧ! (даже если рабочая книга с таблицей поиска в данный момент открыта).
Для получения дополнительной информации о функции ВПР, ссылающейся на другой файл Excel, обратитесь к уроку: Поиск в другой рабочей книге с помощью ВПР.
3. Аргумент Номер_столбца меньше 1
Трудно представить ситуацию, когда кто-то вводит значение меньше 1, чтобы обозначить столбец, из которого нужно извлечь значение. Хотя это возможно, если значение этого аргумента вычисляется другой функцией Excel, вложенной в ВПР.
Итак, если случилось, что аргумент col_index_num (номер_столбца) меньше 1, функция ВПР также сообщит об ошибке #ЗНАЧ!.
Если же аргумент col_index_num (номер_столбца) больше количества столбцов в заданном массиве, ВПР сообщит об ошибке #REF! (#ССЫЛ!).
Сравнение нескольких ячеек в табличном редакторе
Теперь поговорим детально о том, как произвести сравнение текстовой информации более, чем в двух ячейках. Эти методы практически идентичны тем, что были рассмотрены выше.
Применение специальной формулы без учета регистра для нескольких ячеек
Здесь, как и в ранее рассмотренных методах, применяется две вариации формулы:
- Первый вариант формулы выглядит так: =И(А1=В1; А1=С1).
- Второй вариант формулы выглядит так: =ЕСЛИ(И(А1=В1; А1=С1); “Совпадает”; “НЕ совпадает”).
Функция «И» реализует возврат значения ИСТИНА в том случае, если все поля таблички имеют совпадающие значения. Возврат значения ЛОЖЬ происходит, если какое-либо из значений не совпадает. Оператор «ЕСЛИ» позволяет отобразить на экране те показатели, которые ввел пользователь в формулу.
На нижеприведенной картинке прекрасно видно, как две рассмотренные формулы справляются с процедурой сравнения не только текстовой информации, но и с числовыми показателями, а также с данными формата «Дата».
3
Применение специальной формулы с учетом регистра для нескольких ячеек
Здесь, как и в ранее рассмотренных методах, применяется две вариации формулы:
- Первый вариант формулы выглядит так: =И(СОВПАД(А1;В1); СОВПАД(А1; С2)).
- Второй вариант формулы выглядит так: =ЕСЛИ(И(СОВПАД(А1;В1);СОВПАД(А1; С1));”Точное совпадение”; “НЕ совпадает”).
Как и в предыдущем примере, функция «И» реализует возврат значения ИСТИНА в том случае, если все поля таблички имеют совпадающие значения. Возврат значения ЛОЖЬ происходит, если какое-либо из значений не совпадает. Оператор «ЕСЛИ» позволяет отобразить на экране те показатели, которые ввел пользователь в формулу. Результат преобразований выглядит так:
4
Если пользователю необходимо, чтобы формула вывела наличие соответствий хотя бы 2-х показателей, то ему необходимо использовать следующую формулу: =ЕСЛИ(ИЛИ(СОВПАД(А1;В1);СОВПАД(А1; С1);СОВПАД(В1;С1)); “Не менее двух точных соответствий”; “Соответствий нет”). Иными словами, в этом случае наличие хотя бы 2-х соответствий в 3-х случаях, выведет положительное значение. Результат преобразований выглядит так:
5
Если же пользователю необходимо произвести сравнение в табличке, в которой присутствует огромное количество ячеек, то вышеописанная формула будет не удобной в использовании, так как она станет слишком длинной. Здесь целесообразнее использовать математический оператор «СЧЕТЕСЛИ». Подсчитать количество соответствий в большом диапазоне ячеек можно при помощи следующей формулы: {=СЧЕТЕСЛИ(А2:D2;А2:D2)}. Результат преобразований выглядит так:
6
Макрос поиска ячейки с выпадающим списком
ЕСЛИОШИБКА – разбиваем ключевые слова на группы (ищем определенные слова в фразах)
Сложность: средняя.
Функция ЕСЛИОШИБКА (или IFERROR) возвращает значение первого аргумента, если в нем нет ошибки. Если в первом аргументе ошибка – возвращает значение второго аргумента (или пустое значение, если второй аргумент не указан).
Звучит сложно, но сейчас покажем, чем полезна функция на практике.
Синтаксис:
=ЕСЛИОШИБКА(значение; )
Применение
Мы хотим разбить список ключевых фраз на группы в зависимости от содержания определенных слов в фразах. Для поиска содержания слов мы можем использовать следующую формулу:
=ЕСЛИОШИБКА(ЕСЛИ(ПОИСК(«полимер»; A1)>0;»в группу с полимерами»; «0»))
Разберемся, что происходит внутри этой конструкции:
- ПОИСК(«полимер»; A1) – функция ПОИСК ищет, есть ли в ячейке А1 слово «полимер». Если слово есть, функция возвращает значение TRUE (1), если слова нет – значение FALSE (0).
- Функция ЕСЛИ проверяет результат функции ПОИСК. Если функция ПОИСК возвращает любое значение больше 0, то функция ЕСЛИ выводит текст «в группу с полимерами». В противном случае возвращает значение «0».
- Функция ЕСЛИОШИБКА проверяет результат функции ЕСЛИ. Если результат этой функции не является ошибкой (то есть не равен FALSE, 0) – выводится текст «в группу с полимерами».
Дальше мы можем отсортировать список ключевиков по столбцу с названиями групп и продолжить работу с семантикой.