Fruitsekta.ru

Мир ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Найти слово в ячейке excel формула

ПОИСК, ПОИСКБ (функции ПОИСК, ПОИСКБ)

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

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

Описание

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

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

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

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

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

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

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

Синтаксис

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

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

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

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

Замечание

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

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

Если значение аргумента искомый_текст не найдено, #VALUE! возвращено значение ошибки.

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

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

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

Примеры

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

Читать еще:  Как проставить нумерацию страниц в excel

Формула СОВПАД для точного поиска текста в столбце Excel

Функция ВПР и другие поисковые функции выборки в Excel не учитывают большинства символов в просматриваемых значениях. Например, для значений «Оплата» и «оплата» функция ВПР будет возвращать один и тот же результат. Если большая или маленькая буква имеют значения воспользуйтесь функцией СОВПАД.

Как выполнить точный поиск текстового значения в столбце Excel

Ниже на рисунке представлен список идентификаторов MAC-адресов сетевых карт компьютеров и даты последнего входа пользователя в панель администрирования. Идентификаторы на строках листа Excel 3 и 10 выглядят идентичными за исключением двух символов по средине (Ef и eF). Допустим нам необходимо найти идентификатор MAC-адреса сетевой карты с учетом регистра символов (большая или маленькая буква). Формула:

На выше приведенном рисунке отображены результаты вычислений сразу двух формул. В первой формуле использована функция ВПР в ячейке D4: =ВПР(D3;A2:B11;2;ЛОЖЬ), а во второй СОВПАД. Хоть в ячейке D3 введен идентификатор MAC-адреса с 10-ой строки листа, функция возвращает в результате вычислений значения с 3-й строки.

Вторая формула, приведенная ниже с функцией СОВПАД возвращает правильный результат:

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

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

Функция СОВПАД умещенная в функцию СУММПРОИЗВ либо в формулу массива может быть использована для сравнения диапазонов текстовых значений с другими типами значений. В результат будет возвращена таблица массива с логическими значениями ИСТИНА и ЛОЖЬ. В данном примере функция СОВПАД возвращает значение ИСТИНА только при сравнении значений ячеек A10 и D3. При арифметической операции внутри функции умножения таблицы массива на таблицу, возвращенную функцией СТРОКА значение ИСТИНА заменяется на число 1, а ЛОЖЬ на 0. В результате чего функция СУММПРИОЗВ суммирует все значения и возвращает число 10 для функции ИНДЕКС. Ведь все остальные значения равны ЛОЖЬ=0, а все что умножаем на ноль =0. Схематически принцип работы функции СУММПРОИЗВ можно изобразить на такой таблице:

Число 10 возвращено через функцию СУММПРОИЗВ используется как аргумент с номером строки в функции ИНДЕКС, которая возвращает содержимое смежной ячейки справа B10 на 10-ой строке листа в диапазоне B1:B11.

Найти слово в ячейке Excel

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

Проблема

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

Как найти слово в экселе — способы фильтрации

Excel содержит в себе 3 способа текстовой фильтрации, иными словами, фильтровать можно по 3 критериям вхождения слова:

  1. ячейка содержит слово
  2. начинается с него
  3. заканчивается на него

Когда слово содержится в середине строки, после слова и перед ним будут располагаться пробелы. Поэтому мы можем задать именно такой критерий фильтрации, (пример — «* слово *») . Пробелы являются тем самым ограничителем, который позволит ячейки, в которых слово в середине фразы, фильтровать полностью и исключить ситуации, когда оно будет входить в другие слова. «Звездочки» нужны для того, чтобы сообщить Excel, что перед и после слова действительно есть пробелы — по умолчанию он их просто убирает перед поиском, по-видимому, воспринимая их наличие как случайность.

Читать еще:  Срзначесли в excel

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

И критерий номер 3 — ячейка должна начинаться на наше слово — в таком случае пробел должен быть после нашего слова, по аналогичной причине.

Фильтр по слову в Excel

Проблема заключается в том, что в Excel нельзя фильтровать сразу по 3 критериям — можно только по двум. В этой ситуации есть простой лайфхак:

1. Сделать копию исходного столбца
2. Удалить все символы, кроме текста и цифр (и пробелов между ними).

3. Добавить символы в конце и начале каждой ячейки столбца, например, символ «». Можно сделать это на месте с помощью команды на панели !SEMTools, или создать отдельный столбец с формулой:

где A1 — ссылка на соответствующую ячейку столбца с текстом.

4. Нужно заменить оставшиеся пробелы на этот же символ

5. После этого фильтруем по полученному столбцу уже наше слово с «» перед и после него (пример — «слово»). Символ как раз и поможет отфильтровать целые слова. Смотрите пример ниже:

Фильтр столбца по слову, даже самому короткому

Поиск слова в ячейке Excel с помощью формулы

Однозначной формулой, возвращающей «ИСТИНА» или «ЛОЖЬ» для проверки наличия в строке целого слова, будет:

где вашеСлово — искомое слово, а A1 — ячейка, в которой мы его ищем.

Найти слово с помощью формулы

Поиск целых слов в ячейках с помощью !SEMTools

Пожалуй, самое быстрое решение, доступное владельцам полной версии моей надстройки для Excel. Алгоритм простой — выделяем диапазон, жмем макрос, вводим слово, жмем «ОК».

Как выделить произвольное слово в ячейке в Excel?

Узнаем как можно выделить произвольное слово в ячейке (первое, последнее или n-ое по порядку) в Excel в двух вариациях: в виде сложной формулы и пользовательской функции.

Приветствую всех, уважаемые читатели блога TutorExcel.Ru.

Задача выделения конкретных (по порядку) слов из предложения имеет достаточно широкое применение при структурировании и анализе данных, например, выделение части артикула из кода товара, имени или фамилии из полной записи ФИО и т.д.

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


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

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

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

Читать еще:  Редактирование выпадающего списка в excel

Пойдем по порядку.

Выделение первого слова в ячейке в Excel

C помощью функции НАЙТИ найдем позицию первого пробела, а затем воспользуемся функцией ЛЕВСИМВ, которая возвращает указанное количество символов с начала текста (как раз до первого найденного пробела):


Вместо ЛЕВСИМВ можно воспользоваться функцией ПСТР, которая более универсальна и позволяет вернуть заданное количество символов начиная с указанной позиции, а не только с начала строки (в данном случае с 1, так как мы выделяем именно первое слово):


Недостаток такого способа в том, что если в ячейке содержится ровно 1 слово, то она вернет значение ошибки, так как пробелов в нем нет:


Поэтому дополнительно добавим проверку на ошибку — в случае если во фразе нет пробелов, то возвращаем исходный текст:

Выделение последнего слова в ячейке в Excel

С поиском последнего слова все несколько сложнее — мы не знаем сколько их во фразе, поэтому для начала определим количество пробелов в предложении. В этом нам помогут функции ПОДСТАВИТЬ с помощью которой мы сначала удалим все пробелы во фразе, и ДЛСТР, которая покажет символьную длину фразы.
Таким образом, разность длины исходной фразы и фразы без пробелов даст нам итоговое количество пробелов в ячейке.

Далее вновь воспользуемся функцией ПОДСТАВИТЬ и заменим последний пробел (его порядковый номер мы уже знаем) на специальный символ, который точно не встретится в предложении (обычно используются символы #, ^ и т.п.).

После чего функцией ПРАВСИМВ (возвращает указанное количество символов с конца текста) выделяем все символы от специального символа (в данном случае функцией НАЙТИ ищем позицию символа #) до конца предложения:


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

Теперь перейдем к самому сложному варианту — выделению произвольного по порядку слова.

Выделение n-го слова в ячейке в Excel

Воспользуемся следующим приемом — продублируем все пробелы между словами очень большое количество раз (заведомо больше длины фразы, например, 1 000 раз), после чего функцией ПСТР выделяем 1 000 символов умноженные на n (номер нужного слова), а затем функцией ПРАВСИМВ возвращаем только последнюю 1 000 символов (в котором как раз содержится искомое слово).

Далее удаляем все лишние пробелы и получаем:


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

Если же мы хотим достать другое слово, то вместо *4 в примере выше, нужно просто поставить другой номер (1 для первого слова, 2 для второго и т.д.), а если указанный номер больше количества слов в предложении, то в качестве ответа будет получено последнее слово.

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

Пользовательская функция

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

Перейдем в редактор Visual Basic (быстрый переход комбинацией клавиш Alt + F11), создаём новый модуль (Insert -> Module) и вставляем туда код функции:

Ссылка на основную публикацию
Adblock
detector