Мы уже разбирали как быстро найти и заменить данные в Excel по группе ячеек — в столбце или массиве данных. Но как это сделать в одной ячейке и желательно формулой? К примеру? у вас есть список машин, и каждый день вам присылают файл с новым списком машин. Нужно проверить есть ли такие номера в вашем основном списке. Но как обычно в номера машин добавляют пробелы или слеши, а самый худший вариант букву О вместо нуля Если вы регулярно выполняете одну и ту же операцию, то вручную нажимать Ctrl + H каждый раз неудобно, плюс придется запоминать, какие именно символы нужно заменять. Функции ПОДСТАВИТЬ и ЗАМЕНИТЬ в Excel — это отличный выход из ситуации.
Эти функции немного обделены вниманием, не знаю почему, но уверен они супер полезны для обработки и сведения больших массивов данных, ведь ими можно легко настроить автозамену. Ниже расскажу поподробнее о каждом и покажу, чем все же они различаются. Разбирать будем на примере.
Есть номер А 777 АА 01 из него надо формулой сделать А777АА01 формулой.
Содержание
Функция ПОДСТАВИТЬ в Excel
Как работает формула показано на первой картинке. Состав разберем ниже:
ПОДСТАВИТЬ(текст;стар_текст;нов_текст;[номер_вхождения])
- Текст — адрес ячейки или сам текст, в котором надо сделать замену символов, в примере А 777 АА 01
- Стар_текст — что нам нужно заменить? Пробел.
- Нов_текст — на что нужно заменить? Меняем на ничего, т.е. на пусто в формуле, это будет «»
- Номер_вхождения — заполнять необязательно, но при этом реквизит очень полезный, в официальной справке говорится о «вхождении символа», но объясню простым языком. Здесь вы можете указать номер символа в строке (пробела в нашем случае). Т.е. если нужно заменить только пробел между 777 и АА (это второй по счету пробел в номере), формула будет выглядеть как
=ПОДСТАВИТЬ(A:A;" ";"";2)
И в итоге вы получите А 777АА 01
Но, как правило, я использую вот такие конструкции, чтобы убрать все ненужные символы, которые уже понаставили при заполнении.
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A:A;" ";"");".";"");"/";"")
В данном случае мы убираем пробел, точку и слэш в номере «А 777 АА/01.»
Функция ЗАМЕНИТЬ и ЗАМЕНИТЬБ в Excel
Функция ЗАМЕНИТЬ делает почти все тоже самое, что и подставить, но делает это с определенного символа. Аргументы такие:
ЗАМЕНИТЬ(стар_текст;начальная_позиция;число_знаков;нов_текст)
Пример. Необходимо первую букву номера машины заменить на другую. Из А777АА01 сделать Б777АА01
Сначала описание аргументов:
- Стар_текст — как и в ПОДСТАВИТЬ, текст, в котором нужно заменить т.е. А777АА01
- Начальная_позиция — с какого символа производить замену, с первого.
- Число_знаков сколько знаков меняем — один
- Нов_текст — и на что меняем? На букву Б
Очень похоже на ПСТР, честно говоря :)
ЗАМЕНИТЬБ — это маленькая загадка Excel, даже в иностранных интернетах мало информации о ней. Если вкратце, то просто ЗАМЕНИТЬ меняет любой символ (даже если он размером 2 байта), ЗАМЕНИТЬБ меняет только однобайтные символы (аргумент число_знаков меняется на). Практического применения я для себя не нашел :) Если кто-нибудь подскажет, буду благодарен!
UPD. Как мне подсказали, к двухбайтовым символам относятся большинство языков с ироглифами!
ПОДСТАВИТЬ и ЗАМЕНИТЬ в Excel. Что еще?
Обе функции учитывают регистр! Т.е. если вы указали большую букву А, маленькая буква заменяться не будет!
Функция ПОДСТАВИТЬ доступна только в версиях 2007 и выше, будьте аккуратны, если конечный пользователь будет использовать более ранние версии!
Комментарии:
К этой записи пока нет комментариев. Возможно вы будете первым?