Как определить позицию символа в строке эксель
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Нахождение в EXCEL позиции n-го вхождения символа в слове
Предположим, в ячейке А5 имеется текстовая строка: МАМА МЫЛа РАМУ (см. файл примера ).
Формула: =НАЙТИ(СИМВОЛ(1);ПОДСТАВИТЬ(A5;»А»;СИМВОЛ(1);3)) найдет позицию третьего вхождения символа «А» с учетом регистра (9).
Рассмотрим подробнее. Функция ПОДСТАВИТЬ() заменяет третье вхождение символа «А» на символ с кодом ASCII =1 (заведомо нет в текстовой строке). Затем функция НАЙТИ() находит его и выводит его позицию. Если третьего вхождения не обнаружено, то будет выдана ошибка.
Формула без учета регистра: =НАЙТИ(СИМВОЛ(1);ПОДСТАВИТЬ(СТРОЧН(A5);»а»;СИМВОЛ(1);3))

О подсчете вхождений символов можно прочитать здесь .
Формула: =НАЙТИ(СИМВОЛ(1);ПОДСТАВИТЬ(A5;»МА»;СИМВОЛ(1);2)) найдет позицию второго вхождения подстроки «МА» с учетом регистра (3).
О подсчете вхождений последовательности символов можно прочитать здесь .
Функция ПОИСК() в EXCEL
Искомый_текст — текст, который требуется найти.
Просматриваемая_строка — текст, в которой ищется Искомый_текст .
Нач_позиция — позиция знака в просматриваемой_строке, с которой должен начинаться поиск. Если аргумент нач_позиция опущен, то предполагается значение 1.
В аргументе искомый_текст можно использовать подстановочные знаки — вопросительный знак (?) и звездочку (*). Вопросительный знак соответствует любому знаку; звездочка — любой последовательности знаков. Если нужно найти в тексте вопросительный знак или звездочку, следует поставить перед ними тильду (~).
Если искомый_текст не найден, возвращается значение ошибки #ЗНАЧ!
Функция ПОИСК() не учитывает РЕгиСТР букв. Для поиска с учетом регистра следует воспользоваться функцией НАЙТИ() .
Примеры
Формула =ПОИСК(«к»;»Первый канал») вернет 8, т.к. буква к находится на 8-й позиции слева.
Пусть в ячейке А2 введена строка Первый канал — лучший . Формула =ПОИСК(СИМВОЛ(32);A2) вернет 7, т.к. символ пробела (код 32) находится на 7-й позиции.
Формула =ПОИСК(«#. #»;»Артикул #123# ID») будет искать в строке » Артикул #123# ID » последовательность из 5 символов, которая начинается и заканчивается на знак #.
Чтобы найти позицию второго вхождения буквы «а» в строке «мама мыла раму» используйте формулу =ПОИСК(«а»;»мама мыла раму»;ПОИСК(«а»;»мама мыла раму»)+1). Чтобы определить есть ли третье вхождение буквы «м» в строке «мама мыла раму» используйте формулу =ЕСЛИ(ДЛСТР(ПОДСТАВИТЬ(«мама мыла раму»;»м»;»»;3))=ДЛСТР(«мама мыла раму»);»Нет третьего вхождения м»;»Есть третье вхождение м»)
Формула =ПОИСК(«клад?»;»докладная») вернет 3, т.е. в слове «докладная» содержится слово из 5 букв, первые 4 из которых клад (начиная с третьей буквы слова докладная ).
Функция НАЙТИ() vs ПОИСК()
Функция НАЙТИ() учитывает РЕгиСТР букв и не допускает использование подстановочных знаков. Для поиска без учета регистра, а также для поиска с использованием подстановочных знаков пользуйтесь функцией ПОИСК() .
Связь с функциями ЛЕВСИМВ() , ПРАВСИМВ() и ПСТР()
Функция ПОИСК() может быть использована совместно с функциями ЛЕВСИМВ() , ПРАВСИМВ() и ПСТР() .
Например, в ячейке А2 содержится фамилия и имя «Иванов Иван», то формула =ЛЕВСИМВ(A2;ПОИСК(СИМВОЛ(32);A2)-1) извлечет фамилию, а =ПРАВСИМВ(A2;ДЛСТР(A2)-ПОИСК(СИМВОЛ(32);A2)) — имя. Если между именем и фамилией содержится более одного пробела, то для работоспособности вышеупомянутых формул используйте функцию СЖПРОБЕЛЫ() .
покупка
Как найти n-е вхождение (позицию) символа в текстовой строке в Excel?
Например, в ячейке A1 есть длинное предложение, см. Следующий снимок экрана. И теперь вам нужно найти 3-е вхождение или позицию символа «c» из текстовой строки в ячейке A1. Конечно, вы можете посчитать символы по одному и получить точный результат позиции. Однако здесь мы собираемся представить несколько простых советов, как найти n-е вхождение или позицию определенного символа из текстовой строки в ячейке.

Найти n-е вхождение (позицию) символа в ячейке с помощью формулы поиска
Найти n-е вхождение (позицию) символа в ячейке с помощью VBA
Найти n-е вхождение (позицию) символа в ячейке с помощью Kutools for Excel
Найти n-е вхождение (позицию) символа в ячейке с помощью формулы поиска
Две формулы поиска помогут вам быстро найти n-е вхождение или позицию определенного символа в текстовой строке в ячейках.
Следующая формула покажет вам, как найти третье вхождение буквы «c» в ячейку A3.
Найди Формулу 1
В пустой ячейке введите формулу = НАЙТИ («c»; A1; НАЙТИ («c»; A1) +2) .

А затем нажмите Enter ключ. Отображается положение третьей буквы «c».
Внимание: Вы можете изменить 2 в формуле в зависимости от ваших потребностей. Например, если вы хотите найти четвертую позицию «c», вы можете изменить 2 на 3. А если вы хотите найти первую позицию «c», вы должны изменить 2 на 0.
Найдите формулу 2
В пустой ячейке введите формулу = НАЙТИ (СИМВОЛ (1); ПОДСТАВИТЬ (A1; «c»; СИМВОЛ (1); 3)) , и нажмите Enter .
Внимание: «3» в формуле означает третий «c», вы можете изменить его в зависимости от ваших потребностей.
Подсчитайте, сколько раз слово появляется в ячейке Excel
> Найти n-е вхождение (позицию) символа в ячейке с помощью VBA
Фактически, вы можете применить макрос VB, чтобы легко найти n-е вхождение или позицию определенного символа в одной ячейке.
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.
Шаг 2: нажмите Вставить > Модулии вставьте следующий макрос в окно модуля.
VBA: найдите n-ю позицию символа.
Function FindN(sFindWhat As String, _ sInputString As String, N As Integer) As Integer Dim J As Integer Application.Volatile FindN = 0 For J = 1 To N FindN = InStr(FindN + 1, sInputString, sFindWhat) If FindN = 0 Then Exit For Next End Function
Шаг 3. Теперь, если вы хотите найти точное совпадение позиции третьей буквы «c» в ячейке A1, введите формулу = FindN («c»; A1,3) , и нажмите Enter ключ. Затем он сразу вернет точное положение в конкретной ячейке.
Найти n-е вхождение (позицию) символа в ячейке с помощью Kutools for Excel
Если вам не нравится ни формула, ни VBA, вы можете попробовать удобный инструмент — Kutools for Excel, С его Формула групп, можно найти утилиту — Найти n-е вхождение символа для быстрого возврата n-й позиции символа в ячейке.
После бесплатная установка Kutools for Excel, сделайте следующее:
1. Выберите ячейку, в которую вы хотите вернуть результат, и нажмите Кутулс > Формула Помощник > Формула Помощник . Смотрите скриншот:

2. Затем в всплывающем Формула Помощник диалог, сделайте как показано ниже:
1) Выбрать Поиск из раскрывающегося списка Тип формулы раздел;
2) Выберите Найдите место N-го символа в строке in Выберите формулу раздел;

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

3. Нажмите Ok. И вы получаете позицию n-го вхождения символа в строке.