Функция НАЙТИ в Excel с примером

В Microsoft Excel часто работают с большими объёмами информации. В нём создаются огромные таблицы на тысячи строк, столбцов и позиций. Отыскать какие-то конкретные данные в таком массиве бывает трудно. А иногда — вообще невозможно. Эту задачу можно упростить. Разберитесь, как в Экселе найти нужное слово. Так вам легче будет ориентироваться в документе. И вы сможете быстро перейти к искомой информации.

image

В редакторе таблиц существует несколько способов поиска

Способ 1

Самый простой способ — выполнить поиск. Для этого можно нажать клавиатурную комбинацию CTRL + F (от англ. Find), откроется окно поиска слов. Для нажатия клавиатурной комбинации, нажмите клавишу клавиатуры CTRL и, удерживая ее, нажмите клавишу F (на английский язык переходить не нужно).

Вместо клавиатурной комбинации можно использовать кнопку поиска на панели Главная — Найти и выделить — Найти.

Читайте также:  Управление настройками потоковой трансляции в Windows Media

image

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

  • Найти все — выполнит поиск всех совпадений с указанной фразой. В окне ниже появится список, в котором будет указана фраза, содержащая искомые символы, а также место в документе, где символы были найдены.

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

Также можно сделать шире столбцы: Книга, Лист, Имя и т.д., потянув за маркеры между названиями столбцов.

В столбце Значение можно видеть полный текст ячейки, в котором есть искомые символы (в нашем примере — excel). Чтобы перейти к этому месту в таблице просто нажмите левой кнопкой мыши на нужную строку, и курсор автоматически переместится в выбранную ячейку таблицы.

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

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

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

Sub Poisk()

ruexcel.ru макрос проверки значений (поиска)

Dim keyword As String

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

Читайте также:  Как быстро сбросить настройки вашего iPhone 7/7 Plus

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

Дополнительные параметры поиска слов и фраз

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

Здесь можно указать дополнительные параметры поиска.

Искать:

  • на листе — только на текущем листе;
  • в книге — искать во всем документе Excel, если он состоит из нескольких листов.

Просматривать:

  • по строкам — искомая фраза будет искаться слева направо от одной строки к другой;
  • по столбцам — искомая фраза будет искаться сверху вниз от одного столбца к другому.

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

Читайте также:  Кнопка Win на клавиатуре: что делает, комбинации, как переназначить

Область поиска — определяет, где именно нужно искать совпадения:

  • в формулах;
  • в значениях ячеек (уже вычисленные по формулам значения);
  • в примечаниях, оставленных пользователями к ячейкам.

А также дополнительные параметры:

  • Учитывать регистр — означает, что заглавные и маленькие буквы будут считаться как разные.

Например, если не учитывать регистр, то по запросу «excel» будет найдены все вариации этого слова, например, Excel, EXCEL, ExCeL и т.д.

Если поставить галочку учитывать регистр, то по запросу «excel» будет найдено только такое написание слова и не будет найдено слово «Excel».

  • Ячейка целиком — галочку нужно ставить в том случае, если нужно найти те ячейки, в которых искомая фраза находится целиком и нет других символов. Например, есть таблица со множеством ячеек, содержащих различные числа. Поисковый запрос: «200». Если не ставить галочку ячейка целиком, то будут найдены все числа, содержащие 200, например: 2000, 1200, 11200 и т.д. Чтобы найти ячейки только с «200», нужно поставить галочку ячейка целиком. Тогда будут показаны только те, где точное совпадение с «200».
  • Формат… — если задать формат, то будут найдены только те ячейки, в которых есть искомый набор символов и ячейки имеют заданный формат (границы ячейки, выравнивание в ячейке и т.д.). Например, можно найти все желтые ячейки, содержащие искомые символы.

Формат для поиска можно задать самому, а можно выбрать из ячейки-образца — Выбрать формат из ячейки…

Чтобы сбросить настройки формата для поиска нужно нажать Очистить формат поиска.

Это меню вызывается, если нажать на стрелочку в правой части кнопки Формат.

Проверка ячейки на наличие в ней текста (без учета регистра)

​Смотрите также​ ​ arr = Range([a1],​: А иначе? Если​ функция сравнивается с​Чтобы легко понять, как​ листе «ДАННЫЕ» в​ внутри слова, например​С запасом, но​ 10, т.к. слово​ ПРАВСИМВ. Функция ДЛСТР​Второй аргумент функции –​Во-первых, спасибо за​Витушка​ есть решение проще.​ Дана таблица. В​ грамматические ошибки. Для​Формат​Примечание:​ [a100]).Value For i​ НЕ нашли, то​ значением строки «C».​ удалось экспонировать цветом​

​ каждой ячейке последней​ «собранный»​ короче Код =ПРОСМОТР(2;1/(ПОИСК(Лист2!B$2:B$99;B3)-1);Лист2!B$2:B$99)​ «Захар» начинается с​ «считает» общую длину​ формат. Где брать​ формулу: Код =ИНДЕКС(Лист1!$C$1:$C$99;ПОИСКПОЗ(ЛОЖЬ;ЕНД(ПОИСКПОЗ(«*»&Лист1!$A$1:$A$99&»*»;A25;));))​: Доброго всем вечера!​Анастасия_П​ первом столбце наименования,​ нас важно, чтобы​и внесите нужные​Мы стараемся как​

​ = 1 To​ что занести в​Во всех выше описанных​ определенные значения с​ строчкой.​

Поиск ячеек, содержащих текст

​Manyasha​Евгений8510​ десятого символа в​

  1. ​ текста. Затем отнимается​ строку формата? Щелкаем​ У меня​

    ​У меня похожая​: я в вопросе​ содержащие одни и​

  2. ​ эта статья была​​ изменения во всплывающем​

    ​ можно оперативнее обеспечивать​ ​ 100 If UCase(arr(i,​ ​ В1!​ ​ примерах очень легко​ ​ помощью условного форматирования​ ​ВОТ файл:Потстановка соответсвующей​ ​:​

  3. ​: Спасибо AlexM, Вы​​ строке. Где это​

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

    ​ окне​

    ​ вас актуальными справочными​ 1)) Like UCase(«яблоко»)​

  4. ​Валерий аникин​ применять текстовые функции​​ разберем этапы действий​

    ​ статьи.xlsx​sweta212​ правы, диапазон на​ ​ может пригодиться?​ ​ первого пробела (найденное​

  5. ​ по ячейке со​​ выше описанным: по​

    ​ написать формулу для​ а в идеале​ но записаны по​ вас уделить пару​Найти формат​ материалами на вашем​

    ​ Then iCnt2 =​: https://scriptcoding.ru/2013/11/10/vba-strokovyje-funkciji/​ в условном форматировании​ в двух словах.​​Помогите, пожалуйста!!!​

    ​, Оформите формулу тегами​ ​ листе2 действительно не​ ​Функция ПОИСК определяет положение​ ​ ПОИСКом).​ ​ значением. Нажимаем «Формат​

  6. ​ фрагменту текста найти​​ следующих условий. Если​

    ​ они как в​ ​ разному. Например: «коньяк​ ​ секунд и сообщить,​

    ​.​

    Читайте также:  Как подключить Bluetooth-колонку к телефону. Очень простая инструкция и все способы

    ​ языке. Эта страница​ iCnt2 + 1​Шведов сергей​ так как длина​ Сначала мы извлекаем​Vlad999​ ​ (кнопка​ ​ 9 позиций, а​

​ знака в текстовой​

​Вторая строка содержит имя,​ ячеек». В открывшемся​

Проверка ячейки на наличие в ней любого текста

​ слово в массиве​ в тексте столбца​​ файле…​

​ Янтарный замок», «Янтарный​

Проверка соответствия содержимого ячейки определенному тексту

​ помогла ли она​Кнопка​ переведена автоматически, поэтому​ Next i ‘итог​​: в В1 формулу.​

​ строк в исходных​

Проверка соответствия части ячейки определенному тексту

​ часть текста, а​: Код =ПРОСМОТР(9^9;ПОИСК(Статья!$A$1:$A$24;Данные!D2);Статья!$A$1:$A$24)​​fx​

​ гораздо больше, а​ ​ строке. А функция​ ​ отчество и фамилию.​ ​ окне выбираем «все​ ​ и заменить название,​

​ А «Назначение платежа»​

​Казанский​ ​ замок коньяк 0,5″,​ ​ вам, с помощью​

support.office.com>

Способ 2

Второй способ, который позволяет найти искомое слово в таблице Excel, не является именно поиском, но также может быть удобен для работы. Это фильтр по фразе (символам), который позволяет вывести на экране только те строки, которые содержат искомые символы.

Для этого нужно щелкнуть мышкой по любой ячейке, среди которых нужно искать, нажать на вкладке Главная — Сортировка и фильтры — Фильтр.

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

Нужно нажать на стрелочку в том столбце, в котором будет выполняться фильтр. В нашем случае нажимаем стрелочку в столбце Слова и пишем символы, которые мы будем искать — «замок». То есть мы выведем только те строки, в которых есть слово «замок».

Результат будет таков.

Таблица до применения фильтра и таблица после применения фильтра.

Фильтрация не изменяет таблицу и не удаляет строки, она просто показывает искомые строки, скрывая не нужны. Чтобы удалить фильтр, нужно нажать на стрелочку в заголовке — Удалить фильтр с слова…

Также можно нажать на стрелочку и выбрать Текстовые фильтры — Содержит и указать искомые символы.

И далее ввести искомую фразу, например «Мюнхен».

Результат будет таков — только строки, содержащие слово «Мюнхен».

Этот фильтр сбрасывается также, как и предыдущий.

Таким образом, у пользователя есть варианты поиска слова в Excel — собственно сам поиск и фильтр.

Как найти несколько слов в Excel

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

Для посика не одного, а одновременно нескольких слов, необходимо выполнить следующее:

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

Excel открывает большие возможности в обработке массива цифр и строк. Сегодня мы разберем, как в excel обработать большой объем данных. В этой части мы не будем разбирать макросы. Цель этой статьи — научиться работать с самыми доступными и простыми формулами excel, которые помогут выполнить нашу работу в большинстве случаев.

Статья будет разделена на 2 части. Содержание первой части, представлена ниже. Начнем без теории. Вряд ли она вам интересна.

Содержание:

  • Как в excel найти повторяющееся значение
  • Как в excel быстро удалить дублирующиеся строки
  • Работа со сводной таблицей в excel
  • Как в excel «подтянуть» данные из другого листа или файла
  • Что такое функции правсимв и левсимв и как их применять

Как в excel найти повторяющееся значение

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

Возьмем таблицу. В столбец Е ставим равно и затем, в поиске «Другие функции» ищем нужную нам формулу (см. рис 1)

Рис 1. Поиск формулы

Для поиска повторяющегося значения, в данном случае, в коде товара по столбцу А, мы будем пользоваться простой формулой  = СЧЕТЕСЛИ

Рис 2 . Формула СЧЕТЕСЛИ

Выделяем весь столбец «А», и в диапазоне аргументов функций ( маленькое голубое окошко посреди экрана), у нас появляется А:А, то есть весь выделенный диапазон по этому столбцу. см. рис 3.

Рис 3.

Переходим в окно «критерий», и выделяем только первую строку по коду товара. У нас она отразится, как А2. см. рис. 3.

Рис 4

Далее, нажимаем «ок», и в столбце «Е» появляется цифра 1. Это значит, что по товару 100101200 Молоко Вологодское 1% жирности, только один такой товар, нет дублей. См. рис 5.

Рис 5.

«Протягиваем» значения по столбцу «Е» вниз, и мы получаем результат, а именно, какие товары у нас имеют дубль в нашем списке, см рис 6. У нас проявилось 2 одинаковых товара, (их excel обозначил цифрой 2), которые, для наглядности вручную выделил желтым.

рис 6. Результат поиска повторяющихся кодов товара

Если бы у нас было три одинаковых товара в списке, то excel, соответственно, проставил цифру 3. И так далее. Уже через простой фильтр, можно выделить, все, что больше 1 и увидеть полную картину.

Как в excel удалить дублирующиеся строки

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

Мы воспользуемся функцией, которая уже встроена в панель excel. См. на панели закладку » ДАННЫЕ». Наша функция так и называется «Удалить дубликаты».

Мы выделяем область поиска, у нас это вновь столбец А. См рис 7.

(В более поздней версии excel, можно все находить через поисковое окно.)

Рис 7. Удалить дубликаты

Далее нам просто нужно подтвердить удаление. Однако, для наглядности, выделил зеленым те задвоенные строки, которые у нас есть. Это строка 7 и 21. См рис 8.

Рис 8

Теперь на панели жмем кнопку «удалить дубликаты». У нас появляется окошко. Здесь нам автоматически предлагает удалить всю горизонтальную строку, то есть «автоматически расширить выделенный диапазон». Жмем на кнопку «удалить дубликаты». См рис 9

Рис 9

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

Рис 10

Все. Теперь мы видим окно с оповещением, что дубль в количестве 1 строки был удален. Теперь, на месте 21-ой строки по товару-дублю, появился следующий товар из нижнего списка. См. рис 11.

Рис 11

Исходя из описания, может показаться, что по времени занимает не меньше, чем в первом варианте, но на самом деле это не так. Я просто эту функцию расписал очень подробно.

Как в excel обработать большой объем данных, сводная таблица

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

Смотрим нашу таблицу. В панели инструментов ищем закладку «ВСТАВКА». Под панелью инструментов, в верхнем левом углу, появляется иконка, которая так и называется «Сводная таблица». см. рис 12.  (Или ищем ее в поиске новой версии excel)

Мы выделяем все столбцы или столбцы интересующих нас значений.

рис 12.

Затем нажимаем на иконку «сводная таблица». У нас выходит окошко, в котором выделен диапазон столбцов. По умолчанию, excel предлагает сводную таблицу вынести на новый лист.  см. рис 13. Мы так и делаем.

рис 13

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

рис 14

Теперь мы выбираем нужные нам значения из правого верхнего участка. Раз мы договорились, что нам нужно знать сколько у нас товара по одному наименованию, то выбираем галкой наименование товара. См. рис 15.

рис 15

По аналогии, мы ставим галку напротив количества (остатки в шт, склад 1).

При этом, перемещаем данные с количеством не в окно «название строк», а в окно «Значения». см. рис 16

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

рис 16

Правой клавишей мыши нажимаем на столбец с количеством. См. рис 17. У нас открывается окно, где в строке ИТОГИ ПО, мы ставим галку не по количеству (строк), как на картинке, а по сумме.

рис 17

Теперь мы получаем именно сведенное количество по каждому товару. См рис 18.

рис 18. Свод товаров по количеству

Для сравнения и наглядности, возвращаемся в исходный лист, (см. рис 19) и  мы видим:

одинаковые товары по наименованию, помеченные синим цветом 3+3 = 6 штук.

одинаковые товары, помеченные зеленым 5+56 = 61 штука.

Тоже самое у нас в сводной таблице ( рис 18), 6 и 61 штука.

рис 19

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

Как в excel подтянуть данные из одного диапазона в другой, с помощью функции ВПР

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

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

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

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

Также необходимо, что бы все источники были в одном формате. Если мы говорим о числах, то в числовом формате.

Итак, у нас есть исходный файл, на листе 1, (см. рис 20)

рис 20

Из листа 2, (рис 21) мы будем подтягивать цифры в лист 1. Обратите внимание, что количества на листах разное. Строки также могут быть смещены в списке или перемешаны, поэтому, простым сложением одной цифры с другой нам не обойтись.

рис 21

Для нас данные на листе 1 те, к которым нужно подтянуть другие значения. Также действуем через знак равно «=». В левом верхнем углу, через поиск других функций, находим ВПР, см рис 22.

рис 22

Затем, у нас открывается окно и мы выделяем весь столбец А, то есть искомое значение. Оно в новом окне выделяется, как А:А, см рис 23.

рис 23

Далее, мышкой переходим в самом окошке на вторую строку «таблица», только после этого переходим на лист 2 нашего файла.

рис 24

И от столбца «А» выделяем и протягиваем к столбцу с количеством. В данном случае, к  столбцу «D», см рис 25.

рис 25

Столбец D, это четвертый столбец начиная с искомого значения, то есть с кода товара в столбце А.

Поэтому, мы ставим в третьем поле окошка «номер столбца» цифру 4. и в поле «интервальный просмотр» всего ноль. В итоге у нас получается заполненное окошко, см рис 26.

рис 26

Нажимаем «ок», и получаем подтянутую цифру со второго листа, по коду товара 100101200. см. рис 27.

рис 27

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

рис 28

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

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

Как в excel обработать большой объем данных, функция правсимв и левсимв

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

Для этого, нам в помощь функция excel: правсимв и левсимв. То есть с помощью этой функции можно слева или справа нашего значения, например наименования товара, убрать лишние знаки.

Итак,, нам нужно взять только часть от полного наименования. Смотрим наш рис 29, к примеру, нам нужно только слово «молоко». Мы также в окне поиска формул ищем = левсимв.

рис 29

У нас появляется окошко, см рис 30.

рис 30

Мы выделяем интересующий нас столбец «В», в строке «текст» он появляется как В:В, см рис 31.

рис 31

Далее, в строку «количество знаков» мы ставим ту цифру, сколько букв или символов содержит слово или слова с пробелом начиная с левой стороны. Если нам нужно только слово «молоко», то в нем, с учетом пробела 7 букв, поэтому, ставим цифру 7. См. рис 32.

рис 32

Вот и обрезалось наше наименование только в нужное нам слово, см. рис 33.

рис 33

Теперь остается только «протянуть» вниз, и все значения с первыми 7-ю символами с левой стороны, будут в нашей таблице., см рис 34.

рис 34

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

Заключение

Я отдельно сделал статью, как в excel вести учет и планирование товарных запасов. Ели интересно, статью можно почитать здесь.

Чтобы не утяжелять прочтение, разделю материал на две части. В следующей части пойдет речь о том, как в excel обработать большой объем данных с помощью функции СЦЕПИТЬ, построения графиков и диаграмм. Как автоматически подсветить значения верхнего или нижнего порога, и как седлать пароль на страницу или всю книгу в excel, и так далее.

Надеюсь материал был полезным, всего Вам хорошего. Успехов!

Публикации  »  VBA, Excel Бесплатный хостинг + SSL-сертификат

Зарегистрируйте домен и получите 2 месяца бесплатного хостинга и SSL-сертификат на 1 год в подарок

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

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

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

  Sheets("Данные").Select  For y = 1 To Cells.SpecialCells(xlLastCell).Row      If Cells(y, 1) = "123" Then          Exit For      End If  Next y  MsgBox "Нашел в строке: " + CStr(y)  

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

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

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

  Sheets("Данные").Select  Set fcell = Columns("A:A").Find("123")  If Not fcell Is Nothing Then      MsgBox "Нашел в строке: " + CStr(fcell.Row)  End If  

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

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»

  With Worksheets(1).Range("A1:A50")    Set c = .Find("asd", LookIn:=xlValues)    Do While Not c Is Nothing      c.Value = "qwe"      Set c = .FindNext(c)    Loop  End With  

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

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

  With Worksheets(1).Range("A1:A50")    Set c = .Find("asd", lookin:=xlValues)    If Not c Is Nothing Then      firstResult = c.Address      Do        c.Font.Bold = True        Set c = .FindNext(c)        If c Is Nothing Then Exit Do      Loop While c.Address <> firstResult    End If  End With  

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

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

  With Worksheets(1).Range("A1:A50")    Set c = .Find("asd", lookin:=xlValues)    If Not c Is Nothing Then      firstResult = c.Address      Do        c.Font.Bold = True        Set c = .Find("asd", After:=c, lookin:=xlValues)        If c Is Nothing Then Exit Do      Loop While c.Address <> firstResult    End If  End With  

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

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

  lLastRow = Cells.SpecialCells(xlLastCell).Row  lLastCol = Cells.SpecialCells(xlLastCell).Column  Application.FindFormat.Font.Italic = True  With Worksheets(1).Range(Cells(1, 1), Cells(lLastRow, lLastCol))    Set c = .Find("", SearchFormat:=True)    Do While Not c Is Nothing      c.Font.Italic = False      Set c = .Find("", After:=c, SearchFormat:=True)    Loop  End With  

Примечание: В данном примере намеренно не используется FindNext для поиска следующей ячейки, т.к. он не учитывает формат (статья об этом:

https://support.microsoft.com/ru-ru/kb/282151)

Коротко опишу алгоритм поиска Примера 4. Первые две строки определяют последнюю строку (lLastRow) на листе и последний столбец (lLastCol). 3-я строка задает формат поиска, в данном случае, будем искать ячейки с шрифтом Italic. 4-я строка определяет область ячеек с которой будет работать программа (с ячейки A1 и до последней строки и последнего столбца). 5-я строка осуществляет поиск с использованием SearchFormat. 6-я строка — цикл пока результат поиска не будет пустым. 7-я строка — меняем шрифт на обычный (не курсив), 8-я строка продолжаем поиск после найденной ячейки.

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

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

  With Application.FindFormat.Font     .Name = "Arial"     .FontStyle = "Regular"     .Size = 10   End With  

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

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

  Set c = Worksheets(1).UsedRange.Find("*", SearchDirection:=xlPrevious)  If Not c Is Nothing Then    lLastRow = c.Row: lLastCol = c.Column   Else    lLastRow = 1: lLastCol = 1  End If  MsgBox "lLastRow=" & lLastRow & " lLastCol=" & lLastCol  

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

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

Пример 6: Выделить красным шрифтом ячейки, в которых текст начинается со слова из 4-х букв, первая и последняя буквы «т», при этом после этого слова может следовать любой текст.

  With Worksheets(1).Cells    Set c = .Find("т??т*", LookIn:=xlValues, LookAt:=xlWhole)    If Not c Is Nothing Then      firstResult = c.Address      Do        c.Font.Color = RGB(255, 0, 0)        Set c = .FindNext(c)        If c Is Nothing Then Exit Do      Loop While c.Address <> firstResult    End If  End With  

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

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

  • Тип данных Date в VBA представляется в виде #[месяц]/[день]/[год]#, соответственно, если необходимо найти фиксированную дату, например, 01 марта 2018 года, необходимо искать #3/1/2018#, а не «01.03.2018»
  • В зависимости от формата ячеек, дата может выглядеть по-разному, поэтому, чтобы искать дату независимо от формата, поиск нужно делать не в значениях, а в формулах, т.е. использовать LookIn:=xlFormulas

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

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

  d = Date  Set c = Cells.Find(d, LookIn:=xlFormulas, LookAt:=xlWhole)  If Not c Is Nothing Then    MsgBox "Нашел"  Else    MsgBox "Не нашел"  End If  

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

  d = #3/1/2018#  Set c = Cells.Find(d, LookIn:=xlFormulas, LookAt:=xlWhole)  If Not c Is Nothing Then    MsgBox "Нашел"  Else    MsgBox "Не нашел"  End If  

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

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

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

  d = #3/1/1900#  Set c = Cells.Find(Format(d, "m/d/"), LookIn:=xlFormulas, LookAt:=xlPart)  If Not c Is Nothing Then    MsgBox "Нашел"  Else    MsgBox "Не нашел"  End If  

Категория: VBA, Excel

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

Visual Basic 2010 на примерах

Word и Excel без страха для начинающих. Самый наглядный самоучитель

Microsoft Office Excel 2010

Excel 2013-2016

Microsoft Office Excel 2016

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

Расположение

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

1. Нажимаете кнопку Office в верхнем левом углу экрана и переходите к Параметрам.

image

2. Ищете строку Надстройки и в правой части диалогового окна нажимаете кнопку Перейти. Обязательно проверьте, чтобы левее была надпись Надстройки Excel.

image

3. Ставите галочку напротив Поиск решения и нажимаете ОК.

image

4.Программа выдает предупреждение об отсутствии компонента и предлагает его установить. Соглашаетесь.

image

5. Дожидаетесь окончания установки.

image

6. Если все сделано правильно, то во вкладке Данные появится блок Анализ с кнопкой Поиск решения.

image

Структура

Рассмотрим подробнее основные аргументы и принцип работы функции. Основное окно содержит следующие поля:

  1. 1. Место ввода целевой ячейки, в отношении которой необходимо найти решение, и чему должно быть равно.
  2. 2. Строка аргументов, которые нужно изменять для достижения поставленной цели.

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

  1. 3. Блок добавления ограничений.
  2. 4. Кнопка параметров, при нажатии которой, появляется новое окно, где можно настроить количество повторений, время выполнения, погрешность и отклонение, а также обозначить дополнительные настойки.

image

Использование

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

Читайте еще:  Как перенести таблицу из Excel в файл Word

Перенесем эти сведения на рабочий лист excel.

image

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

  1. 1. Процентная ставка.
  2. 2. Период (кпер).
  3. 3. Сумма платежа (плт).

Для первого года формула будет выглядеть следующим образом:

Важно! Чтобы расчеты были правильными, необходимо зафиксировать значение суммы и процента, нажав клавишу F4 или добавив значки доллара.

Как видите, число отрицательное – это особенной функции БС. Чтобы этого избежать, ячейку с суммой денег нужно сделать отрицательной. Тогда итоговые результаты будут отображаться корректно.

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

Полученная цифра не удовлетворяет условию в 12000 после пятилетнего периода. Теперь необходимо воспользоваться инструментом Поиск решения. При этом изменяемыми параметрами будет процент и первоначальная сумма. Заполняете диалоговое окно построчно.

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

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

Повторяете решение с новой конфигурацией и получаете следующие данные: Как видите, чтобы достигнуть отметки в 12000$ через пять лет, необходимо найти депозит под 4,03 процента годовых и ежегодно пополнять его на сумму 2214 доллара 01 цент.

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий