Зміст
У навчальному посібнику пояснюються функції ЗАМІНИТИ і ПІДСТАНОВКА в Excel з прикладами використання. Дізнайтеся, як використовувати функцію ЗАМІНИТИ з текстовими рядками, числами і датами, а також як вкладати кілька функцій ЗАМІНИТИ або ПІДСТАНОВКА в одну формулу.
Минулого тижня ми розглянули різні способи використання функцій ПОИСК і ЗАМЕНА в таблицях Excel. Сьогодні ми розглянемо ще дві функції для заміни тексту в комірці на основі його розташування або заміни одного текстового рядка на інший на основі вмісту. Як ви вже здогадалися, мова йде про функції Excel ЗАМЕНА і ЗАМЕНА.
Функція ЗАМІНИТИ в Excel
Функція ЗАМЕНА в Excel дозволяє замінити один або кілька символів у текстовому рядку іншим символом або набором символів.
REPLACE(old_text, start_num, num_chars, new_text)Як бачимо, функція ЗАМЕСТИТЬ в Excel має 4 аргументи, всі вони обов'язкові.
- Старий_текст - вихідний текст (або посилання на комірку з вихідним текстом), в якому потрібно замінити деякі символи.
- Start_num - позиція першого символу в old_text, який потрібно замінити.
- Num_chars - кількість символів, які потрібно замінити.
- New_text - текст заміни.
Наприклад, змінити слово " сонце "до" син ", можна скористатися наступною формулою:
=REPLACE("sun", 2, 1, "o")
А якщо ви помістили вихідне слово в якусь комірку, скажімо А2, то в аргументі old_text можна вказати посилання на відповідну комірку:
=REPLACE(A2, 2, 1, "o")
Примітка: Якщо аргумент start_num або num_chars має від'ємне або нечислове значення, формула Excel Замінити повертає помилку #VALUE!
Використання функції REPLACE в Excel з числовими значеннями
Функція ЗАМЕНА в Excel призначена для роботи з текстовими рядками. Звичайно, з її допомогою можна замінити, наприклад, числові символи, що входять до складу текстового рядка:
=REPLACE(A2, 7, 4, "2016")
Зверніть увагу, що ми беремо "2016" у подвійні лапки, як ви зазвичай робите з текстовими значеннями.
Аналогічним чином можна замінити одну або декілька цифр у числі. Наприклад:
=REPLACE(A4, 4, 4, "6")
І знову ж таки, значення заміни потрібно брати в подвійні лапки ("6").
Примітка. Формула ЗАМІНИ в Excel завжди повертає значення текстовий рядок На скріншоті вище зверніть увагу на вирівнювання повернутого текстового значення в B2 по лівому краю і порівняйте його з вирівняним по правому краю вихідним числом в A2. Оскільки це текстове значення, ви не зможете використовувати його в інших обчисленнях, якщо не перетворите його назад в число, наприклад, помноживши на 1 або скориставшись будь-яким іншим методом, описаним в розділі "Як перетворити текст в число".
Використання функції ЗАМІНИТИ в Excel з датами
Як ви щойно побачили, функція REPLACE чудово працює з числами, за винятком того, що повертає текстовий рядок :) Пам'ятаючи, що у внутрішній системі Excel дати зберігаються у вигляді чисел, ви можете спробувати використати деякі формули REPLACE для дат. Результати будуть досить незграбними.
Наприклад, у вас є дата в А2, скажімо, 1-жовтень-14, і ви хочете змінити " Жовтень "до" Листопад "Отже, ви пишете формулу REPLACE(A2, 4, 3, "Nov"), яка вказує Excel замінити 3 символи в комірці A2, починаючи з 4-го символу... і отримуєте наступний результат:
Чому? Тому що "01-Oct-14" - це лише візуальне представлення основного серійного номера (41913), який представляє дату. Отже, наша формула заміни змінює останні 3 цифри у наведеному вище серійному номері на " Листопад " і повертає текстовий рядок "419Nov".
Щоб функція REPLACE в Excel коректно працювала з датами, можна спочатку перетворити дати в текстові рядки за допомогою функції TEXT або будь-яким іншим способом, продемонстрованим в розділі Як перетворити дату в текст в Excel. Або ж можна вбудувати функцію TEXT безпосередньо в аргумент old_text функції REPLACE:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Просимо пам'ятати, що результатом наведеної вище формули є текстовий рядок і тому це рішення працює тільки в тому випадку, якщо ви не плануєте використовувати змінені дати в подальших розрахунках. Якщо ж вам потрібні дати, а не текстові рядки, скористайтеся функцією ДАТНОЕЗНАЧЕНИЕ, щоб перетворити значення, повернуті функцією ЗАМЕНА в Excel, назад в дати:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
Вкладені функції REPLACE для виконання декількох замін в комірці
Досить часто в одній комірці може знадобитися зробити більше однієї заміни. Звичайно, можна зробити одну заміну, вивести проміжний результат в додатковий стовпець, а потім знову скористатися функцією ЗАМЕСТИТЬ. Однак, кращим і більш професійним способом є використання функції ЗАМЕНА вкладені функції REPLACE які дозволяють виконувати декілька замін за допомогою однієї формули. У цьому контексті "вкладеність" означає розміщення однієї функції в іншій.
Розглянемо наступний приклад. Припустимо, у вас є список телефонних номерів у колонці А у форматі "123456789", і ви хочете зробити їх більш схожими на телефонні номери, додавши дефіси. Іншими словами, ваша мета - перетворити "123456789" на "123-456-789".
Вставити перший дефіс дуже просто. Ви пишете звичайну формулу Excel Replace, яка замінює нуль символів з дефісом, тобто додає дефіс в 4-й позиції в комірці:
=REPLACE(A2,4,0,"-")
Результат наведеної вище формули заміни виглядає наступним чином:
Добре, а тепер нам потрібно вставити ще один дефіс у 8-й позиції. Для цього ви поміщаєте наведену вище формулу в іншу функцію Excel ЗАМЕНА. Точніше, вбудовуєте її в функцію старий_текст аргументом іншої функції, щоб друга функція ЗАМЕНА обробляла значення, повернуте першою функцією ЗАМЕНА, а не значення в комірці А2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
В результаті ви отримуєте номери телефонів в потрібному форматі:
Аналогічним чином можна використовувати вкладені функції REPLACE, щоб зробити текстові рядки схожими на дати, додавши пряму похилу риску (/) там, де це необхідно:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Крім того, ви можете перетворити текстові рядки в реальні дати, обернувши наведену вище формулу ЗАМЕСТИТЬ функцією DATEVALUE:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
І, природно, ви не обмежені в кількості функцій, які можна вкласти в одну формулу (сучасні версії Excel 2010, 2013 і 2016 допускають до 8192 символів і до 64 вкладених функцій у формулі).
Наприклад, ви можете використовувати 3 вкладені функції REPLACE, щоб число в A2 відображалося як дата і час:
=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Заміна рядка, який з'являється в іншій позиції в кожній комірці
Досі у всіх прикладах ми мали справу з однотипними величинами і виконували заміни в одній і тій же позиції у кожній комірці. Але реальні завдання часто бувають складнішими. У ваших таблицях символи, що підлягають заміні, можуть не обов'язково знаходитись в одній і тій же позиції у кожній комірці, а отже, вам потрібно буде знайти позицію першого символу Наступний приклад продемонструє, що я маю на увазі.
Припустимо, у вас є список адрес електронної пошти в колонці А. І назва однієї компанії змінилася з "ABC" на, скажімо, "BCA". Отже, вам необхідно оновити адреси електронної пошти всіх клієнтів відповідно.
Але проблема в тому, що назви клієнтів мають різну довжину, і саме тому ви не можете точно вказати, з чого починається назва компанії. Іншими словами, ви не знаєте, яке значення підставляти в аргумент start_num функції Excel ЗАМЕСТИТЬ. Щоб це з'ясувати, скористайтеся функцією Excel НАЙТИ для визначення позиції першого символу в рядку "@abc":
=FIND("@abc",A2)
А потім вкажіть вищевказану функцію FIND в аргументі start_num вашої формули REPLACE:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Порада. Ми включаємо "@" у формулу пошуку та заміни в Excel, щоб уникнути випадкових замін в іменній частині адрес електронної пошти. Звичайно, ймовірність того, що такі збіги відбудуться, дуже мала, і все ж ви можете перестрахуватися.
Як видно на наступному скріншоті, формула без проблем знаходить і замінює старий текст на новий. Однак, якщо текстовий рядок, який потрібно замінити, не знайдено, формула повертає помилку #VALUE!
А ми хочемо, щоб формула повертала не помилку, а оригінальну адресу електронної пошти. Тому давайте вкладемо нашу формулу ПОИСК&ЗАМЕСТИ в функцію ЕСЛИ помилка:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
І ця покращена формула чудово працює, чи не так?
Іншим практичним застосуванням функції ЗАМЕСТИТЬ є написання першої літери в комірці з великої літери. Кожного разу, коли ви маєте справу зі списком імен, продуктів тощо, ви можете використовувати наведену вище формулу, щоб змінити першу літеру на ВЕЛИКИЙ регістр.
Порада: Якщо ви хочете зробити заміни у вихідних даних, більш простим способом буде використання діалогового вікна Знайти і замінити в Excel.
Функція підстановки в Excel
Функція ЗАМЕСТИТЬ в Excel замінює один або декілька екземплярів заданого символу або текстового рядка на вказаний символ (символи).
Синтаксис функції ЗАМЕСТИТЬ в Excel наступний:
SUBSTITUTE(text, old_text, new_text, [instance_num])Перші три аргументи є обов'язковими, а останній - необов'язковим.
- Текст - вихідний текст, в який потрібно підставити символи. Може бути поданий у вигляді тестового рядка, посилання на комірку або результату іншої формули.
- Старий_текст - символ(и), який(і) потрібно замінити.
- New_text - новий(і) символ(и), на який(і) потрібно замінити старий_текст.
- Номер примірника - входження старого_тексту, який потрібно замінити. Якщо його не вказати, то кожне входження старого тексту буде замінено на новий текст.
Наприклад, всі наведені нижче формули замінюють "1" на "2" в комірці A2, але повертають різні результати в залежності від того, яке число ви введете в останньому аргументі:
=SUBSTITUTE(A2, "1", "2", 1)
- Замінює перше входження "1" на "2".
=SUBSTITUTE(A2, "1", "2", 2)
- Замінює друге входження "1" на "2".
=SUBSTITUTE(A2, "1", "2")
- Замінює всі входження "1" на "2".
На практиці функція ЗАМЕСТИТЬ також використовується для видалення непотрібних символів з комірок. Реальні приклади див. у розділі "Реальні приклади":
- Як видалити символи або слова з рядка
- Як видалити непотрібні символи з комірок
Примітка. Функція ПІДСТАНОВКА в Excel - це з урахуванням особливостей конкретного випадку Наприклад, наступна формула замінює всі випадки великої літери "X" на "Y" в комірці A2, але не замінює жодного випадку малої літери "x".
Заміна декількох значень однією формулою (вкладена підстановка)
Як і у випадку з функцією ЗАМЕСТИТЬ в Excel, ви можете вкласти кілька функцій ЗАМЕНА в одну формулу, щоб виконати кілька підстановок за один раз, тобто замінити кілька символів або підрядків однією формулою.
Нехай у вас є текстовий рядок виду " PR1, ML1, T1 " в комірці A2, де "PR" означає "Проект", "ML" означає "Етап" і "T" означає "Завдання". Вам потрібно замінити ці три коди повними назвами. Для цього ви можете написати 3 різні формули ПІДСТАНОВКИ:
=SUBSTITUTE(A2, "PR", "Project ")
=SUBSTITUTE(A2, "ML", "Milestone ")
=SUBSTITUTE(A2, "T", "Task ")
А потім вкласти їх одне в одного:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")
Зверніть увагу, що ми додали пробіл в кінці кожного аргументу new_text для кращої читабельності.
Щоб дізнатися про інші способи заміни декількох значень одночасно, див. статтю Як виконати масовий пошук і заміну в Excel.
Excel REPLACE проти Excel SUBSTITUTE
Функції Excel ЗАМЕСТИТЬ і ЗАМЕСТИТЬ дуже схожі між собою тим, що обидві призначені для заміни місцями текстових рядків. Відмінності між цими двома функціями полягають у наступному:
- SUBSTITUTE замінює один або декілька випадки Отже, якщо ви знаєте текст, який потрібно замінити, скористайтеся функцією Excel ЗАМЕНА.
- REPLACE змінює символи у вказаному рядку позиція Отже, якщо ви знаєте позицію символу (символів), який (які) потрібно замінити, скористайтеся функцією ЗАМЕСТИТЬ в Excel.
- Функція ПІДСТАНОВКА в Excel дозволяє додати необов'язковий параметр (номер_екземпляра), який вказує, який саме екземпляр виникнення старого_тексту слід замінити на новий_текст.
Ось так використовуються функції ПІДСТАНОВКА і ЗАМІНИТИ в Excel. Сподіваюся, наведені приклади виявляться корисними при вирішенні ваших завдань. Дякую за прочитання і сподіваюся побачити на нашому блозі наступного тижня!
Завантажити робочий зошит з практики
Приклади формул ЗАМІНИТИ та ПІДСТАНОВИТИ (файл .xlsx)