Содержание

Поиск слов

Поиск слов

Слова спрятаны в таблице букв. Найдите их как можно быстрее.


Примеры

Сорока 1 Урок 4

от Yuliiakusmin

Поиск слов

Прилагательные

от Elenk

Поиск слов

Диалог 2, урок 3А

от U10242800

Поиск слов

Семья

от Djdaniorerio

Поиск слов

Тело

от U37907604

Поиск слов

Үйл үг

от Ulzii

Поиск слов

спорт

от Ovca015

Поиск слов

Wörter mit St, Sp

от U17939631

Поиск слов

Berufe

от Darjasahibullin

Поиск слов

Adjektive

от Phamlong246845

Поиск слов

Schulfächer

от Yevgeniya2507

Поиск слов

Frühling/Schneider

от Schneider15

Поиск слов

Марина Павленко «Півтора бажання»

от Tane4kasch27

Поиск слов

Wörtersuche Märchen

от Proesch

Поиск слов

Elektrizität im Alltag

от Annkristin8

Поиск слов

Lebenslauf

от Ildiko96

Поиск слов

Глаголы

от Elenk

Поиск слов

PARTIZIP II: regelmäßige Verben

от Luisa151

Поиск слов

Days of the week Wordsearch

от Chiromantie

Поиск слов

Im Klassenraum

от Grotemeyer

Поиск слов

Wörtersuche Perfekt unregelmäßig

от Moep

Поиск слов

Beste Freunde A1. 1. Lektion 8

от Gutentag5

Поиск слов

Weather

от Nikrapti

Поиск слов

Farben

от Olgapanina

Поиск слов

Haustiere Wörtersuche

от Sprachlernzentrum

Поиск слов

Цвета

от Elenk

Поиск слов

Wörter mit ck

от Teamanzo

Поиск слов

Sonnensystem

от Ankehess

Поиск слов

Wörter mit z und tz

от Rott

Поиск слов

Menschen A1. 1 Familienwörter

от Alexaseng

Поиск слов

Зарегистрируйтесь, чтобы начать создание

Узнайте о других шаблонах

Сопоставить

Викторина

Случайные карты

Групповая сортировка

Случайное колесо

Пропущенное слово

Найди пару

Флэш-карты

Привести в порядок

Откройте поле

Диаграмма с метками

Совпадающие пары

Анаграмма

Перевернуть плитки

Ударь крота

Викторина «Игровое шоу»

Кроссворд

Восстановить автоматически сохраненное: ?

Регулярные выражения в Python: теория и практика

Рассмотрим регулярные выражения в Python, начиная синтаксисом и заканчивая примерами использования. 0-9];

  • \w — заменяет любую цифру, букву, а также знак нижнего подчёркивания;
  • \W — любой символ кроме латиницы, цифр или нижнего подчёркивания;
  • \s — соответствует любому пробельному символу;
  • \S — описывает любой непробельный символ.
  • Для чего используются регулярные выражения

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

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

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

    Хотите узнать больше? Обратите внимание на статью о регулярках для новичков.

    Регулярные выражения в Python

    В Python для работы с регулярками есть модуль re. Его нужно просто импортировать:

    import re

    А вот наиболее популярные методы, которые предоставляет модуль:

    • re.match()
    • re.search()
    • re.findall()
    • re.split()
    • re.sub()
    • re.compile()

    Рассмотрим каждый из них подробнее.

    re.match(pattern, string)

    Этот метод ищет по заданному шаблону в начале строки. Например, если мы вызовем метод

    match() на строке «AV Analytics AV» с шаблоном «AV», то он завершится успешно. Но если мы будем искать «Analytics», то результат будет отрицательный:

    import re
    result = re.match(r'AV', 'AV Analytics Vidhya AV')
    print result
    
    Результат:
    <_sre.SRE_Match object at 0x0000000009BE4370>
    

    Искомая подстрока найдена. Чтобы вывести её содержимое, применим метод group() (мы используем «r» перед строкой шаблона, чтобы показать, что это «сырая» строка в Python):

    result = re. match(r'AV', 'AV Analytics Vidhya AV')
    print result.group(0)
    
    Результат:
    AV

    Теперь попробуем найти «Analytics» в данной строке. Поскольку строка начинается на «AV», метод вернет None:

    result = re.match(r'Analytics', 'AV Analytics Vidhya AV')
    print result
    
    Результат:
    None

    Также есть методы start() и end() для того, чтобы узнать начальную и конечную позицию найденной строки.

    result = re.match(r'AV', 'AV Analytics Vidhya AV')
    print result.start()
    print result.end()
    
    Результат:
    0
    2

    Эти методы иногда очень полезны для работы со строками.

    re.search(pattern, string)

    Метод похож на match(), но ищет не только в начале строки. В отличие от предыдущего,

    search() вернёт объект, если мы попытаемся найти «Analytics»:

    result = re.search(r'Analytics', 'AV Analytics Vidhya AV')
    print result.group(0)
    
    Результат:
    Analytics

    Метод search() ищет по всей строке, но возвращает только первое найденное совпадение.

    re.findall(pattern, string)

    Возвращает список всех найденных совпадений. У метода findall() нет ограничений на поиск в начале или конце строки. Если мы будем искать «AV» в нашей строке, он вернет все вхождения «AV». Для поиска рекомендуется использовать именно findall(), так как он может работать и как re.search(), и как re.match().

    result = re.findall(r'AV', 'AV Analytics Vidhya AV')
    print result
    
    Результат:
    ['AV', 'AV']

    re.split(pattern, string, [maxsplit=0])

    Этот метод разделяет строку по заданному шаблону.

    result = re.split(r'y', 'Analytics')
    print result
    
    Результат:
    ['Anal', 'tics']

    В примере мы разделили слово «Analytics» по букве «y». Метод split() принимает также аргумент maxsplit со значением по умолчанию, равным 0. В данном случае он разделит строку столько раз, сколько возможно, но если указать этот аргумент, то разделение будет произведено не более указанного количества раз. Давайте посмотрим на примеры Python RegEx:

    result = re.split(r'i', 'Analytics Vidhya')
    print result
    
    Результат:
    ['Analyt', 'cs V', 'dhya'] # все возможные участки.
    result = re.split(r'i', 'Analytics Vidhya',maxsplit=1)
    print result
    
    Результат:
    ['Analyt', 'cs Vidhya']

    Мы установили параметр maxsplit равным 1, и в результате строка была разделена на две части вместо трех.

    re.sub(pattern, repl, string)

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

    result = re.sub(r'India', 'the World', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    'AV is largest Analytics community of the World'

    re.compile(pattern, repl, string)

    Мы можем собрать регулярное выражение в отдельный объект, который может быть использован для поиска. Это также избавляет от переписывания одного и того же выражения.

    pattern = re.compile('AV')
    result = pattern.findall('AV Analytics Vidhya AV')
    print result
    result2 = pattern.findall('AV is largest analytics community of India')
    print result2
    
    Результат:
    ['AV', 'AV']
    ['AV']

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

    ОператорОписание
    .Один любой символ, кроме новой строки \n.
    ?0 или 1 вхождение шаблона слева
    +1 и более вхождений шаблона слева
    *0 и более вхождений шаблона слева
    \wЛюбая цифра или буква (\W — все, кроме буквы или цифры)
    \dЛюбая цифра [0-9] (\D — все, кроме цифры)
    \sЛюбой пробельный символ (\S — любой непробельный символ)
    \bГраница слова
    [. и $Начало и конец строки соответственно
    {n,m}От n до m вхождений ({,m} — от 0 до m)
    a|bСоответствует a или b
    ()Группирует выражение и возвращает найденный текст
    \t, \n, \rСимвол табуляции, новой строки и возврата каретки соответственно

    Больше информации по специальным символам можно найти в документации для регулярных выражений в Python 3.

    Перейдём к практическому применению Python регулярных выражений и рассмотрим примеры.

    Задачи

    Вернуть первое слово из строки

    Сначала попробуем вытащить каждый символ (используя .)

    result = re.findall(r'.', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['A', 'V', ' ', 'i', 's', ' ', 'l', 'a', 'r', 'g', 'e', 's', 't', ' ', 'A', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', ' ', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', ' ', 'o', 'f', ' ', 'I', 'n', 'd', 'i', 'a']

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

    result = re.findall(r'\w', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['A', 'V', 'i', 's', 'l', 'a', 'r', 'g', 'e', 's', 't', 'A', 'n', 'a', 'l', 'y', 't', 'i', 'c', 's', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', 'o', 'f', 'I', 'n', 'd', 'i', 'a']

    Теперь попробуем достать каждое слово (используя * или +)

    result = re.findall(r'\w*', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['AV', '', 'is', '', 'largest', '', 'Analytics', '', 'community', '', 'of', '', 'India', '']

    И снова в результат попали пробелы, так как * означает «ноль или более символов». Для того, чтобы их убрать, используем +:

    result = re.findall(r'\w+', 'AV is largest Analytics community of India')
    print result
    Результат:
    ['AV', 'is', 'largest', 'Analytics', 'community', 'of', 'India']

    Теперь вытащим первое слово, используя ^:

    result = re. , то мы получим последнее слово, а не первое:

    result = re.findall(r'\w+$', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    [‘India’]

    Вернуть первые два символа каждого слова

    Вариант 1: используя \w, вытащить два последовательных символа, кроме пробельных, из каждого слова:

    result = re.findall(r'\w\w', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['AV', 'is', 'la', 'rg', 'es', 'An', 'al', 'yt', 'ic', 'co', 'mm', 'un', 'it', 'of', 'In', 'di']

    Вариант 2: вытащить два последовательных символа, используя символ границы слова (\b):

    result = re.findall(r'\b\w.', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['AV', 'is', 'la', 'An', 'co', 'of', 'In']

    Вернуть домены из списка email-адресов

    Сначала вернём все символы после «@»:

    result = re.findall(r'@\w+', 'abc. [email protected], [email protected], [email protected], [email protected]')
    print result
    
    Результат:
    ['@gmail', '@test', '@analyticsvidhya', '@rest']

    Как видим, части «.com», «.in» и т. д. не попали в результат. Изменим наш код:

    result = re.findall(r'@\w+.\w+', '[email protected], [email protected], [email protected], [email protected]')
    print result
    
    Результат:
    ['@gmail.com', '@test.in', '@analyticsvidhya.com', '@rest.biz']

    Второй вариант — вытащить только домен верхнего уровня, используя группировку — ( ):

    result = re.findall(r'@\w+.(\w+)', '[email protected], [email protected], [email protected], [email protected]')
    print result
    
    Результат:
    ['com', 'in', 'com', 'biz']

    Извлечь дату из строки

    Используем \d для извлечения цифр.

    result = re.findall(r'\d{2}-\d{2}-\d{4}', 'Amit 34-3456 12-05-2007, XYZ 56-4532 11-11-2011, ABC 67-8945 12-01-2009')
    print result
    
    Результат:
    ['12-05-2007', '11-11-2011', '12-01-2009']

    Для извлечения только года нам опять помогут скобки:

    result = re. findall(r'\d{2}-\d{2}-(\d{4})', 'Amit 34-3456 12-05-2007, XYZ 56-4532 11-11-2011, ABC 67-8945 12-01-2009')
    print result
    
    Результат:
    ['2007', '2011', '2009']

    Извлечь слова, начинающиеся на гласную

    Для начала вернем все слова:

    result = re.findall(r'\w+', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['AV', 'is', 'largest', 'Analytics', 'community', 'of', 'India']

    А теперь — только те, которые начинаются на определенные буквы (используя []):

    result = re.findall(r'[aeiouAEIOU]\w+', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['AV', 'is', 'argest', 'Analytics', 'ommunity', 'of', 'India']

    Выше мы видим обрезанные слова «argest» и «ommunity». Для того, чтобы убрать их, используем \b для обозначения границы слова:

    result = re.findall(r'\b[aeiouAEIOU]\w+', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['AV', 'is', 'Analytics', 'of', 'India']

    Также мы можем использовать ^ внутри квадратных скобок для инвертирования группы:

    result = re. aeiouAEIOU ]\w+', 'AV is largest Analytics community of India')
    print result
    
    Результат:
    ['largest', 'community']

    Проверить формат телефонного номера

    Номер должен быть длиной 10 знаков и начинаться с 8 или 9. Есть список телефонных номеров, и нужно проверить их, используя регулярки в Python:

    li = ['9999999999', '999999-999', '99999x9999']
    
    for val in li:
        if re.match(r'[8-9]{1}[0-9]{9}', val) and len(val) == 10:
            print 'yes'
        else:
            print 'no'
    
    Результат:
    yes
    no
    no

    Разбить строку по нескольким разделителям

    Возможное решение:

    line = 'asdf fjdk;afed,fjek,asdf,foo' # String has multiple delimiters (";",","," ").
    result = re.split(r'[;,\s]', line)
    print result
    
    Результат:
    ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo']

    Также мы можем использовать метод re.sub() для замены всех разделителей пробелами:

    line = 'asdf fjdk;afed,fjek,asdf,foo'
    result = re. sub(r'[;,\s]',' ', line)
    print result
    
    Результат:
    asdf fjdk afed fjek asdf foo

    Извлечь информацию из html-файла

    Допустим, нужно извлечь информацию из html-файла, заключенную между <td> и </td>, кроме первого столбца с номером. Также будем считать, что html-код содержится в строке.

    Пример содержимого html-файла:

    1NoahEmma2LiamOlivia3MasonSophia4JacobIsabella5WilliamAva6EthanMia7MichaelEmily

    С помощью регулярных выражений в Python это можно решить так (если поместить содержимое файла в переменную test_str):

    result = re.findall(r'\d([A-Z][A-Za-z]+)([A-Z][A-Za-z]+)', test_str)
    print result
    
    Результат:
    [('Noah', 'Emma'), ('Liam', 'Olivia'), ('Mason', 'Sophia'), ('Jacob', 'Isabella'), ('William', 'Ava'), ('Ethan', 'Mia'), ('Michael', 'Emily')]

    Адаптированный перевод «Beginners Tutorial for Regular Expressions in Python»

    Цифры 1 - 20 Поиск слов

    Что такое поиск слов?

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

    Как выбрать слова для поиска слов?

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

    Как поиск по словам используется в классе?

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

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

    Кому подходит поиск по словам?

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

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

    Как создать шаблон поиска слов?

    Для самых простых шаблонов поиска по словам подойдет WordMint!

    Готовые шаблоны

    Чтобы быстро получить готовый шаблон, просто выполните поиск среди более чем 500 000 существующих шаблонов WordMint. Из такого большого выбора вы обязательно найдете то, что подходит именно вам!

    Создайте свою учетную запись с нуля
    • Войдите в свою учетную запись (присоединение бесплатно!)
    • Перейти к «Моим головоломкам»
    • Нажмите «Создать новую головоломку» и выберите «Поиск слов»
    • Выберите макет, введите заголовок и выбранные слова
    • Вот оно! Конструктор шаблонов создаст для вас шаблон поиска слов, и вы сможете сохранить его в своей учетной записи, экспортировать в виде документа Word или PDF и распечатать!

    Как распечатать шаблон поиска слов?

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

    Могу ли я создать поиск слов на других языках?

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

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

    Функции ПОИСК и ПОИСК в Excel с примерами формул

    В учебном пособии объясняется синтаксис функций ПОИСК и ПОИСК в Excel и приводятся примеры формул для расширенного нетривиального использования.

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

    Функция ПОИСК Excel

    Функция НАЙТИ в Excel используется для возврата позиции определенного символа или подстроки в текстовой строке.

    Синтаксис функции поиска Excel:

    НАЙТИ(найти_текст, внутри_текста, [начальный_номер])

    Первые 2 аргумента обязательны, последний необязателен.

    • Find_text - символ или подстрока, которую вы хотите найти.
    • Within_text - текстовая строка для поиска. Обычно он предоставляется как ссылка на ячейку, но вы также можете ввести строку непосредственно в формулу.
    • Start_num - необязательный аргумент, указывающий, с какого символа начинать поиск. Если опущено, поиск начинается с 1 st символ строки внутри_текста.

    Если функция НАЙТИ не находит символ(ы) find_text, возникает ошибка #ЗНАЧ! возвращается ошибка.

    Например, формула =НАЙТИ("d", "найти") возвращает 4, потому что "d" является 4-й -й буквой в слове " найти ". Формула =НАЙТИ("а", "найти") возвращает ошибку, так как в " найти " нет буквы "а".

    Функция ПОИСК в Excel — о чем нужно помнить!

    Чтобы правильно использовать формулу НАЙТИ в Excel, имейте в виду следующие простые факты:

    1. Функция НАЙТИ чувствительна к регистру . Если вы ищете совпадение без учета регистра, используйте функцию ПОИСК.
    2. Функция НАЙТИ в Excel не позволяет использовать подстановочных знака .
    3. Если аргумент find_text содержит несколько символов, функция НАЙТИ возвращает позицию первого символа . Например, формула НАЙТИ("ap","happy") возвращает 2, потому что "a" в 2 -я буква в слове "счастливый".
    4. Если внутри_текста содержится несколько вхождений поиска_текста, возвращается первое вхождение. Например, FIND("l", "hello") возвращает 3, что является позицией первого символа "l" в слове "hello".
    5. Если find_text является пустой строкой "", формула Excel FIND возвращает первый символ в строке поиска.
    6. Функция НАЙТИ в Excel возвращает значение #ЗНАЧ! ошибка , если происходит одно из следующих событий:
      • Find_text не существует в пределах_текста.
      • Start_num содержит больше символов, чем внутри_текста.
      • Start_num равен 0 (ноль) или отрицательному числу.

    Функция ПОИСК Excel

    Функция ПОИСК в Excel очень похожа на НАЙТИ тем, что она также возвращает местоположение подстроки в текстовой строке. Синтаксис и аргументы аналогичны FIND:

    .

    ПОИСК(найти_текст, внутри_текста, [начальный_номер])

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

    А вот пара основных формул ПОИСКА в Excel:

    =ПОИСК("рынок", "супермаркет") возвращает 6, поскольку подстрока "рынок" начинается с 6-го -го -го символа слова "супермаркет".

    =ПОИСК("e", "Excel") возвращает 1, так как "e" является первым символом в слове "Excel" без учета регистра.

    Как и НАЙТИ, функция ПОИСК Excel возвращает #ЗНАЧ! ошибка, если:

    • Значение аргумента find_text не найдено.
    • Аргумент start_num больше, чем длина внутри_текста.
    • Start_num равен или меньше нуля.

    Далее в этом руководстве вы найдете еще несколько содержательных примеров формул, которые демонстрируют, как использовать функцию ПОИСК на листах Excel.

    ПОИСК в Excel и ПОИСК в Excel

    Как уже упоминалось, функции НАЙТИ и ПОИСК в Excel очень похожи с точки зрения синтаксиса и использования. Однако у них есть пара отличий.

    1. ПОИСК с учетом регистра и ПОИСК без учета регистра

    Наиболее существенное различие между функциями ПОИСК и НАЙТИ в Excel заключается в том, что ПОИСК не учитывает регистр, а НАЙТИ учитывает регистр.

    Например, ПОИСК("e", "Excel") возвращает 1, так как игнорирует регистр "E", а НАЙТИ("e", "Excel") возвращает 4, поскольку учитывает регистр.

    2.
    Поиск с использованием подстановочных знаков

    В отличие от функции НАЙТИ, функция ПОИСК в Excel допускает подстановочные знаки в аргументе текст_найти:

    • Знак вопроса (?) соответствует одному символу и
    • Звездочка (*) соответствует любой последовательности символов.

    Чтобы увидеть, как это работает с реальными данными, рассмотрим следующий пример:

    Как видно на снимке экрана выше, формула ПОИСК("функция*2013", A2) возвращает позицию первого символа ("f") в подстроке, если текстовая строка, указанная в аргументе внутри_текста, содержит как "функция " и "2013", независимо от того, сколько других символов находится между ними.

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

    Excel Примеры формул НАЙТИ и ПОИСК

    На практике функции Excel НАЙТИ и ПОИСК редко используются сами по себе. Как правило, вы должны использовать их в сочетании с другими функциями, такими как MID, LEFT или RIGHT, и следующие примеры формул демонстрируют некоторые примеры их использования в реальной жизни.

    Пример 1. Найти строку до или после заданного символа

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

    Предположим, у вас есть столбец имен (столбец A), и вы хотите вывести Имя и Фамилию в отдельные столбцы.

    Чтобы получить имя, вы можете использовать НАЙТИ (или ПОИСК) в сочетании с функцией ЛЕВЫЙ:

    =ВЛЕВО(A2, НАЙТИ(" ", A2)-1)

    или

    =ВЛЕВО(A2, ПОИСК(" ", A2)-1)

    Как вы, наверное, знаете, функция Excel ЛЕВЫЙ возвращает указанное количество крайних левых символов в строке. И вы используете функцию НАЙТИ, чтобы определить позицию пробела (""), чтобы сообщить функции ВЛЕВО, сколько символов нужно извлечь. При этом вы вычитаете 1 из позиции пробела, потому что не хотите, чтобы возвращаемое значение включало пробел.

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

    =ВПРАВО(A2,ДЛСТР(A2)-НАЙТИ(" ",A2))

    или

    =ВПРАВО(A2,LEN(A2)-ПОИСК(" ",A2))

    На следующем снимке экрана показан результат:

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

    Пример 2. Найти N-е вхождение заданного символа в текстовую строку

    Предположим, у вас есть несколько текстовых строк в столбце A, скажем, список SKU, и вы хотите найти позицию 2 nd тире в строке. Следующая формула отлично работает:

    = НАЙТИ ("-", A2, НАЙТИ ("-", A2)+1)

    Первые два аргумента легко интерпретировать: найдите тире ("-") в ячейке A2. В третий аргумент (start_num) вы встраиваете еще одну функцию НАЙТИ, которая сообщает Excel, что поиск нужно начинать с символа, следующего за первым вхождением тире (НАЙТИ("-",A2)+1).

    Для возврата позиции 3 рд вхождение , вы вставляете приведенную выше формулу в аргумент start_num другой функции НАЙТИ и добавляете 2 к возвращаемому значению:

    =НАЙТИ("-",A2, НАЙТИ("-", A2, НАЙТИ("-",A2)+1) +2)

    Другой и, вероятно, более простой способ найти N-е вхождение заданного символа — использовать функцию Excel НАЙТИ в сочетании с СИМВОЛОМ и ПОДСТАВИТЬ:

    = НАЙТИ (СИМВОЛ (1), ПОДСТАВИТЬ (A2, "-", СИМВОЛ (1), 3))

    Где «-» — это рассматриваемый символ, а «3» — это N-е вхождение, которое вы хотите найти.

    В приведенной выше формуле функция ПОДСТАВИТЬ заменяет третье вхождение дефиса ("-") на СИМВОЛ(1), который является непечатаемым символом "Начало заголовка" в системе ASCII. Вместо CHAR(1) вы можете использовать любой другой непечатаемый символ от 1 до 31. Затем функция НАЙТИ возвращает позицию этого символа в текстовой строке. Итак, общая формула выглядит следующим образом:

    НАЙТИ(СИМВОЛ(1),ЗАМЕНИТЬ( ячейка , символ ,СИМВОЛ(1), N-е вхождение ))

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

    Примечание. Помните, что функция НАЙТИ в Excel чувствительна к регистру. В нашем примере это не имеет значения, но если вы работаете с буквами и хотите, чтобы соответствовало без учета регистра, используйте функцию ПОИСК вместо НАЙТИ.

    Пример 3. Извлечь N символов после определенного символа

    Чтобы найти подстроку заданной длины в любой текстовой строке, используйте ПОИСК или ПОИСК в Excel в сочетании с функцией СРЕДН. В следующем примере показано, как можно использовать такие формулы на практике.

    В нашем списке SKU, предположим, вы хотите найти первые 3 символа после первого дефиса и вытащить их в другой столбец.

    Если группа символов, предшествующая первому дефису, всегда содержит одинаковое количество элементов (например, 2 символа), это будет тривиальной задачей. Вы можете использовать функцию MID для возврата 3 символов из строки, начиная с позиции 4 (пропуская первые 2 символа и тире):

    = СРЕДНИЙ (A2, 4, 3)

    В переводе на английский язык формула гласит: «Посмотрите в ячейку A2, начните извлечение с символа 4 и верните 3 символа».

    Однако в реальных рабочих листах подстрока, которую необходимо извлечь, может начинаться в любом месте текстовой строки. В нашем примере вы можете не знать, сколько символов предшествует первому тире. Чтобы справиться с этой проблемой, используйте функцию НАЙТИ, чтобы определить начальную точку подстроки, которую вы хотите получить.

    Формула НАЙТИ для возврата положения тире 1 st выглядит следующим образом:

    = НАЙТИ ("-", A2)

    Поскольку вы хотите начать с символа, следующего за тире, добавьте 1 к возвращаемому значению и вставьте указанную выше функцию во второй аргумент (start_num) функции MID:

    =СРЕДН(A2, НАЙТИ("-",A2)+1, 3)

    В этом сценарии функция ПОИСК в Excel работает одинаково хорошо:

    =СРЕДН(A2, ПОИСК("-",A2)+1, 3)

    Замечательно, но что, если группа символов после первого тире содержит другое количество символов? Хм... может быть проблема:

    Как видно на снимке экрана выше, формула отлично работает для строк 1 и 2. В строках 4 и 5 вторая группа содержит 4 символа, но возвращаются только первые 3 символа. В строках 6 и 7 во второй группе всего 2 символа, и поэтому наша формула поиска в Excel возвращает после них тире.

    Если вы хотите вернуть все символы между 1 st и 2 nd вхождениями определенного символа (тире в этом примере), как бы вы поступили? Вот ответ:

    =СРЕДН(A2, НАЙТИ("-",A2)+1, НАЙТИ("-", A2, НАЙТИ("-",A2)+1) - НАЙТИ("-",A2)-1)

    Чтобы лучше понять эту формулу MID, давайте рассмотрим ее аргументы один за другим:

    • 1 ст аргумент (текст). Это текстовая строка, содержащая символы, которые вы хотите извлечь, ячейка A2 в этом примере.
    • 2 nd аргумент (start_position). Определяет позицию первого символа, который вы хотите извлечь. Вы используете функцию НАЙТИ, чтобы найти первый дефис в строке и добавить 1 к этому значению, потому что вы хотите начать с символа, следующего за дефисом: НАЙТИ("-",A2)+1.
    • 3 rd аргумент (num_chars). Указывает количество символов, которое вы хотите вернуть. В нашей формуле это самая сложная часть. Вы используете две функции НАЙТИ (или ПОИСК), одна из которых определяет позицию первого тире: НАЙТИ ("-", A2). А другой возвращает позицию второго тире: НАЙТИ("-", A2, НАЙТИ("-",A2)+1). Затем вы вычитаете первое из второго, а затем вычитаете 1, потому что вы не хотите включать ни одно тире. В результате вы получите количество символов между 1 st и 2 nd тире, это именно то, что мы ищем. Итак, вы передаете это значение аргументу num_chars функции MID.

    Аналогичным образом вы можете вернуть 3 символа после тире 2 nd :

    =СРЕДН(A2, НАЙТИ("-",A2, НАЙТИ("-", A2, НАЙТИ("-",A2)+1) +2), 3)

    Или извлеките все символы между тире 2 nd и 3 rd :

    =СРЕДН(A2, НАЙТИ("-", A2, НАЙТИ("-",A2)+1)+1, НАЙТИ("-",A2, НАЙТИ("-", A2, НАЙТИ("-" ,A2)+1) +2) - НАЙТИ("-", A2, НАЙТИ("-",A2)+1)-1)

    Пример 4.

    Поиск текста в скобках

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

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

    =СРЕДН(A2,ПОИСК("(",A2)+1, ПОИСК(")",A2)-ПОИСК("(",A2)-1)

    Логика этой формулы аналогична тем, которые мы обсуждали в предыдущем примере. И снова самая сложная часть — это последний аргумент, который сообщает формуле, сколько символов нужно вернуть. Это довольно длинное выражение в аргументе num_chars делает следующее:

    • Сначала вы находите положение закрывающей скобки: ПОИСК(")",A2)
    • После этого вы определяете положение открывающей скобки: ПОИСК("(",A2)
    • Затем вы вычисляете разницу между положениями закрывающей и открывающей круглых скобок и вычитаете 1 из этого числа, потому что вы не хотите, чтобы в результате были скобки: ПОИСК(")",A2)-ПОИСК("( ",А2))-1

    Естественно, ничто не мешает вам использовать функцию Excel НАЙТИ вместо ПОИСК, потому что в этом примере нет разницы между регистрозависимостью и регистрозависимостью.