Загрузите образец книги
В этом руководстве показано, как использовать Функция Excel MID в Excel для извлечения текста из ячейки.
Обзор функций MID
Функция MID Возвращает текст из середины ячейки, определяемой начальным числом и количеством символов.
Чтобы использовать функцию листа MID Excel, выберите ячейку и введите:
(Обратите внимание, как появляются входные данные формулы)
Синтаксис и входы функции MID:
= MID (текст; начальное_число; число_знаков)
текст - Строка текста.
start_num - Номер символа, с которого следует начать выбор.
num_chars - Количество возвращаемых символов после start_num.
Как использовать функцию MID в Excel:
Функция MID извлекает указанное вами количество символов из любого места.
= MID (B3; C3; D3)
Он может начинаться с любого числа в столбце C и любого количества символов в столбце D.
MID для захвата строки между разными разделителями
Если нужная строка находится между двумя разными разделителями, это довольно просто. Например, нам может понадобиться строка между тире («-») и косой чертой («/»).
= MID (B3; НАЙТИ ("-"; B3) + 1; НАЙТИ ("/"; B3) -НАЙТИ ("-"; B3) -1)
В этом случае здесь мы можем использовать FIND, чтобы проверить, с какой позиции символа начинается тире, и добавить 1, чтобы начать извлечение оттуда.
Используйте FIND еще раз, чтобы проверить, с какой позиции символа начинается косая черта, минус позиция тире и 1, чтобы получить длину искомой строки.
Вы также можете использовать ПОИСК. Разница между FIND и SEARCH заключается в том, что первый чувствителен к регистру. Найти такой символ, как пробел, не имеет значения.
= MID (B3; НАЙТИ ("-"; B3) + 1; ПОИСК ("/"; B3) -ПОИСК ("-"; B3) -1)
MID для захвата строки между одним и тем же разделителем
Если строка имеет тот же разделитель, она немного сложнее, чем указанная выше, потому что FIND захватывает первое вхождение. Например, нам может понадобиться строка между первым и вторым пробелами. Но вы также можете указать начальную позицию в FIND.
= MID (B3; НАЙТИ (""; B3) + 1; НАЙТИ (""; B3, НАЙТИ (""; B3) +1) -НАЙТИ ("", B3) -1)
Он использует FIND, как и в приведенном выше примере, чтобы проверить, с какой позиции символа начинается пробел, и добавить 1, чтобы начать извлечение оттуда.
Снова используйте НАЙТИ, чтобы проверить, с какой позиции символа начинается второй пробел, начиная с поиска 1 символа после позиции первого пробела.
И, наконец, минус позиция первого пробела и 1, чтобы получить длину строки, которую мы хотим.
Вы также можете использовать ПОИСК.
= MID (B3; НАЙТИ (""; B3) + 1; ПОИСК (""; B3, НАЙТИ (""; B3) +1) -ПОИСК ("", B3) -1)
MID с номером / датами
Обратите внимание, что MID - это текстовая функция. При использовании MID результатом является текст. Например, вы не сможете суммировать эти числа в ячейке E3 после использования MID.
То же самое происходит с датами, поскольку они распознаются как порядковые номера, а не как текст. Возможно, вам не нужно суммировать даты, но это не работает в фильтрах и сводных таблицах.
Чтобы преодолеть указанные выше проблемы, вы можете использовать VALUE для преобразования текста в значения.
= ЗНАЧЕНИЕ (СРЕДНЕЕ (B3; НАЙТИ (":"; B3) + 2; НАЙТИ (""; B3, НАЙТИ (""; B3) +1) -НАЙТИ (":", B3) -2))
MID для разделения по общему разделителю
Вы можете разделить все слова на разные строки. Следовательно:
= ОБРЕЗАТЬ (MID (ПОДСТАВИТЬ (B $ 3; "", REPT ("", LEN (B $ 3))), (ROWS (B3: B $ 3) -1) * LEN (B $ 3) + 1, LEN (B $ 3) )))
Что нужно, так это использовать SUBSTITUTE для замены всех пробелов притоком повторяющихся пробелов с помощью REPT. В результате текст выглядит так:
«Excel действительно потрясающий»
Приток повторяется тщательно повторяется с общей длиной исходного текста с использованием LEN. Это означает, что номер позиции, с которой начинается извлечение, кратен общей длине. Для первого слова извлеките из позиции 1. Для второго это будет общая длина + 1. Для третьего, общая длина x 2 + 1. И т.д. Чтобы получить n-е слово, используйте ROWS.
Наконец, количество символов всегда соответствует общей длине исходного текста.
Найти N-е слово в строке
Мы могли бы объединить TRIM, LEN, SUBSTITUTE, REPT с MID следующим образом, чтобы получить последнее слово строки.
= ОБРЕЗАТЬ (MID (ПОДСТАВИТЬ (A $ 2; "", REPT ("", LEN (A $ 2))), (B2-1) * LEN (A $ 2) +1, LEN (A $ 2)))
Что дало бы нам следующие результаты:
Перевернуть текстовую строку
Вы можете перевернуть текстовую строку, объединив функцию MID с TEXTJOINT, как показано ниже.
= TEXTJOIN ("", 1, MID (A2, {10,9,8,7,6,5,4,3,2,1}, 1))
Что дало бы нам следующие результаты:
MID в Google Таблицах
Функция MID работает в Google Таблицах точно так же, как и в Excel:
Дополнительные замечания
Если num_chars больше, чем оставшаяся длина текста, функция MID возвращает весь оставшийся текст.
Примеры MID в VBA
Вы также можете использовать функцию MID в VBA. Тип:application.worksheetfunction.mid (текст, начальное_число, число_знаков)
Для аргументов функции (текста и т. Д.) Вы можете либо ввести их непосредственно в функцию, либо определить переменные, которые будут использоваться вместо них.
Вернуться к списку всех функций в Excel