Разное

Замена ссылки словом: как заменить ссылку на слово. например ссылка внутри слова нажимаешь на слово и переходишь по ссылке — Спрашивалка

20.02.2023

Поиск и замена данных | Работа в МойОфис Текст Настольная версия

Ввод текстаБуфер обменаПроверка правописанияСноскиГиперссылкиПерекрестные ссылкиЗакладкиВставить текущую дату или времяПоиск и замена данных

  • Ввод текста
  • Буфер обмена
  • Проверка правописания
  • Сноски
  • Гиперссылки
  • Перекрестные ссылки
  • Закладки
  • Вставить текущую дату или время
  • Поиск и замена данных

Продукт: МойОфис Профессиональный, МойОфис Стандартный, МойОфис Образование, МойОфис Текст

Поиск по документу

Чтобы найти данные в текущем документе, выполните следующие действия:

1.Откройте панель поиска одним из следующих способов:

•Выберите пункт командного меню Правка > Поиск.

•На боковой панели нажмите кнопку .

•Нажмите сочетание клавиш Ctrl+F.

2.При необходимости укажите параметры поиска:

•Весь документ/Без учета колонтитулов – выполнить поиск во всем документе, включая колонтитулы, или выполнить поиск во всем документе, за исключением колонтитулов.

•С учетом регистра – выполнить поиск с учетом заглавных и строчных букв в искомом тексте.

•Только слова целиком – найти только целые слова, а не текст, который является частью другого слова.

3.В поле Найти введите данные для поиска.

Результаты поиска подсветятся в документе. Используйте кнопки под строками поиска и замены, чтобы перемещаться по найденным фрагментам.

Замена по документу

Чтобы найти и заменить данные в текущем документе, выполните следующие действия:

1.Откройте панель поиска одним из следующих способов:

•Выберите пункт командного меню Правка > Поиск.

•На боковой панели нажмите кнопку .

•Нажмите сочетание клавиш Ctrl+F.

2.При необходимости укажите параметры поиска:

•Весь документ/Без учета колонтитулов – выполнить поиск во всем документе, включая колонтитулы, или выполнить поиск во всем документе, за исключением колонтитулов.

•С учетом регистра – выполнить поиск с учетом заглавных и строчных букв в искомом тексте.

•Только слова целиком – найти только целые слова, а не текст, который является частью другого слова.

3. В поле Найти введите данные для поиска.

4.В строку Заменить на введите данные для замены или оставьте поле пустым, если требуется удалить найденный фрагмент.

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

Регистр учитывается только для первого символа в найденном слове.

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

6.Замените данные одним из следующих способов:

•Нажмите кнопку Заменить, чтобы заменить данные в текущем выделенном фрагменте.

•Нажмите кнопку Заменить все, чтобы одновременно заменить данные во всех найденных фрагментах.

Поделиться:

Был ли материал полезным?

Пользователи, считающие этот материал полезным: 1 из 1

Предыдущее

Массовая замена текста формулами

21967 11.08.2020 Скачать пример

Предположим, что у вас имеется список, в котором с разной степенью «пряморукости» записаны исходные данные — например, адреса или названия компаний:

          

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

А теперь представьте, что к вам такие кривые данные попадают регулярно, т.е. это не единичная история из серии «исправил вручную, забыл», а проблема на регулярной основе и в большом количестве ячеек.

Что же делать? Не заменять же вручную 100500 раз кривой текст на правильный через окошко «Найти и заменить» или нажимая Ctrl+H?

Первое, что приходит в голову в подобной ситуации — произвести массовую замену по составленному заранее справочнику соответствия неправильных и правильных вариантов — вроде такого:


К сожалению, при очевидной распространенности подобной задачи, в Microsoft Excel не существует простых встроенных способов для её решения. Для начала, давайте разберёмся, как это делать формулами, без привлечения «тяжелой артиллерии» в виде макросов на VBA или Power Query.

Случай 1. Массовая полная замена

Начнём с относительно простого случая — ситуации, когда нужно заменить старый кривой текст на новый полностью.

Предположим, что у нас есть две таблицы:

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

второй таблицы-справочника.

Для удобства:

  • Обе таблицы преобразованы в динамические («умные») с помощью сочетания клавиш Ctrl+T или командой Вставка — Таблица (Insert — Table).
  • На появившейся вкладке Конструктор (Design) первой таблице присвоено имя Данные, а второй таблице-справочнику — Замены.

Чтобы объяснить логику формулы зайдём чуть издалека.

Взяв в качестве примера первую компанию из ячейки A2 и забыв временно про остальные компании, попробуем определить какой именно вариант из столбца Найти там встречается.

Для этого выделим любую пустую ячейку в свободной части листа и введём туда функцию НАЙТИ (FIND):


Эта функция определяет входит ли заданная подстрока (первый аргумент — все значения из столбца Найти) в исходный текст (первая компания из таблицы данных) и должна вывести на выходе либо порядковый номер символа, начиная с которого текст был найден, либо ошибку если подстрока не обнаружена.

Хитрость тут в том, что поскольку первым аргументом мы указали не одно, а несколько значений — эта функция будет возвращать в качестве результата тоже не одно значение, а массив из 3 элементов. Если у вас не последняя версия Office 365 с поддержкой динамических массивов, то после ввода этой формулы и нажатия на Enter вы этот массив увидите прямо на листе:


Если же у вас предыдущие версии Excel, то после нажатия на Enter мы увидим только первое значение из массива результатов, т.е. ошибку #ЗНАЧ! (#VALUE!).

Пугаться не стоит 🙂 На самом деле наша формула работает и увидеть весь массив результатов всё равно можно, если выделить введённую функцию в строке формул и нажать клавишу F9(только не забудьте потом нажать Esc, чтобы вернуться обратно к формуле):


Полученный массив результатов означает, что в исходном кривом названии компании (ГК Морозко ОАО) из всех значений в столбце Найти нашлось только второе (Морозко), причём начиная с 4-го по счёту символа.

Теперь добавим к нашей формуле функцию ПРОСМОТР (LOOKUP):


У этой функции три аргумента:

  1. Искомое значение — можно использовать любое достаточно большое число (главное, чтобы оно превышало длину любого текста в исходных данных)
  2. Просматриваемый_вектор — тот диапазон или массив, где мы ищем искомое значение. Здесь это введённая ранее функция НАЙТИ, возвращающая массив {#ЗНАЧ!:4:#ЗНАЧ!}
  3. Вектор_результатов — диапазон, откуда мы хотим вернуть значение, если искомое значение найдено в соответствующей ячейке. Здесь это правильные названия из столбца Заменить нашей таблицы-справочника.

Главная и неочевидная фишка тут в том, что функция ПРОСМОТР при отсутствии точного совпадения всегда ищет ближайшее наименьшее (предыдущее) значение. Поэтому, указав в качестве искомого значения любое здоровенное число (например 9999), мы заставим ПРОСМОТР находить ячейку с ближайшим наименьшим числом (4) в массиве {#ЗНАЧ!:4:#ЗНАЧ!} и выдавать соответствующее ей значение из вектора результатов, т.е. правильное название компании из столбца Заменить.

Второй нюанс заключается в том, что, технически, наша формула является формулой массива, т.к. функция НАЙТИ возвращает в качестве результатов не одно, а массив из трёх значений. Но поскольку функция ПРОСМОТР поддерживает массивы «из коробки», то нам не придётся вводить эту формулу как классическую формулу массива — с помощью сочетания клавиш Ctrl+Shift+Enter. Достаточно будет простого Enter.

Вот и всё. Надеюсь вы ухватили логику.

Осталось перенести готовую формулу первую ячейку B2 столбца Исправлено — и наша задача решена!

Само-собой, с обычными (не умными) таблицами эта формула тоже замечательно работает (только не забудьте про клавишу F4 и закрепление соответствующих ссылок):


Случай 2. Массовая частичная замена

Этот случай чуть похитрее. Снова имеем две «умных» таблицы:


Первая таблица с криво записанными адресами, которые нужно исправить (я назвал её Данные2). Вторая таблица — справочник, по которому нужно произвести частичную замену подстроки внутри адреса (я назвал эту таблицу Замены2).

Принципиальное отличие тут в том, что нужно заменять только фрагмент исходных данных — например, в первом адресе неправильный «С-Петербург» на правильный «Санкт-Петербург», оставив остальную часть адреса (индекс, улицу, дом) в исходном виде.

Готовая формула будет выглядеть так (для удобства восприятия я разделил её на насколько строк с помощью Alt+Enter):


Основную работу здесь выполняет стандартная Excel’евская текстовая функция ПОДСТАВИТЬ (SUBSTITUTE), у которой 3 аргумента:

  1. Исходный текст — первый кривой адрес из столбца Адрес
  2. Что ищем — тут мы используем трюк с функцией ПРОСМОТР (LOOKUP) из предыдущего способа, чтобы вытащить значение из столбца Найти, которое входит как фрагмент в кривой адрес.
  3. На что заменить — аналогичным образом находим соответствующее ему правильное значение из столбца Заменить.

Вводить эту формулу с Ctrl+Shift+Enter здесь тоже не нужно, хотя она и является, по-сути, формулой массива.

И хорошо видно (см. ошибки #Н/Д на предыдущей картинке), что такая формула, при всей её элегантности, обладает и парой недостатков:

  • Функция ПОДСТАВИТЬ является регистрочувствительной, поэтому «Спб» в предпоследней строке так и не нашлось в таблице замен. Для решения этой проблемы можно либо использовать функцию ЗАМЕНИТЬ (REPLACE), либо предварительно привести обе таблицы к одному регистру.
  • Если текст изначально правильный или в нём нет ни одного фрагмента на замену (последняя строка), то наша формула выдает ошибку. Этот момент можно нейтрализовать перехватом и заменой ошибок с помощью функции ЕСЛИОШИБКА (IFERROR):

  • Если в исходном тексте встречается сразу несколько фрагментов из справочника, то наша формула заменяет только последний (в 8-й строке Лиговский «проспект» заменился на «пр-т», а вот «С-Пб» на «Санкт-Петербург» уже нет, т.к. «С-Пб» стоит выше в справочнике). Эту проблему можно решить повторным прогоном нашей же формулой, но уже по столбцу Исправлено:


Не идеально и, местами, громоздко, но гораздо лучше, чем однообразная замена вручную, правда? 🙂

P.S.

В следующей статье разберёмся, как реализовать подобную массовую подстановку с помощью макросов и Power Query.

Ссылки по теме

  • Как работает функция ПОДСТАВИТЬ (SUBSTITUTE) для замены текста
  • Поиск точного совпадения текста с помощью функции СОВПАД (EXACT)
  • Поиск и подстановка с учётом регистра (регистрочувствительный ВПР)

Как найти все экземпляры определенного слова и заменить его гиперссылкой?

Задавать вопрос

спросил

Изменено 7 лет, 9 месяцев назад

Просмотрено 11 тысяч раз

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

Пример: Я бы искал «проект» и заменял все экземпляры гиперссылкой www. example.com с отображаемым текстом, остающимся «проектом».

Я нашел много макросов, которые очень похожи, но не совсем то, что мне нужно. Например макрос с этого сайта

Как программно отредактировать все гиперссылки в документе Word?

..изменит все адреса гиперссылок в документе и их отображаемый текст. Я думал, что могу изменить все экземпляры «проекта» на гиперссылку, используя встроенный поиск и замену, а затем использовать этот макрос для изменения отображаемого текста. Однако встроенная функция поиска и замены не создает гиперссылки, вам нужно навести курсор на несвязанный текст и нажать пробел/ввод, чтобы активировать ее. Это нецелесообразно в большом документе.

Чтобы быть действительно привередливым, было бы удивительно, если бы он изменил только обычный основной текст, а не весь текст, поэтому я мог бы оставить заголовки и заголовки без изменений. Я предполагаю, что это возможно, используя встроенный поиск и замену для замены только обычного текста, а затем, возможно, макрос для добавления гиперссылок. 9в.

5.Нажмите Заменить все.

не макрос но работает. Вы можете записать это как макрос, тогда у вас будет макрос, который вам нужен.

Использование опции форматирования для выбора только стиля форматирования, который вы хотите заменить.

1

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

VBA найти слово и заменить его гиперссылкой в ​​Word 2010

Задавать вопрос

спросил

Изменено 7 лет, 8 месяцев назад

Просмотрено 9к раз

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

Книга «Когда восходит солнце», ABC-1212321-DEF, вышла сегодня…….

Необходимо найти «ABC-1212321-DEF» и применить гиперссылку следующим образом: http ://google.com/ABC-sometext-1212321-anothertext-DEF

Все строки в документе начинаются с «ABC-» и заканчиваются на «-DEF».

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Вот что у меня получилось:

 Sub InsertLinks()
Dim r As Диапазон
Dim SearchString как строка
Установите r = ActiveDocument.Range
Строка поиска = "ABC-"
С r.Find
.MatchWildcards = Истина
Делать, пока .Execute(findText:=SearchString, Forward:=True) = True
ActiveDocument.Hyperlinks.Add Anchor:=r, _
Адрес:=Заменить(r.Текст, " ", ""), _
SubAddress:="", ScreenTip:="", TextToDisplay:=r.Text
С р
.Конец = r.Гиперссылки(1).Диапазон.Конец
.Свернуть 0
Конец с
Петля
Конец с
Конец сабвуфера
 

Теперь обнаруживает ABC- и добавляет случайную ссылку. Но нужно получить число между ABC- и -DEF. Длина не та.

  • vba
  • гиперссылка
  • ms-word
  • word-2010

3

РЕШЕНИЕ

Это код, который решил мою проблему:

 Sub InsertLinksTB()
Dim Rng As Range
Dim SearchString как строка
Dim EndString как строка
Dim Id как строка
Dim Link As String
Установите Rng = ActiveDocument.Range
Строка поиска = "ABC-"
КонечнаяСтрока = "-DEF"
 С Rng.Find
 .MatchWildcards = Истина
 Делать, пока .Execute(findText:=SearchString, Forward:=False) = True
 Rng.MoveStartUntil ("ABC-")
 Rng.MoveEndUntil ("")
 'MsgBox (Rng.Text)
 Id = Split(Split(Rng.Text, "ABC-")(1), "-DEF")(0)
 'MsgBox (идентификатор)
 Ссылка = "http://google.com/" и идентификатор
 ActiveDocument.Hyperlinks.Add Anchor:=Rng, _
 Адрес:=Ссылка, _
 SubAddress:="", ScreenTip:="", TextToDisplay:=Rng.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *