Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

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

Автор Ramin Sarkarov, 16.09.2016, 13:25

« назад - далее »

Ramin Sarkarov

Есть 2 листа в эксель, лист 1 и лист 2. В листе 1 2 столбца, в первом столбце исходный текст во втором справленный текст , который должен получиться с помощью формулы. В листе 2 тоже 2 столбца, в первом слова, которые формула должна найти в исходном тексте в листе 1, во втором столбце слова, которые нужно вставить вместо слов в исходном тексте листа 1. Нужно чтобы формула выбирала слово (в одной ячейке может быть несколько слов через запятую) из столбца 1 в листе 2 и искала это слово в столбце 1 (исходный текст) листа 1, если она находит слово, то формула должна заменить найденное слово, словом которое находится в столбце2 листа2 и в итоге вывести исправленный тест в столбец2 в листе1. Как то так, надеюсь смог обьяснить.

vikttur

Название темы должно отражать суть задачи. Замените сами или предложите модераторам новое название.

Помощь приходит быстрее, если приложен пример в файле Excel

Pelena

Вариант с пользовательской функцией (макросы должны быть разрешены)
Function ReplaceWord(ByVal phrase As Range, arrWords As Range)
    Dim x, w, i&, j&, s$
    If arrWords.Columns.Count <> 2 Then Exit Function
    If phrase.Count > 1 Then Exit Function
    x = arrWords.Value
    s = phrase.Value
    For i = 1 To UBound(x)
        w = Split(x(i, 1), ",")
        For j = 0 To UBound(w)
            s = Replace(s, Trim$(w(j)), x(i, 2))
        Next j
    Next i
    ReplaceWord = s
End Function