Замена окончания слова в excel

Замена окончания в текстовых значениях

122334boss

Дата: Суббота, 07.02.2015, 00:32 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

Доброй ночи.

Подскажите, как можно прописать формулу для замены окончаний в текстовых значениях по заданным критериям. Критерии замены будут постоянно меняться.

Например если слово оканчивается на «»КН» — ПРОЛДКН заменить «КН» на «ЦГШ» получим ПРОЛДЦГШ.

Пример прикреплен.

Заранее благодарен.

 

Ответить

vikttur

Дата: Суббота, 07.02.2015, 00:37 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941

Это же отвлеченный набор букв, не такой, как в реальности. Реальные показать нет возможности?
Только 4 вида замен?длина заменяемых и подставляемых тоже может иметь значение.
Какой объем данных для таких замен?

Если что-то обще-непонятное:
таблица соответствий замен и макросом пробегать по ячейкам.

Сообщение отредактировал viktturСуббота, 07.02.2015, 00:53

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 00:52 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

vikttur,
Это будут замены артикулов, сколько знаков нужно поменять на какие еще нет данных.
Знаю одно, что замены будут не одинаковые по кол-ву знаков.
Вот поэтому я сейчас уточняю, какие есть возможности для реализации задания.

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 00:53 |
Сообщение № 4

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

vikttur,
если есть возможность задавать длину на замену и длину замены, буду признателен.

 

Ответить

vikttur

Дата: Суббота, 07.02.2015, 00:54 |
Сообщение № 5

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941

Все-таки покажите пример, приближенный к реальным данным.

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 01:10 |
Сообщение № 6

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

vikttur,
Давай те предположим, что нужно заменить 2 знака, на 3 знака.
Есть формула, которая это делает. Если нужно например заменить 1 знак , на 2 знака я смогу самостоятельно изменить формулу, чтобы выполнялось условие? Или под каждую отдельную замену нужно писать новую формулу?

 

Ответить

vikttur

Дата: Суббота, 07.02.2015, 01:16 |
Сообщение № 7

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941

Код

=ПОДСТАВИТЬ(A1;ПРАВБ(A1;3);С15)

Заменит в значении из ячейки А1 три правых символа на значение ячейки С15
Если такой же текст будет не только в конце значения, заменится и он.
В таком случае может помочь

Код

=ЛЕВБ(A1;ДЛСТР(A1)-3)&С15

Сообщение отредактировал viktturСуббота, 07.02.2015, 01:19

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 01:21 |
Сообщение № 8

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

AlexM,
спасибо огромное!!
вы меня постоянно выручаете.

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 01:24 |
Сообщение № 9

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

vikttur,
спасибо огромное, не совсем то…
т.к. будет большой массив данных, и не все значения нужно менять, ваша формула немного не подходит…

 

Ответить

vikttur

Дата: Суббота, 07.02.2015, 01:26 |
Сообщение № 10

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941

Потому и предлагал показать пример данных.
На большом массиве тяжелая формула будет тормозитьь. Облегчить ее — только устанавливая ограничения, которые можно определить по реальным данным.

И еще. Необходимо разносить замены по столбцам? Если да, то решение может быть проще — вместо длинного текста «если в конце «МНМН» меняем на «КК»» — две ячейки с парами значений.

Сообщение отредактировал viktturСуббота, 07.02.2015, 01:29

 

Ответить

AlexM

Дата: Суббота, 07.02.2015, 01:29 |
Сообщение № 11

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Если такой же текст будет не только в конце значения, заменится и он.

формула на это замечание

Код

=ЛЕВБ(B4;ДЛСТР(B4)-МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$L$2:$O$2)*СТРОКА($1:$4)))&ГПР(ПРАВБ(B4;МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$L$2:$O$2)*СТРОКА($1:$4)));$L$2:$O$3;2;)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 01:40 |
Сообщение № 12

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

vikttur,
ваша формула простая, но нужно будет дополнительно выносить значения в отдельный столбик для замены…
когда будут реальные данные для замены я попробую и ваш вариант…

 

Ответить

vikttur

Дата: Суббота, 07.02.2015, 01:40 |
Сообщение № 13

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2941


Замечание было к моей первой формуле.
а не стал рисовать чего-то получше, потому что при таких данных решение может оказаться частичным. Или излишне сложным.

Сообщение отредактировал viktturСуббота, 07.02.2015, 01:41

 

Ответить

AlexM

Дата: Суббота, 07.02.2015, 01:42 |
Сообщение № 14

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Замечание было к моей первой формуле.

В моей была та же беда. Без ПОДСТАВИТЬ() даже короче получилось.



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 01:43 |
Сообщение № 15

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

AlexM,
спасибо попробую оба варианта.
можно вопрос: для чего нужна или что делает СТРОКА($1:$4)?

 

Ответить

_Boroda_

Дата: Суббота, 07.02.2015, 01:53 |
Сообщение № 16

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А если в В6 написать вот так
ывпуАППкпмапАПП
то АПП заменится дважды.
Предлагаю

Код

=ЛЕВБ(B4;ДЛСТР(B4)-ПРАВБ(МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*(СТОЛБЕЦ(A:D)*10+ДЛСТР(K$2:N$2)))))&ИНДЕКС(K$3:N$3;МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*СТОЛБЕЦ(A:D)))

Добавлено
Пока я думал, уже заметили, что двойное значение меняется

Симбиоз 2-х формул (Алексея и моей) в файле _3. Вроде самая короткая получилась.

Код

=ЛЕВБ(B4;ДЛСТР(B4)-МАКС((ПРАВБ(B4;СТРОКА($1:$4))=$K$2:$N$2)*СТРОКА($1:$4)))&ИНДЕКС(K$3:N$3;МАКС((ПРАВБ(B4;ДЛСТР(K$2:N$2))=K$2:N$2)*СТОЛБЕЦ(A:D)))


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 02:08 |
Сообщение № 17

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

AlexM,
спасибо

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 02:12 |
Сообщение № 18

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

_Boroda_,
спасибо огромное.
ваше наблюдение очень существенное.

 

Ответить

122334boss

Дата: Суббота, 07.02.2015, 02:16 |
Сообщение № 19

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 200

_Boroda_,
кстати ради эксперимента, заменил МНМН на 1212 формула работает не корректно…
но если МНМН на 121Н все отлично…

 

Ответить

_Boroda_

Дата: Суббота, 07.02.2015, 02:39 |
Сообщение № 20

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

а если вариантов сочетаний символов по 4, 3, 2 и 1 будет больше чем по одному? Мне кажется ИНДЕКС() не «справится».

Например?
В МАКСе под ИНДЕКСом ведь не количество символов, а номер позиции стоит


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Склонение ФИО по падежам

Пользовательские функции (формулы, UDF) для склонения ФИО (фамилии, имени, отчества) по падежам, доступные при использовании надстройки FillDocuments

Поддерживаются 4 падежа:

  • родительный падеж
  • дательный падеж
  • винительный падеж
  • творительный падеж

Все эти функции, а также много других, можно приобрести отдельно от программы FillDocuments,
в виде другой надстройки для Excel с открытым кодом

Функция (формула) Пример получаемого значения
=Родительный(E2) Андреевой Алёны Васильевны
=Дательный(E2) Андреевой Алёне Васильевне
=Винительный(E2) Андрееву Алёну Васильевну
=Творительный(E2) Андреевой Алёной Васильевной
Исходное значение в ячейке E2 Андреева Алёна Васильевна

Программе, для правильного склонения ФИО, нужно определить пол. Пол определяется по отчеству.
Потому, склонять фамилии с инициалами категорически не рекомендуется (могут возникнуть ошибки)

ВАЖНО: Эти функции применимы только к ФИО. Склонять ими должности, и прочие слова и фразы, не получится.

ВНИМАНИЕ: Если вместе со склонением, вы используете другие функции для ФИО (например, Инициалы из ФИО), то сначала применяйте функцию склонения, а потом уже, после изменения падежа, другую функцию.

Не сложно догадаться, для чего необходима функция =СКЛОНЕНИЕ(ТЕКСТ;ПАДЕЖ). Практически любое существительное или ФИО она переведет из именительного падежа в нужный падеж.

Подчеркну слово практически, так как имеются фамилии, которые без программы то сложно просклонять, но в 90% случаев макрос отрабатывает достойно. Проверяйте сложные или необычные фамилии дополнительно.

Формула имеет всего 2 аргумента:

Диалоговое окно функции СКЛОНЕНИЕ

  • ТЕКСТ — Существительное, имя, фамилия или отчество в именительном падеже, который необходимо просклонять. Вы также можете использовать несколько слов в качестве аргумента. Например, указать полностью ФИО.
  • ПАДЕЖ — Числовое значение определяющее падеж:
  1. Именительный.
  2. Родительный.
  3. Дательный.
  4. Винительный.
  5. Творительный.
  6. Предложный.

Вот так выглядит стандартное окно ввода параметров функции СКЛОНЕНИЕ

Функция СКЛОНЕНИЕУКР

Аналогичная функция, которая склоняет ФИО и существительные, но только на украинском языке. Синтаксис у нее также не отличается =СКЛОНЕНИЕУКР(ТЕКСТ;ПАДЕЖ).

Далее приводятся примеры, наглядно демонстрирующие работу функции.

Обращаю ваше внимание, что для корректной работы данных функций необходимо стабильное подключение к интернету, а точнее к сайту Морфер.ру. Имеется также суточное ограничение на использование функций, которое в настоящий момент составляет 1000 склонений.

Примеры работы с текстовой функцией ЗАМЕНИТЬ в Excel

Функция ЗАМЕНИТЬ, входит в состав текстовых функций MS Excel и предназначена для замены конкретной области текстовой строки, в которой находится исходный текст на указанную строку текста (новый текст).

Как работает функция ЗАМЕНИТЬ в Excel?

С целью детального изучения работы данной функции рассмотрим один из простейших примеров. Предположим у нас имеется несколько слов в разных столбцах, необходимо получить новые слова используя исходные. Для данного примера помимо основной нашей функции ЗАМЕНИТЬ используем также функцию ПРАВСИМВ – данная функция служит для возврата определенного числа знаков от конца строки текста. То есть, например, у нас есть два слова: молоко и каток, в результате мы должны получить слово молоток.

Функция заменить в Excel и примеры ее использования

  1. Создадим на листе рабочей книги табличного процессора Excel табличку со словами, как показано на рисунке: табличка со словами.
  2. Далее на листе рабочей книги подготовим область для размещения нашего результата – полученного слова «молоток», как показано ниже на рисунке. Установим курсор в ячейке А6 и вызовем функцию ЗАМЕНИТЬ: ЗАМЕНИТЬ.
  3. Заполняем функцию аргументами, которые изображены на рисунке: Заполняем аргументами.

Выбор данных параметров поясним так: в качестве старого текста выбрали ячейку А2, в качестве нач_поз установили число 5, так как именно с пятой позиции слова «Молоко» мы символы не берем для нашего итогового слова, число_знаков установили равным 2, так как именно это число не учитывается в новом слове, в качестве нового текста установили функцию ПРАВСИМВ с параметрами ячейки А3 и взятием последних двух символов «ок».

Далее нажимаем на кнопку «ОК» и получаем результат:

получаем результат.

Как заменить часть текста в ячейке Excel?

Пример 2. Рассмотрим еще один небольшой пример. Предположим у нас в ячейках табличного процессора Excel имеются столбцы с мужскими фамилиями и именами сотрудников некоторой фирмы. Необходимо заменить их буквы в определенных местах так, чтобы преобразовать их в женские.

  1. Создадим на листе рабочей книги Excel табличку со фамилией и именем, как показано на рисунке: табличка со фамилией и именем.
  2. Далее на этом же листе рабочей книги подготовим область для размещения нашего результата – измененных фамилий и имен. Заполним ячейки двумя типами формул как показано на рисунке: 2 типа формул.

Обратите внимание! Во второй формуле мы используем оператор «&» для добавления символа «а» к мужской фамилии, чтобы преобразовать ее в женскую. Для решения данной задачи можно было бы использовать функцию =СЦЕПИТЬ(B3;»а») вместо формулы =B3&»а» – результат идентичный. Но сегодня настоятельно рекомендуется отказываться от данной функции так как она имеет свои ограничения и более требовательна к ресурсам в сравнении с простым и удобным оператором амперсанд.

Спасиба за помощь, нашлось очень классное решение :

Sub ПереводФИОвДательныйПадеж()
    ‘ если фамилия, имя и отчество — в одной переменной (или ячейке)
   FIO$ = «Сидоров Иван Скотиныч»
    ДательныйПадеж$ = DativeCase(FIO$)
    Debug.Print ДательныйПадеж$    ‘ результат: Сидорову Ивану Скотинычу

    ‘ если фамилия, имя и отчество — в разных переменных (или ячейках)
   Кому$ = DativeCase(«Андреева», «Ольга», «Федоровна»)
    Debug.Print Кому$    ‘ результат: Андреевой Ольге Федоровне
End Sub

Код функции DativeCase:

Function DativeCase(sSurname$, Optional sName$, Optional sPatronymic$) As String
    ‘ Функция формирует дательный падеж из ФИО
   ‘ Параметры: sSurname — фамилия, sName — имя, sPatronymic — отчество

    Application.Volatile True
    On Error Resume Next
    If sName$ = «» And sPatronymic$ = «» Then
        arr = Split(Application.Trim(sSurname$))
        sSurname$ = arr(0): sName$ = arr(1): sPatronymic$ = arr(2)
    End If

    Dim bMaleSex As Boolean: bMaleSex = (Right(sPatronymic, 1) = «ч»)

    If Len(sSurname) > 0 Then    ‘   Фамилия
       If bMaleSex Then
            Select Case Right(sSurname, 1)
                Case «о», «и», «я», «а»: DativeCase = sSurname
                Case «й»: DativeCase = Mid(sSurname, 1, Len(sSurname) — 2) + «ому»
                Case Else: DativeCase = sSurname + «у»
            End Select
        Else
            Select Case Right(sSurname, 1)
                Case «о», «и», «б», «в», «г», «д», «ж», «з», «к», «л», «м», «н», «п», _
                     «р», «с», «т», «ф», «х», «ц», «ч», «ш», «щ», «ь»: DativeCase = sSurname
                Case «я»: DativeCase = Mid(sSurname, 1, Len(sSurname) — 2) & «ой»
                Case Else: DativeCase = Mid(sSurname, 1, Len(sSurname) — 1) & «ой»
            End Select
        End If
        DativeCase = DativeCase & » «
    End If

    If Len(sName) > 0 Then    ‘   Имя
       If bMaleSex Then
            Select Case Right(sName, 1)
                Case «й», «ь»: DativeCase = DativeCase & Mid(sName, 1, Len(sName) — 1) & «ю»
                Case «я»: DativeCase = DativeCase & Mid(sName, 1, Len(sName) — 1) & «е»
                Case Else: DativeCase = DativeCase & sName & «у»
            End Select
        Else
            Select Case Right(sName, 1)
                Case «а», «я»
                    If Mid(sName, Len(sName) — 1, 1) = «и» Then
                        DativeCase = DativeCase & Mid(sName, 1, Len(sName) — 1) & «и»
                    Else
                        DativeCase = DativeCase & Mid(sName, 1, Len(sName) — 1) & «е»
                    End If
                Case «ь»: DativeCase = DativeCase & Mid(sName, 1, Len(sName) — 1) & «и»
                Case Else: DativeCase = DativeCase & sName
            End Select
        End If
        DativeCase = DativeCase & » «
    End If

    If Len(sPatronymic) > 0 Then    ‘   Отчество
       If bMaleSex Then
            DativeCase = DativeCase & sPatronymic & «у»
        Else
            DativeCase = DativeCase & Mid(sPatronymic, 1, Len(sPatronymic) — 1) & «е»
        End If
    End If
End Function

Но я к сожалению не понял, как можно данную функцию применить на диапазон строк например A10:A20

Функция ЗАМЕНИТЬ, входит в состав текстовых функций MS Excel и предназначена для замены конкретной области текстовой строки, в которой находится исходный текст на указанную строку текста (новый текст).

Как работает функция ЗАМЕНИТЬ в Excel?

С целью детального изучения работы данной функции рассмотрим один из простейших примеров. Предположим у нас имеется несколько слов в разных столбцах, необходимо получить новые слова используя исходные. Для данного примера помимо основной нашей функции ЗАМЕНИТЬ используем также функцию ПРАВСИМВ – данная функция служит для возврата определенного числа знаков от конца строки текста. То есть, например, у нас есть два слова: молоко и каток, в результате мы должны получить слово молоток.



Функция заменить в Excel и примеры ее использования

  1. Создадим на листе рабочей книги табличного процессора Excel табличку со словами, как показано на рисунке:
  2. табличка со словами.

  3. Далее на листе рабочей книги подготовим область для размещения нашего результата – полученного слова «молоток», как показано ниже на рисунке. Установим курсор в ячейке А6 и вызовем функцию ЗАМЕНИТЬ:
  4. ЗАМЕНИТЬ.

  5. Заполняем функцию аргументами, которые изображены на рисунке:
  6. Заполняем аргументами.

Выбор данных параметров поясним так: в качестве старого текста выбрали ячейку А2, в качестве нач_поз установили число 5, так как именно с пятой позиции слова «Молоко» мы символы не берем для нашего итогового слова, число_знаков установили равным 2, так как именно это число не учитывается в новом слове, в качестве нового текста установили функцию ПРАВСИМВ с параметрами ячейки А3 и взятием последних двух символов «ок».

Далее нажимаем на кнопку «ОК» и получаем результат:

получаем результат.

Как заменить часть текста в ячейке Excel?

Пример 2. Рассмотрим еще один небольшой пример. Предположим у нас в ячейках табличного процессора Excel имеются столбцы с мужскими фамилиями и именами сотрудников некоторой фирмы. Необходимо заменить их буквы в определенных местах так, чтобы преобразовать их в женские.

  1. Создадим на листе рабочей книги Excel табличку со фамилией и именем, как показано на рисунке:
  2. табличка со фамилией и именем.

  3. Далее на этом же листе рабочей книги подготовим область для размещения нашего результата – измененных фамилий и имен. Заполним ячейки двумя типами формул как показано на рисунке:
  4. 2 типа формул.

Скачать примеры с текстовой функцией ЗАМЕНИТЬ в Excel

Обратите внимание! Во второй формуле мы используем оператор «&» для добавления символа «а» к мужской фамилии, чтобы преобразовать ее в женскую. Для решения данной задачи можно было бы использовать функцию =СЦЕПИТЬ(B3;»а») вместо формулы =B3&»а» – результат идентичный. Но сегодня настоятельно рекомендуется отказываться от данной функции так как она имеет свои ограничения и более требовательна к ресурсам в сравнении с простым и удобным оператором амперсанд.

Skip to content

Формула ЗАМЕНИТЬ и ПОДСТАВИТЬ для текста и чисел

В статье объясняется на примерах как работают функции Excel ЗАМЕНИТЬ (REPLACE в английской версии) и ПОДСТАВИТЬ (SUBSTITUTE по-английски). Мы покажем, как использовать функцию ЗАМЕНИТЬ с текстом, числами и датами, а также как вложить несколько функций ЗАМЕНИТЬ или ПОДСТАВИТЬ в одну формулу.

Функции Excel ЗАМЕНИТЬ и ПОДСТАВИТЬ используются для замены одной буквы или части текста в ячейке. Но делают они это немного по-разному. Об этом и поговорим далее.

Как работает функция ЗАМЕНИТЬ  

Функция ЗАМЕНИТЬ  позволяет заместить слово, один или несколько символов в текстовой строке другим словом или символом.

ЗАМЕНИТЬ(старый_текст; начальная_позиция; число_знаков, новый_текст)

Как видите, функция ЗАМЕНИТЬ имеет 4 аргумента, и все они обязательны для заполнения.

  • Старый_текст — исходный текст (или ссылка на ячейку с исходным текстом), в котором вы хотите поменять некоторые символы.
  • Начальная_позиция — позиция первого символа в старый_текст, начиная с которого вы хотите сделать замену.
  • Число_знаков — количество символов, которые вы хотите заместить новыми.
  • Новый_текст – текст замены.

Например, чтобы исправить слово «кит» на «кот», следует поменять вторую букву в слове. Вы можете использовать следующую формулу:

=ЗАМЕНИТЬ(«кит»;2;1;»о»)

И если вы поместите исходное слово в какую-нибудь ячейку, скажем, A2, вы можете указать соответствующую ссылку на ячейку в аргументе старый_текст:

=ЗАМЕНИТЬ(А2;2;1;»о»)

Примечание. Если аргументы начальная_позиция или число_знаков отрицательные или не являются числом, формула замены возвращает ошибку #ЗНАЧ!.

Использование функции ЗАМЕНИТЬ с числами

Функция ЗАМЕНИТЬ предназначена для работы с текстом. Но безусловно, вы можете использовать ее для замены не только букв, но и цифр, являющихся частью текстовой строки, например:

=ЗАМЕНИТЬ(A1; 9; 4; «2023»)

как заменить значения в ячейке Эксель

Обратите внимание, что мы заключаем «2023» в двойные кавычки, как вы обычно делаете с текстовыми значениями.

Аналогичным образом вы можете заменить одну или несколько цифр в числе. Например формула:

=ЗАМЕНИТЬ(A1;3;2;»23″)

И снова вы должны заключить значение замены в двойные кавычки («23»).

Примечание. Формула ЗАМЕНИТЬ всегда возвращает текстовую строку, а не число. На скриншоте выше обратите внимание на выравнивание по левому краю возвращаемого текстового значения в ячейке B1 и сравните его с исходным числом, выровненным по правому краю в A1. А поскольку это текст, вы не сможете использовать его в других вычислениях, пока не преобразуете его обратно в число, например, умножив на 1 или используя любой другой метод, описанный в статье Как преобразовать текст в число.

Как заменить часть даты

Как вы только что видели, функция ЗАМЕНИТЬ отлично работает с числами, за исключением того, что она возвращает текстовую строку :) Помните, что во внутренней системе Excel даты хранятся в виде чисел. Поэтому нельзя пытаться заменить часть даты, работая с ней как с текстом.

Например, у вас есть дата в A3, скажем, 15 июля 1992г., и вы хотите изменить «июль» на «май». Итак, вы пишете формулу ЗАМЕНИТЬ(A3; 4; 3; «Май»), которая предписывает Excel поменять 3 символа в ячейке A3, начиная с четвертого. Мы получили следующий результат:

Почему так? Потому что «15-июл-92» — это только визуальное представление базового серийного номера (33800), представляющего дату. Итак, наша формула замены заменяет цифры начиная с четвертой (а это два нуля) в указанном выше числе на текст «Май» и возвращает в результате текстовую строку «338Май».

Чтобы заставить функцию ЗАМЕНИТЬ правильно работать с датами, вы должны сначала преобразовать даты в текстовые строки, используя функцию ТЕКСТ. Кроме того, вы можете встроить функцию ТЕКСТ непосредственно в аргумент старый_текст функции ЗАМЕНИТЬ:

=ЗАМЕНИТЬ(ТЕКСТ(A3; «дд-ммм-гг»); 4; 3; «Май»)

Помните, что результатом приведенной выше формулы является текстовая строка, и поэтому это решение работает только в том случае, если вы не планируете использовать измененные даты в своих дальнейших расчетах. Если вам нужны даты, а не текстовые строки, используйте функцию ДАТАЗНАЧ , чтобы преобразовать значения, возвращаемые функцией Excel ЗАМЕНИТЬ, обратно в даты:

=ДАТАЗНАЧ(ЗАМЕНИТЬ(ТЕКСТ(A3; «дд-ммм-гг»); 4; 3; «Май»))

Как заменить сразу несколько букв или слов

Довольно часто может потребоваться выполнить более одной замены в одной и той же ячейке Excel. Конечно, можно было сделать одну замену, вывести промежуточный результат в дополнительный столбец, а затем снова использовать функцию ЗАМЕНИТЬ. Однако лучший и более профессиональный способ — использовать вложенные функции ЗАМЕНИТЬ, которые позволяют выполнить сразу несколько замен с помощью одной формулы. В этом смысле «вложение» означает размещение одной функции внутри другой.

Рассмотрим следующий пример. Предположим, у вас есть список телефонных номеров в столбце A, отформатированный как «123456789», и вы хотите сделать их более похожими на привычные нам  телефонные номера, добавив дефисы. Другими словами, ваша цель — превратить «123456789» в «123-456-789».

Вставить первый дефис легко. Вы пишете обычную формулу замены Excel, которая заменяет ноль символов дефисом, т.е. просто добавляет дефис на четвёртой позиции в ячейке:

=ЗАМЕНИТЬ(A3;4;0;»-«)

Результат приведенной выше формулы замены выглядит следующим образом:

А теперь нам нужно вставить еще один дефис в восьмую позицию. Для этого вы помещаете приведенную выше формулу в еще одну функцию Excel ЗАМЕНИТЬ. Точнее, вы встраиваете её в аргумент старый_текст другой функции, чтобы вторая функция ЗАМЕНИТЬ обрабатывала значение, возвращаемое первой формулой, а не первоначальное значение из ячейки А3:

=ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;4;0;»-«);8;0;»-«)

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

Аналогичным образом вы можете использовать вложенные функции ЗАМЕНИТЬ, чтобы текстовые строки выглядели как даты, добавляя косую черту (/) там, где это необходимо:

=ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;3;0;»/»);6;0;»/»)

Кроме того, вы можете преобразовать текстовые строки в реальные даты, обернув приведенную выше формулу ЗАМЕНИТЬ функцией ДАТАЗНАЧ:

=ДАТАЗНАЧ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;3;0;»/»);6;0;»/»))

И, естественно, вы не ограничены в количестве функций, которые вы можете последовательно, как матрёшки, вложить друг в друга в одной формуле (современные версии Excel позволяют использовать до 8192 символов и до 64 вложенных функций в одной формуле).

Например, вы можете попробовать 3 вложенные функции ЗАМЕНИТЬ, чтобы число отображалось как дата и время:

=ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(ЗАМЕНИТЬ(A3;3;0;»/»);6;0;»/»);9;0;» «);12;0;»:»)

Как заменить текст в разных местах

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

Предположим, у вас есть список адресов электронной почты в столбце A. И название одной компании изменилось с «ABC» на, скажем, «BCA». Изменилось и название их почтового домена. Таким образом, вы должны соответствующим образом обновить адреса электронной почты всех клиентов и заменить три буквы в адресах электронной почты, где это необходимо.

Но проблема в том, что имена почтовых ящиков имеют разную длину, и поэтому нельзя указать, с какой именно позиции начинается название домена. Другими словами, вы не знаете, какое значение указать в аргументе начальная_позиция функции Excel ЗАМЕНИТЬ. Чтобы узнать это, используйте функцию Excel НАЙТИ, чтобы определить позицию, с которой начинается доменное имя в адресе электронной почты:

=НАЙТИ(«@abc»; A3)

Затем вставьте указанную выше функцию НАЙТИ в аргумент начальная_позиция формулы ЗАМЕНИТЬ:

=ЗАМЕНИТЬ(A3; НАЙТИ(«@abc»;A3); 4; «@bca»)

ПримечаниеМы включаем символ «@» в нашу формулу поиска и замены Excel, чтобы избежать случайных ошибочных замен в именах почтовых ящиков электронной почты. Конечно, вероятность того, что такие совпадения произойдут, очень мала, и все же вы можете перестраховаться.

Как вы видите на скриншоте ниже, у формулы нет проблем, чтобы поменять символы в разных позициях. Однако если заменяемая текстовая строка не найдена и менять в ней ничего не нужно, формула возвращает ошибку #ЗНАЧ!:

 Excel как заменить буквы в адресе

И мы хотим, чтобы формула вместо ошибки возвращала исходный адрес электронной почты без изменения.  Для этого заключим нашу формулу НАЙТИ И ЗАМЕНИТЬ в функцию ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ЗАМЕНИТЬ(A3; НАЙТИ(«@abc»;A3); 4; «@bca»);A3)

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

Заменить заглавные буквы на строчные и наоборот

Еще один полезный пример – заменить первую строчную букву в ячейке на прописную (заглавную). Всякий раз, когда вы имеете дело со списком имен, товаров и т.п., вы можете использовать приведенную ниже формулу, чтобы изменить первую букву на ЗАГЛАВНУЮ. Ведь названия товаров могут быть записаны по-разному, а в списках важно единообразие.

Таким образом, нам нужно заменить первый символ в тексте на заглавную букву. Используем формулу

=ЗАМЕНИТЬ(СТРОЧН(A3);1;1;ПРОПИСН(ЛЕВСИМВ(A3;1)))

excel заменить первые буквы на заглавные

Как видите, эта формула сначала заменяет все буквы в тексте на строчные при помощи функции СТРОЧН, а затем первую строчную букву меняет на заглавную (прописную).

Быть может, это будет полезно.

Описание функции ПОДСТАВИТЬ

Функция ПОДСТАВИТЬ в Excel заменяет один или несколько экземпляров заданного символа или текстовой строки указанными символами.

Синтаксис формулы ПОДСТАВИТЬ в Excel следующий:

ПОДСТАВИТЬ(текст, старый_текст, новый_текст, [номер_вхождения])

Первые три аргумента являются обязательными, а последний – нет.

  • Текст – исходный текст, в котором вы хотите заменить слова либо отдельные символы. Может быть тестовой строой, ссылкой на ячейку или же результатом вычисления другой формулы.
  • Старый_текст – что именно вы хотите заменить.
  • Новый_текст – новый символ или слово для замены старого_текста.
  • Номер_вхождения — какой по счёту экземпляр старый_текст вы хотите заменить. Если этот параметр опущен, все вхождения старого текста будут заменены новым текстом.

Например, все приведенные ниже формулы подставляют вместо «1» – цифру «2» в ячейке A2, но возвращают разные результаты в зависимости от того, какое число указано в последнем аргументе:

=ПОДСТАВИТЬ(A3;»1″;»2″;1) — Заменяет первое вхождение «1» на «2».

=ПОДСТАВИТЬ(A3;»1″;»2″;2) — Заменяет второе вхождение «1» на «2».

=ПОДСТАВИТЬ(A3;»1″;»2″) — Заменяет все вхождения «1» на «2».

На практике формула ПОДСТАВИТЬ также используется для удаления ненужных символов из текста. Вы просто меняете их на пустую строку “”.

Например, чтобы удалить пробелы из текста, замените их на пустоту.

=ПОДСТАВИТЬ(A3;» «;»»)

Примечание. Функция ПОДСТАВИТЬ в Excel чувствительна к регистру . Например, следующая формула меняет все вхождения буквы «X» в верхнем регистре на «Y» в ячейке A2, но не заменяет ни одной буквы «x» в нижнем регистре.

=ПОДСТАВИТЬ(A3;»Х»;»Y»)

Замена нескольких значений одной формулой

Как и в случае с функцией ЗАМЕНИТЬ, вы можете вложить несколько функций ПОДСТАВИТЬ в одну формулу, чтобы сделать несколько подстановок одновременно, т.е. заменить несколько символов или подстрок при помощи одной формулы.

Предположим, у вас есть текстовая строка типа « пр1, эт1, з1 » в ячейке A3, где «пр» означает «Проект», «эт» означает «этап», а «з» означает «задача». Вы хотите заместить три этих кода их полными эквивалентами. Для этого вы можете написать 3 разные формулы подстановки:

=ПОДСТАВИТЬ(A3;»пр»;»Проект «)

=ПОДСТАВИТЬ(A3;»эт»;»Этап «)

=ПОДСТАВИТЬ(A3;»з»;»Задача «)

А затем вложить их друг в друга:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A3;»пр»;»Проект «); «эт»;»Этап «);»з»;»Задача «)

Обратите внимание, что мы добавили пробел в конце каждого аргумента новый_текст для лучшей читабельности.

Другие полезные применения функции ПОДСТАВИТЬ:

  • Замена неразрывных пробелов в ячейке Excel обычными
  • Убрать пробелы в числах
  • Удалить перенос строки в ячейке
  • Подсчитать определенные символы в ячейке

Что лучше использовать – ЗАМЕНИТЬ или ПОДСТАВИТЬ?

Функции Excel ЗАМЕНИТЬ и ПОДСТАВИТЬ очень похожи друг на друга в том смысле, что обе они предназначены для подмены отдельных символов или текстовых строк. Различия между двумя функциями заключаются в следующем:

  • ПОДСТАВИТЬ замещает один или несколько экземпляров данного символа или текстовой строки. Итак, если вы знаете тот текст, который нужно поменять, используйте функцию Excel ПОДСТАВИТЬ.
  • ЗАМЕНИТЬ замещает символы в указанной позиции текстовой строки. Итак, если вы знаете положение заменяемых символов, используйте функцию Excel ЗАМЕНИТЬ.
  • Функция ПОДСТАВИТЬ в Excel позволяет добавить необязательный параметр (номер_вхождения), указывающий, какой по счету экземпляр старого_текста следует заместить на новый_текст.

Вот как вы можете заменить текст в ячейке и использовать функции ПОДСТАВИТЬ и ЗАМЕНИТЬ в Excel. Надеюсь, эти примеры окажутся полезными при решении ваших задач. 

Понравилась статья? Поделить с друзьями:
  • Замена одной буквы на другую в excel
  • Замена одной буквы во всем тексте word
  • Замена одного текста на другой в excel
  • Замена одного слова на другое в word
  • Замена одного символа в строке excel