Използване на функциите REPLACE и SUBSTITUTE на Excel - примери за формули

  • Споделя Това
Michael Brown

В урока са обяснени функциите REPLACE и SUBSTITUTE на Excel с примери за използване. Вижте как да използвате функцията REPLACE с текстови низове, числа и дати и как да вложите няколко функции REPLACE или SUBSTITUTE в една формула.

Миналата седмица обсъдихме различни начини за използване на функциите FIND и SEARCH в работните листове на Excel. Днес ще разгледаме по-задълбочено две други функции за заместване на текст в клетка въз основа на местоположението му или за заместване на един текстов низ с друг въз основа на съдържанието. Както може би сте се досетили, говоря за функциите REPLACE и SUBSTITUTE на Excel.

    Функция REPLACE на Excel

    Функцията REPLACE в Excel ви позволява да замените един или няколко символа в текстов низ с друг символ или набор от символи.

    REPLACE(стар_текст, start_num, num_chars, нов_текст)

    Както виждате, функцията REPLACE на Excel има 4 аргумента, като всички те са задължителни.

    • Old_text - оригиналния текст (или препратка към клетка с оригиналния текст), в който искате да замените някои символи.
    • Start_num - позицията на първия символ в old_text, който искате да замените.
    • Num_chars - броя на символите, които искате да замените.
    • New_text - заместващия текст.

    Например, за да промените думата " слънце " на " син ", можете да използвате следната формула:

    =REPLACE("sun", 2, 1, "o")

    И ако поставите оригиналната дума в някоя клетка, например A2, можете да предоставите референцията към съответната клетка в аргумента old_text:

    =REPLACE(A2, 2, 1, "o")

    Забележка. Ако аргументът start_num или num_chars е отрицателен или нецифров, формулата Excel Replace връща грешката #VALUE!.

    Използване на функцията REPLACE на Excel с числови стойности

    Функцията REPLACE в Excel е предназначена за работа с текстови низове. Разбира се, можете да я използвате, за да замените например цифрови символи, които са част от текстов низ:

    =REPLACE(A2, 7, 4, "2016")

    Обърнете внимание, че заграждаме "2016" в двойни кавички, както обикновено се прави с текстови стойности.

    По подобен начин можете да замените една или повече цифри в дадено число. Например:

    =REPLACE(A4, 4, 4, "6")

    И отново трябва да поставите стойността на замяната в двойни кавички ("6").

    Забележка. Формулата REPLACE на Excel винаги връща текстов низ , а не число. На горната снимка на екрана забележете лявото подравняване на върнатата текстова стойност в B2 и я сравнете с оригиналното число в A2, подравнено надясно. И тъй като това е текстова стойност, няма да можете да я използвате в други изчисления, освен ако не я преобразувате обратно в число, например чрез умножаване по 1 или чрез използване на друг метод, описан в Как да преобразуваме текст в число.

    Използване на функцията REPLACE на Excel с дати

    Както току-що видяхте, функцията REPLACE работи добре с числа, с изключение на това, че връща текстов низ :) Като помните, че във вътрешната система на Excel датите се съхраняват като числа, може да се опитате да използвате някои формули Replace за дати. Резултатите биха били доста смущаващи.

    Например имате дата в A2, например 1-Oct-14, и искате да промените " Октомври " на " Nov ". И така, записвате формулата REPLACE(A2, 4, 3, "Nov"), която казва на Excel да замени 3 символа в клетките A2, започвайки от четвъртия символ... и получавате следния резултат:

    Защо? Защото "01-Oct-14" е само визуално представяне на основния сериен номер (41913), който представлява датата. Така че нашата формула Replace променя последните 3 цифри в горния сериен номер на " Nov " и връща текстовия низ "419Nov".

    За да накарате функцията REPLACE на Excel да работи правилно с дати, можете първо да конвертирате дати в текстови низове, като използвате функцията TEXT или друга техника, показана в Как да конвертираме дата в текст в Excel. Като алтернатива можете да вградите функцията TEXT директно в аргумента old_text на функцията REPLACE:

    =REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")

    Не забравяйте, че резултатът от горната формула е a текстов низ , поради което това решение работи само ако не планирате да използвате променените дати в по-нататъшни изчисления. Ако все пак се нуждаете от дати, а не от текстови низове, използвайте функцията DATEVALUE, за да превърнете стойностите, върнати от функцията REPLACE на Excel, обратно в дати:

    =DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")

    Вложени функции REPLACE за извършване на многократни замествания в клетка

    Много често може да се наложи да извършите повече от една замяна в една и съща клетка. Разбира се, можете да извършите една замяна, да изведете междинен резултат в допълнителна колона и след това отново да използвате функцията REPLACE. По-добрият и професионален начин обаче е да използвате вложени функции REPLACE които ви позволяват да извършвате няколко замествания с една формула. В този контекст "влагане" означава поставяне на една функция в друга.

    Представете си следния пример: Предполагаме, че имате списък с телефонни номера в колона А, форматиран като "123456789", и искате да ги направите да приличат повече на телефонни номера, като добавите тирета. С други думи, целта ви е да превърнете "123456789" в "123-456-789".

    Вмъкването на първото тире е лесно. Написвате обичайната формула Excel Replace, която замества нула знака с дефис, т.е. добавя дефис на 4-та позиция в клетката:

    =REPLACE(A2,4,0,"-")

    Резултатът от горната формула за замяна е следният:

    Добре, а сега трябва да вмъкнем още едно тире на 8-ма позиция. За да направите това, поставяте горната формула в друга функция REPLACE на Excel. По-точно, вграждате я в old_text аргумент на другата функция, така че втората функция REPLACE да обработва стойността, върната от първата функция REPLACE, а не стойността в клетка A2:

    =REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")

    В резултат на това получавате телефонните номера в желаното форматиране:

    По подобен начин можете да използвате вложени функции REPLACE, за да направите текстови низове да изглеждат като дати, като добавите наклонена черта напред (/), където е необходимо:

    =(ЗАМЕНИ(ЗАМЕНИ(A2,3,0,"/"),6,0,"/"))

    Освен това можете да преобразувате текстови низове в реални дати, като обвиете горната формула REPLACE с функцията DATEVALUE:

    =СТОЙНОСТ НА ДАННИТЕ(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))

    И естествено, не сте ограничени в броя на функциите, които можете да вложите в една формула (съвременните версии на Excel 2010, 2013 и 2016 позволяват до 8192 символа и до 64 вложени функции в една формула).

    Например можете да използвате 3 вложени функции REPLACE, за да накарате число в A2 да изглежда като дата и час:

    =ЗАМЯНА(ЗАМЕНИ(ЗАМЕНИ(ЗАМЕНИ(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")

    Замяна на низ, който се появява на различна позиция във всяка клетка

    Досега във всички примери се занимавахме със стойности от подобен характер и извършвахме замени на едно и също място във всяка клетка. Но задачите в реалния живот често са по-сложни от това. Във вашите работни листове символите, които трябва да бъдат заменени, може да не се появяват непременно на едно и също място във всяка клетка и затова ще трябва да намиране на позицията на първия символ Следващият пример ще демонстрира какво имам предвид.

    Да предположим, че имате списък с имейл адреси в колона А. И името на една компания се е променило от "ABC" на, да речем, "BCA". Така че трябва да актуализирате съответно имейл адресите на всички клиенти.

    Проблемът обаче е, че имената на клиентите са с различна дължина и затова не можете да посочите точно откъде започва името на фирмата. С други думи, не знаете каква стойност да въведете в аргумента start_num на функцията REPLACE на Excel. За да я разберете, използвайте функцията FIND на Excel, за да определите позицията на първия символ в низа "@abc":

    =FIND("@abc",A2)

    И след това въведете горепосочената функция FIND в аргумента start_num на формулата REPLACE:

    =REPLACE(A2, FIND("@abc",A2), 4, "@bca")

    Съвет: Включваме "@" в нашата формула за намиране и заместване в Excel, за да избегнем случайни замени в частта с името на имейл адресите. Разбира се, вероятността да се появят такива съвпадения е много малка, но все пак може да искате да се подсигурите.

    Както виждате на следващата снимка, формулата няма проблем с намирането и заместването на стария текст с новия. Ако обаче текстовият низ, който трябва да бъде заменен, не бъде намерен, формулата връща грешката #VALUE!

    Искаме формулата да върне оригиналния имейл адрес, а не грешката. Така че нека да затворим нашата формула FIND & REPLACE във функцията IFERROR:

    =IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)

    И тази подобрена формула работи перфектно, нали?

    Друго практическо приложение на функцията REPLACE е изписването на първата буква в клетката с главна буква. Когато работите със списък с имена, продукти и други подобни, можете да използвате горепосочената формула, за да промените първата буква на UPPERCASE.

    Съвет: Ако искате да извършите замените в оригиналните данни, по-лесно е да използвате диалоговия прозорец на Excel FIND and REPLACE.

    Функция SUBSTITUTE на Excel

    Функцията SUBSTITUTE в Excel замества един или повече екземпляра на даден символ или текстов низ с определен(и) символ(и).

    Синтаксисът на функцията SUBSTITUTE в Excel е следният:

    SUBSTITUTE(text, old_text, new_text, [instance_num])

    Първите три аргумента са задължителни, а последният е незадължителен.

    • Текст - оригиналният текст, в който искате да замените символи. Може да бъде предоставен като тестови низ, препратка към клетка или резултат от друга формула.
    • Old_text - символа(ите), който(ито) искате да замените.
    • New_text - новият символ(и), с който да се замени old_text.
    • Instance_num - появата на old_text, която искате да замените. Ако не се посочи, всяка поява на стария текст ще бъде заменена с новия текст.

    Например всички формули по-долу заменят "1" с "2" в клетка А2, но връщат различни резултати в зависимост от това кое число е посочено в последния аргумент:

    =SUBSTITUTE(A2, "1", "2", 1) - Заменя първата поява на "1" с "2".

    =SUBSTITUTE(A2, "1", "2", 2) - Заменя втората поява на "1" с "2".

    =SUBSTITUTE(A2, "1", "2") - Заменя всички случаи на "1" с "2".

    На практика функцията SUBSTITUTE се използва и за премахване на нежелани символи от клетките. За примери от реалния живот вж:

    • Как да премахнете символи или думи от низ
    • Как да изтриете нежелани символи от клетките

    Забележка. Функцията SUBSTITUTE в Excel е отчитане на малки и големи букви Например следната формула замества всички случаи на главна буква "X" с "Y" в клетка A2, но няма да замени нито един случай на малка буква "x".

    Заместване на няколко стойности с една формула (вложена SUBSTITUTE)

    Както и при функцията REPLACE на Excel, можете да вложите няколко функции SUBSTITUTE в една формула, за да извършите няколко замествания едновременно, т.е. да замените няколко символа или поднива с една формула.

    Да предположим, че имате текстов низ като " PR1, ML1, T1 " в клетка А2, където "PR" означава "Project" (проект), "ML" означава "Milestone" (крайъгълен камък), а "T" означава "Task" (задача). Това, което искате, е да замените трите кода с пълни имена. За да постигнете това, можете да напишете 3 различни формули SUBSTITUTE:

    =SUBSTITUTE(A2, "PR", "Проект ")

    =SUBSTITUTE(A2, "ML", "Milestone ")

    =SUBSTITUTE(A2, "T", "Задача ")

    А след това ги вложите един в друг:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")

    Обърнете внимание, че сме добавили интервал в края на всеки аргумент new_text за по-добра четливост.

    За да научите други начини за заместване на няколко стойности едновременно, вижте Как да направим масово намиране и заместване в Excel.

    Excel REPLACE срещу Excel SUBSTITUTE

    Функциите REPLACE и SUBSTITUTE в Excel са много сходни помежду си, тъй като и двете са предназначени за размяна на текстови низове. Разликите между двете функции са следните:

    • SUBSTITUTE замества един или повече екземпляри на даден символ или текстов низ. Така че, ако знаете текста, който трябва да бъде заменен, използвайте функцията SUBSTITUTE на Excel.
    • REPLACE променя символите в определен позиция Така че, ако знаете позицията на символа(ите), който трябва да бъде заменен, използвайте функцията REPLACE на Excel.
    • Функцията SUBSTITUTE в Excel позволява добавянето на незадължителен параметър (instance_num), който определя коя поява на old_text трябва да се промени на new_text.

    Ето как се използват функциите SUBSTITUTE и REPLACE в Excel. Надявам се, че тези примери ще се окажат полезни при решаването на задачите ви. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

    Изтегляне на работна тетрадка за практика

    Примери за формули REPLACE и SUBSTITUTE (.xlsx файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.