=ПОДСТАВИТЬ(A2;"-";"") удаляет все дефисы из текста в A2: ПОДСТАВИТЬ (по-английски SUBSTITUTE) находит старый текст и ставит на его место новый, здесь пустой. =ПОДСТАВИТЬ(A2;"-";".") поставила бы вместо каждого дефиса точку. В таблицах формулы записаны по-английски, но их можно вводить и по-русски, с точкой с запятой, как выше.
| A | B | C | |
|---|---|---|---|
| 1 | Phone | Digits only | With dots |
| 2 | 555-201-3344 | 5552013344 | 555.201.3344 |
| 3 | 555-870-1122 | 5558701122 | 555.870.1122 |
| 4 | 555-433-9001 | 5554339001 | 555.433.9001 |
=ПОДСТАВИТЬ(A2;"-";"")Результат это текст, даже если остались только цифры. Добавьте -- впереди, =--ПОДСТАВИТЬ(A2;"-";""), если нужно число.
ПОДСТАВИТЬ и ЗАМЕНИТЬ
=SUBSTITUTE(text, old_text, new_text, [instance_num])
=REPLACE(old_text, start_num, num_chars, new_text)
ПОДСТАВИТЬ ищет содержимое: ей неважно, где стоит old_text. ЗАМЕНИТЬ (по-английски REPLACE) ничего не ищет: она отсчитывает символы и перезаписывает num_chars из них начиная с start_num.
| A | B | |
|---|---|---|
| 1 | Text | Result |
| 2 | Report 2025 final | Report 2026 final |
| 3 | Report 2025 final | Report 2026 final |
| 4 | ID-0042 | SKU-0042 |
| 5 | 5551234 | 555-1234 |
=ПОДСТАВИТЬ(A2;"2025";"2026")- B2 и B3 дают одинаковый результат, но B3 работает только потому, что год начинается с 8-го символа. Если текст изменится, ПОДСТАВИТЬ всё равно его найдёт, а ЗАМЕНИТЬ нет.
- B4 меняет первые 2 символа, какими бы они ни были, на
SKU. - B5 использует длину 0: ничего не удаляется, поэтому ЗАМЕНИТЬ вставляет дефис после третьего символа. Это стандартный способ вставить символ в нужную позицию.
Используйте ПОДСТАВИТЬ, когда знаете текст, и ЗАМЕНИТЬ, когда знаете позицию. Для правок по позиции позицию может дать НАЙТИ: =ЗАМЕНИТЬ(A2;НАЙТИ(" ";A2);1;"_") заменяет первый пробел.
Заменить только второе (n-е) вхождение
Четвёртый аргумент ПОДСТАВИТЬ выбирает, какое вхождение изменить. Без него меняются все:
| A | B | |
|---|---|---|
| 1 | Path | Result |
| 2 | 2026-03-15-final | 2026/03/15/final |
| 3 | 2026-03/15-final | |
| 4 | 2026-03-15 final |
=ПОДСТАВИТЬ(A2;"-";"/";2)B2 меняет все дефисы. B3 с 2 меняет только второй и даёт 2026-03/15-final; B4 ставит пробел вместо третьего. Номер вхождения больше, чем число совпадений, ничего не меняет.
| A | B | |
|---|---|---|
| 1 | Plan | New name |
| 2 | Basic monthly |
Ваша очередь: В B2 формулой замените Basic на Standard в названии тарифа из A2.
Удалить несколько разных символов
ПОДСТАВИТЬ обрабатывает один old_text за вызов. Для нескольких вложите вызовы: каждый работает с результатом вызова внутри него.
| A | B | |
|---|---|---|
| 1 | Phone | Digits |
| 2 | (555) 201-3344 | 5552013344 |
| 3 | (555) 870-1122 | 5558701122 |
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;"(";"");")";"");"-";"");" ";"")Читайте изнутри наружу: удалить (, затем ), затем -, затем пробелы. В Microsoft 365 =РЕГЗАМЕНИТЬ(A2;"[^0-9]";"") удаляет за один вызов все символы, кроме цифр. Для лишних пробелов лучше подходит СЖПРОБЕЛЫ, потому что она оставляет один пробел между словами.
Посчитать вхождения символа или слова
ПОДСТАВИТЬ с пустым текстом удаляет все вхождения, поэтому потерянная длина равна числу удалённых символов. Чтобы посчитать слова, разделите на длину слова:
| A | B | C | |
|---|---|---|---|
| 1 | Text | Commas | "red" appears |
| 2 | red, green, red, blue | 3 | 2 |
| 3 | Red, red, red | 2 | 2 |
=ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;",";""))C3 возвращает 2, а не 3: ПОДСТАВИТЬ учитывает регистр, поэтому Red не удаляется. Используйте ПОДСТАВИТЬ(СТРОЧН(A3);"red";""), чтобы считать без учёта регистра.
| A | B | |
|---|---|---|
| 1 | Tags | Count |
| 2 | excel,text,formulas,tips |
Ваша очередь: Теги в A2 разделены запятыми. В B2 посчитайте, сколько всего тегов (на один больше, чем запятых).
Частая ошибка: ПОДСТАВИТЬ для изменения числа
ПОДСТАВИТЬ работает с текстом числа, и результат получается текстовым. =ПОДСТАВИТЬ(A2;"0";"") для 1050 даёт 15 как текст, а формат вроде $1,050.00 игнорируется, потому что ПОДСТАВИТЬ читает хранимое значение, 1050. Чтобы менять числа, используйте арифметику. Чтобы заменить текст сразу во многих ячейках без формул, воспользуйтесь Главная > Найти и выделить > Заменить (Ctrl+H; на Mac Control+H): там есть параметр «Учитывать регистр», и замена выполняется прямо в ячейках.
Часто задаваемые вопросы
Чем ПОДСТАВИТЬ отличается от ЗАМЕНИТЬ в Excel?
ПОДСТАВИТЬ находит текст по содержимому: =ПОДСТАВИТЬ(A2;"old";"new") меняет каждое old. ЗАМЕНИТЬ работает по позиции: =ЗАМЕНИТЬ(A2;5;3;"new") перезаписывает 3 символа начиная с 5-го, какими бы они ни были.
Как удалить символ из ячейки в Excel?
Замените его пустым текстом: =ПОДСТАВИТЬ(A2;"-";"") удаляет все дефисы. Для нескольких символов вложите вызовы: =ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;"(";"");")";"").
Как посчитать, сколько раз символ встречается в ячейке?
Сравните длину до и после его удаления: =ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;",";"")) считает запятые в A2. Для слова разделите на его длину: =(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"red";"")))/3.
Учитывает ли ПОДСТАВИТЬ регистр?
Да. =ПОДСТАВИТЬ("Red red";"red";"blue") даёт Red blue. Чтобы не учитывать регистр, сначала переведите текст в строчные буквы, =ПОДСТАВИТЬ(СТРОЧН(A2);"red";"blue"), или используйте «Найти и заменить» (Ctrl+H), которое по умолчанию регистр не учитывает.