Поиск по шаблону excel

Обновлено: 07.07.2024

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

Описание

В этой статье приведены пошаговые инструкции по поиску данных в таблице (или диапазоне ячеек) с помощью различных встроенных функций Microsoft Excel. Для получения одного и того же результата можно использовать разные формулы.

Создание образца листа

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

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

Определения терминов

В этой статье для описания встроенных функций Excel используются указанные ниже условия.

Определение

Вся таблица подстановки

Значение, которое будет найдено в первом столбце аргумента «инфо_таблица».

Просматриваемый_массив
-или-
Лукуп_вектор

Диапазон ячеек, которые содержат возможные значения подстановки.

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

3 (третий столбец в инфо_таблица)

Ресулт_аррай
-или-
Ресулт_вектор

Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор.

Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение.

Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение "5" в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки).

Функции

LOOKUP ()

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

Ниже приведен пример синтаксиса формулы подСТАНОВКи.

= Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)

Следующая формула находит возраст Марии на листе "образец".

= ПРОСМОТР (E2; A2: A5; C2: C5)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как "Мария" находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).

Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.

Чтобы получить дополнительные сведения о функции Просмотр , щелкните следующий номер статьи базы знаний Майкрософт:

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

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

= ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)

Следующая формула находит возраст Марии на листе "образец".

= ВПР (E2; A2: C5; 3; ЛОЖЬ)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется "3" в качестве Колумн_индекс (столбец C). Так как "Мария" находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).

Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:

INDEX () и MATCH ()

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

Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:

= Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)

Следующая формула находит возраст Марии на листе "образец".


= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как "Мария" находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).

СМЕЩ () и MATCH ()

Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.

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

= СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)

Эта формула находит возраст Марии на листе "образец".

= СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)

Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как "Мария" находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).

Чтобы получить дополнительные сведения о функции СМЕЩ , щелкните следующий номер статьи базы знаний Майкрософт:

В этой статье описаны синтаксис формулы и использование функций ПОИСК и ПОИСКБ в Microsoft Excel.

Описание

Функции ПОИСК И ПОИСКБ находят одну текстовую строку в другой и возвращают начальную позицию первой текстовой строки (считая от первого символа второй текстовой строки). Например, чтобы найти позицию буквы "n" в слове "printer", можно использовать следующую функцию:

Эта функция возвращает 4, так как "н" является четвертым символом в слове "принтер".

Можно также находить слова в других словах. Например, функция

возвращает 5, так как слово "base" начинается с пятого символа слова "database". Можно использовать функции ПОИСК и ПОИСКБ для определения положения символа или текстовой строки в другой текстовой строке, а затем вернуть текст с помощью функций ПСТР и ПСТРБ или заменить его с помощью функций ЗАМЕНИТЬ и ЗАМЕНИТЬБ. Эти функции показаны в примере 1 данной статьи.

Эти функции могут быть доступны не на всех языках.

Функция ПОИСКБ отсчитывает по два байта на каждый символ, только если языком по умолчанию является язык с поддержкой БДЦС. В противном случае функция ПОИСКБ работает так же, как функция ПОИСК, и отсчитывает по одному байту на каждый символ.

К языкам, поддерживающим БДЦС, относятся японский, китайский (упрощенное письмо), китайский (традиционное письмо) и корейский.

Синтаксис

Аргументы функций ПОИСК и ПОИСКБ описаны ниже.

Искомый_текст Обязательный. Текст, который требуется найти.

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

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

Замечание

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

В аргументе искомый_текст можно использовать подстановочные знаки: вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому знаку, звездочка — любой последовательности знаков. Если требуется найти вопросительный знак или звездочку, введите перед ним тильду (

Если аргумент начальная_позиция опущен, то он полагается равным 1.

Аргумент начальная_позиция можно использовать, чтобы пропустить определенное количество знаков. Допустим, что функцию ПОИСК нужно использовать для работы с текстовой строкой "МДС0093.МужскаяОдежда". Чтобы найти первое вхождение "М" в описательной части текстовой строки, задайте для аргумента начальная_позиция значение 8, чтобы поиск не выполнялся в той части текста, которая является серийным номером (в данном случае — "МДС0093"). Функция ПОИСК начинает поиск с восьмого символа, находит знак, указанный в аргументе искомый_текст, в следующей позиции, и возвращает число 9. Функция ПОИСК всегда возвращает номер знака, считая от начала просматриваемого текста, включая символы, которые пропускаются, если значение аргумента начальная_позиция больше 1.

Примеры

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

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

Браузер не поддерживает видео.

Поиск

Чтобы найти что-то, нажмите CTRL+Fили перейдите на главная > редактирования> Найти & Выберите >Найти.

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

Нажмите CTRL+F, чтобы запустить диалоговое окно Найти

В поле Найти что: введите текст или числа, которые вы хотите найти, или щелкните стрелку в поле Найти: и выберите последний элемент поиска из списка.

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Используйте знак вопроса (?), чтобы найти любой отдельный символ. Например, если найти "м?т" и "множество", то будут отспросюмы.

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следует ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

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

В: Чтобы найти данные на листе или во всей книге, выберите Листили Книга.

Поиск: Вы можете выбрать поиск по строкам (по умолчанию) или По столбцам.

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

Примечание: Формулы,значения,заметки и примечания доступны только на вкладке Найти. На вкладке "Заменить" доступны только формулы.

Match case (Совпадение с делом). Проверьте это, если вы хотите найти данные с конфиденциальными данными.

Совпадение всего содержимого ячеек. Проверьте это, если вы хотите найти ячейки, содержащие только символы, которые вы ввести в поле Найти: .

Если вы хотите найти текст или числа с определенным форматированием, нажмите кнопку Формат исделайте выбор в диалоговом окне Найти формат.

Совет: Чтобы найти ячейки, точно соответствующие определенному формату, можно удалить все условия в поле Найти, а затем выбрать ячейку с нужным форматированием в качестве примера. Щелкните стрелку рядом с кнопкой Формат, выберите пункт Выбрать формат из ячейки, а затем щелкните ячейку с форматированием, которое требуется найти.

Заменить

Чтобы заменить текст или числа, нажмите CTRL+Hили перейдите на главная > редактирования> Найти & Выберите > Заменить.

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

Нажмите CTRL+H, чтобы запустить диалоговое окно Заменить.

В поле Найти что: введите текст или числа, которые вы хотите найти, или щелкните стрелку в поле Найти: и выберите последний элемент поиска из списка.

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Используйте знак вопроса (?), чтобы найти любой отдельный символ. Например, если найти "м?т" и "множество", то будут отспросюмы.

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следует ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

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

Нажмите Заменить все или Заменить.

Совет: При нажатиикнопки Заменить все будут заменяться все вхождения ищемого условия, а при замене будет обновляться по одному вхождению за раз.

В: Чтобы найти данные на листе или во всей книге, выберите Листили Книга.

Поиск: Вы можете выбрать поиск по строкам (по умолчанию) или По столбцам.

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

Примечание: Формулы,значения,заметки и примечания доступны только на вкладке Найти. На вкладке "Заменить" доступны только формулы.

Match case (Совпадение с делом). Проверьте это, если вы хотите найти данные с конфиденциальными данными.

Совпадение всего содержимого ячеек. Проверьте это, если вы хотите найти ячейки, содержащие только символы, которые вы ввести в поле Найти: .

Если вы хотите найти текст или числа с определенным форматированием, нажмите кнопку Формат исделайте выбор в диалоговом окне Найти формат.

Совет: Чтобы найти ячейки, точно соответствующие определенному формату, можно удалить все условия в поле Найти, а затем выбрать ячейку с нужным форматированием в качестве примера. Щелкните стрелку рядом с кнопкой Формат, выберите пункт Выбрать формат из ячейки, а затем щелкните ячейку с форматированием, которое требуется найти.

Существует два разных способа поиска или замены текста или чисел на компьютере Mac. Первый из них — использование диалогового & Заменить. Второй вариант — использование панели поиска на ленте.

Диалоговое & поиска

Поиск и параметры

Когда активирована кнопка поиска, щелкните увеличительное стекло, чтобы активировать диалоговое окно дополнительных параметров поиска.

Поиск текста или чисел с помощью диалогового & поиска

Чтобы найти что-то, нажмите CTRL+Fили перейдите на главная > Найти & Выберите >Найти.

В поле Найти: введите текст или числа, которые нужно найти.

При необходимости вы можете определить поиск.

В: Чтобы найти данные на листе или во всей книге, выберите Листили Книга.

Поиск: Вы можете выбрать поиск по строкам (по умолчанию) или По столбцам.

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

Примечание: Формулы,значения,заметки и примечания доступны только на вкладке Найти. На вкладке "Заменить" доступны только формулы.

Match case (Совпадение с делом). Проверьте это, если вы хотите найти данные с конфиденциальными данными.

Совпадение всего содержимого ячеек. Проверьте это, если вы хотите найти ячейки, содержащие только символы, которые вы ввести в поле Найти: .

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Используйте знак вопроса (?), чтобы найти любой отдельный символ. Например, если найти "м?т" и "множество", то будут отспросюмы.

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следует ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

Замена текста или чисел с помощью диалогового & поиска

Чтобы заменить текст или числа, нажмите CTRL+Hили перейдите на главная > Найти & Выберите >Заменить.

В поле Найти введите текст или числа, которые нужно найти.

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

Совет: При нажатиикнопки Заменить все будут заменяться все вхождения ищемого условия, а при замене будет обновляться по одному вхождению за раз.

При необходимости вы можете определить поиск.

В: Чтобы найти данные на листе или во всей книге, выберите Листили Книга.

Поиск: Вы можете выбрать поиск по строкам (по умолчанию) или По столбцам.

Match case (Совпадение с делом). Проверьте это, если вы хотите найти данные с конфиденциальными данными.

Совпадение всего содержимого ячеек. Проверьте это, если вы хотите найти ячейки, содержащие только символы, которые вы ввести в поле Найти: .

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Используйте знак вопроса (?), чтобы найти любой отдельный символ. Например, если найти "м?т" и "множество", то будут отспросюмы.

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следует ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

Щелкните любую ячейку, чтобы найти весь лист, или выберите определенный диапазон ячеек для поиска.

Нажмите +F или щелкните значок, чтобы развернуть область поиска, а затем в поле поиска введите текст или число, которое вы хотите найти.

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Чтобы найти любой отдельный символ, используйте знак вопроса (?). Например, если найти "м?т", то будут "ед" и "множество".

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следуют ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

Нажмите клавишу RETURN.

Чтобы найти следующий экземпляр ищите элемент, щелкните поле поиска и нажмите кнопку RETURN илив диалоговом окне Найти нажмите кнопку Найти далее.

Совет: Вы можете отменить поиск, нажав клавишу ESC.

Чтобы задать дополнительные параметры поиска, щелкните увеличительное стекло и выберите поиск на листе или Поиск в книге. Вы также можете выбрать параметр "Дополнительные параметры", чтобы запустить диалоговое окно Найти.

Щелкните любую ячейку, чтобы найти весь лист, или выберите определенный диапазон ячеек для поиска.

Нажмите +F, чтобы развернуть область поиска, а затем в поле поиска введите текст или число, которое вы хотите найти.

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Чтобы найти любой отдельный символ, используйте знак вопроса (?). Например, если найти "м?т", то будут "ед" и "множество".

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следуют ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

В поле поиска щелкните значок лупы и выберите команду Заменить.

В поле Заменить на введите замещающие символы.

Чтобы заменить символы в поле Найти пустыми, оставьте поле Заменить на пустым.

Чтобы заменить выделенное вхождение, нажмите кнопку Заменить.

Чтобы заменить все вхождения символов на листе без предварительного просмотра, нажмите кнопку Заменить все.

Совет: Отмените поиск, просто нажав клавишу ESC.

Чтобы задать дополнительные параметры поиска, щелкните увеличительное стекло и выберите поиск на листе или Поиск в книге. Вы также можете выбрать параметр "Дополнительные параметры", чтобы запустить диалоговое окно Заменить.

Поиск

Чтобы найти что-то, нажмите CTRL+Fили перейдите на главная > редактирования> Найти & Выберите >Найти.

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

Поиск текста или чисел в книге или нажатии CTRL+F

В поле Найти: введите текст или числа, которые нужно найти.

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Чтобы найти любой отдельный символ, используйте знак вопроса (?). Например, если найти "м?т", то будут "ед" и "множество".

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следуют ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

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

Нажмите > параметры поиска, чтобы при необходимости определить поиск.

В: Чтобы найти данные в пределах определенного выделения, выберите Выделение. Чтобы найти данные на листе или во всей книге, выберите Листили Книга.

Направление: Вы можете выбрать поиск вниз (по умолчанию) или ВВЕРХ.

Match case (Совпадение с делом). Проверьте это, если вы хотите найти данные с конфиденциальными данными.

Совпадение со всем содержимым ячеек: проверьте это, если вы хотите найти ячейки, содержащие только символы, которые вы ввести в поле Найти.

Заменить

Чтобы заменить текст или числа, нажмите CTRL+Hили перейдите на главная > редактирования> Найти & Выберите > Заменить.

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

В поле Найти: введите текст или числа, которые нужно найти.

Советы: В условиях поиска можно использовать подделавные знаки: вопросии(?),звездочки(*), тильды(

Чтобы найти любой отдельный символ, используйте знак вопроса (?). Например, если найти "м?т", то будут "ед" и "множество".

Чтобы найти любое количество символов, используйте звездку (*). Например, если найти знаки "г*д" и "начало", они будут отозныны.

), за которой следуют ?, *или

, чтобы найти вопросии, звездочки или другие символы тильды, например fy91

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

Совет: При нажатиикнопки Заменить все будут заменяться все вхождения ищемого условия, а при замене будет обновляться по одному вхождению за раз.

Нажмите > параметры поиска, чтобы при необходимости определить поиск.

В: Чтобы найти данные в пределах определенного выделения, выберите Выделение. Чтобы найти данные на листе или во всей книге, выберите Листили Книга.

Направление: Вы можете выбрать поиск вниз (по умолчанию) или ВВЕРХ.

Match case (Совпадение с делом). Проверьте это, если вы хотите найти данные с конфиденциальными данными.

Совпадение со всем содержимым ячеек: проверьте это, если вы хотите найти ячейки, содержащие только символы, которые вы ввести в поле Найти.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.


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

Поиск перебором значений

Довольно простой в реализации способ. Например, найти в колонке "A" ячейку, содержащую "123" можно примерно так:

Минусами этого так сказать "классического" способа являются: медленная работа и громоздкость. А плюсом является его гибкость, т.к. таким способом можно реализовать сколь угодно сложные варианты поиска с различными вычислениями и т.п.

Поиск функцией Find

Гораздо быстрее обычного перебора и при этом довольно гибкий. В простейшем случае, чтобы найти в колонке A ячейку, содержащую "123" достаточно такого кода:

Вкратце опишу что делают строчки данного кода:
1-я строка: Выбираем в книге лист "Данные";
2-я строка: Осуществляем поиск значения "123" в колонке "A", результат поиска будет в fcell;
3-я строка: Если удалось найти значение, то fcell будет содержать Range-объект, в противном случае - будет пустой, т.е. Nothing.

Полностью синтаксис оператора поиска выглядит так:

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

What - Строка с текстом, который ищем или любой другой тип данных Excel

After - Ячейка, после которой начать поиск. Обратите внимание, что это должна быть именно единичная ячейка, а не диапазон. Поиск начинается после этой ячейки, а не с нее. Поиск в этой ячейке произойдет только когда весь диапазон будет просмотрен и поиск начнется с начала диапазона и до этой ячейки включительно.

LookIn - Тип искомых данных. Может принимать одно из значений: xlFormulas (формулы), xlValues (значения), или xlNotes (примечания).

LookAt - Одно из значений: xlWhole (полное совпадение) или xlPart (частичное совпадение).

SearchOrder - Одно из значений: xlByRows (просматривать по строкам) или xlByColumns (просматривать по столбцам)

SearchDirection - Одно из значений: xlNext (поиск вперед) или xlPrevious (поиск назад)

MatchCase - Одно из значений: True (поиск чувствительный к регистру) или False (поиск без учета регистра)

MatchByte - Применяется при использовании мультибайтных кодировок: True (найденный мультибайтный символ должен соответствовать только мультибайтному символу) или False (найденный мультибайтный символ может соответствовать однобайтному символу)

SearchFormat - Используется вместе с FindFormat. Сначала задается значение FindFormat (например, для поиска ячеек с курсивным шрифтом так: Application.FindFormat.Font.Italic = True), а потом при использовании метода Find указываем параметр SearchFormat = True. Если при поиске не нужно учитывать формат ячеек, то нужно указать SearchFormat = False.

Чтобы продолжить поиск, можно использовать FindNext (искать "далее") или FindPrevious (искать "назад").

Примеры поиска функцией Find

Пример 1: Найти в диапазоне "A1:A50" все ячейки с текстом "asd" и поменять их все на "qwe"

Обратите внимание : Когда поиск достигнет конца диапазона, функция продолжит искать с начала диапазона. Таким образом, если значение найденной ячейки не менять, то приведенный выше пример зациклится в бесконечном цикле. Поэтому, чтобы этого избежать (зацикливания), можно сделать следующим образом:

Пример 2: Правильный поиск значения с использованием FindNext, не приводящий к зацикливанию.

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

Пример 3: Продолжение поиска с использованием Find с параметром After.

Следующий пример демонстрирует применение SearchFormat для поиска по формату ячейки. Для указания формата необходимо задать свойство FindFormat.

Пример 4: Найти все ячейки с шрифтом "курсив" и поменять их формат на обычный (не "курсив")

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

Свойство FindFormat можно задавать разными способами, например, так:

Поиск последней заполненной ячейки с помощью Find

Следующий пример - применение функции Find для поиска последней ячейки с заполненными данными. Использованные в Примере 4 SpecialCells находит последнюю ячейку даже если она не содержит ничего, но отформатирована или в ней раньше были данные, но были удалены.

Пример 5: Найти последнюю колонку и столбец, заполненные данными

Для поиска функцией Find по маске (шаблону) можно применять символы:
* - для обозначения любого количества любых символов;
? - для обозначения одного любого символа;

- для обозначения символов *, ? и

. (т.е. чтобы искать в тексте вопросительный знак, нужно написать

?, чтобы искать именно звездочку (*), нужно написать

* и наконец, чтобы найти в тексте тильду, необходимо написать

Поиск в скрытых строках и столбцах

Для поиска в скрытых ячейках нужно учитывать лишь один нюанс: поиск нужно осуществлять в формулах, а не в значениях, т.е. нужно использовать LookIn:=xlFormulas

Поиск даты с помощью Find

Если необходимо найти текущую дату или какую-то другую дату на листе Excel или в диапазоне с помощью Find, необходимо учитывать несколько нюансов:

Приведу несколько примеров поиска даты.

Пример 7: Найти текущую дату на листе независимо от формата отображения даты.

Пример 8: Найти 1 марта 2018 г.

Искать часть даты - сложнее. Например, чтобы найти все ячейки, где месяц "март", недостаточно искать "03" или "3". Не работает с датами так же и поиск по шаблону. Единственный вариант, который я нашел - это выбрать формат в котором месяц прописью для ячеек с датами и искать слово "март" в xlValues.

Тем не менее, можно найти, например, 1 марта независимо от года.

Пример 9: Найти 1 марта любого года.

Книги по теме:






Посмотреть все книги по программированию

Комментарии к статье:

10.09.17 Дмитрий Очень толковая и полезная статья. Помогла мне существенно ускорить мой код. Спасибо!
23.11.17 Гость Спасибо, хорошая статья.
03.12.17 Владимир Спасибо! Использую в своих проектах.
07.12.17 Эд Спасибо, очень пригодилась Ваша статья!
19.01.18 Николай .find не ищет значение в ячейке, если ячейка в скрытой строке.
.match позволяет не беспокоится о том, что на листах с источниками данных строка с искомым значением будет скрыта из-за установленного фильтра.
05.02.18 Владимир Большое спасибо! Очень толково и понятно.
11.03.18 Гость Здравствуйте,
А если мне требуется найти ячейку в определенном столбце с определенным значением, например "строка 1" и если я нахожу такую, то через несколько строк(неизвестно сколько) мне нужно раскрасить следующую ячейку в другом столбце(самую ближайшую) и остановить цикл, и опять по новой искать дальше "строка 1". Можете посоветовать?
26.03.18 Гость Спасибо! Все бы так описывали! Все доступно и понятно))
23.05.18 Аркадий В VBA я новичок. Активно использую интернет для своих вопросов, однако таких информативных, лаконичных и простых в понимании сайтов не много. Огромное спасибо автору! Адрес уже в закладках.
21.07.18 Гость Спасибо! Уже несколько недель искала подобное!
25.07.18 Joann Метод .find (в случае далнейших множественных обращений к этому механизму) разумно вынести в отдельную функцию, как из управляющей процедуры передать в эту функцию ее параметры (обязательный текстовый параметр 'what:=' - передается без проблем, а вот значения ('xlValues', 'xlWhole', . ) для 'LookIn:=', 'LookAt:=', . - приводят к ошибке)?
15.08.18 Марат Спасибо за статью, пополнил свои знания в части метода Find. Простые переборы хороши на небольших диапазонах. А когда нужно обработать сотни тысяч ячеек, Find - хороший инструмент!
28.08.18 Гость Познавательно и подробно. Спасибо за статью.
16.10.18 Гость Хорошая статья. Спасибо
29.10.18 Sega Полезная статейка. Спасибо.
14.11.18 Гость Статья для начинающих, а тонкости поиска по дате нет ни одного примера
02.02.19 Ибрагим Чушь полная, плагиат!
01.03.19 inexsu.wordpress.com Loop While Not c Is Nothing And c.Address <> firstResult
Когда c станет Nothing, c.Address даст ошибку
Решение https://inexsu.wordpress.com/2018/03/05/range-findnext-method/
01.03.19 Администратор Вы правы, такое действительно может произойти, например, если менять значения найденных ячеек. Т.е., например, ищем значения "asd" и меняем их на "qwe". При замене последнего значения, FindNext ничего уже не найдет, вернет Nothing и произойдет ошибка в условии.
Внес изменения в статье. Спасибо вам за подсказку.
07.04.19 Гость Добрый день. есть 2 таблица на разных листах. макрос нашел нужные ячейки с ИНН по 1 условию, затем мне надо чтобы макрос нашел в таблице 2 на листе 2 все названия клиентов с инн по условию 1 из таблицы 1 с листа 1. как тогда использовать find.
07.04.19 Гость Лучше использовать функцию ВПР
21.05.19 Гость Очень подробная статья. Отдельное спасибо за множество примеров.
17.10.19 Михаил Спасибо большое все понятно доступно и очень полезно
31.10.19 Гость Спасибо.
01.11.19 Гость ку
01.11.19 Гость 2 раза
19.11.19 Kamol Отлично.
Поиск с двумя значениями Пример в колонке А="123" и В="456"
25.12.19 Гость Спасибо!
05.03.20 Гость Добрый день!
Спасибо за код автору
Вопрос

Как сделать поиск слова по, но с любым регистром и любым набором символов
Пример: Я ввожу слово через Textbox
В таблице есть слово компьютер, колодец, ком
Нужно, чтобы программа находила по запросу "омпьюте", "пьюте" слово компьютер а по запросу "ком" слова компьютер и ком"

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