Как преобразовать гиперссылку в обычный текст в Excel: все методы

Почему Excel хранит гиперссылки отдельно от текста?

Microsoft Excel обрабатывает гиперссылки как особый тип данных: визуально в ячейке отображается отображаемый текст (например, «Сайт компании»), но при клике открывается URL-адрес (например, https://example.com). Эта двойственная структура создаёт проблемы, когда нужно извлечь сам адрес для анализа, импорта в другие системы или просто для удобства работы.

Внутренне Excel хранит гиперссылки в отдельном слое данных — объекте Hyperlink, который не виден в стандартном интерфейсе таблицы. Поэтому простые операции вроде копирования (Ctrl+C) или функции =АДРЕС() не сработают. Требуются специальные приёмы, о которых мы расскажем ниже.

Сценарии, когда это необходимо:

  • 📊 Анализ ссылок: выгрузка всех URL для проверки на битые ссылки или дубликаты.
  • 📤 Экспорт данных: передача таблицы в систему, которая не поддерживает формат гиперссылок Excel.
  • 🔍 Поиск и замена: массовое редактирование адресов (например, замена домена).
  • 📎 Архивирование: сохранение актуальных ссылок перед удалением гиперссылок из файла.
📊 Как часто вы работаете с гиперссылками в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Метод 1: Использование функции ГИПЕРССЫЛКА() для обратного извлечения

Если гиперссылка была создана через функцию =ГИПЕРССЫЛКА(ссылка; [имя_ссылки]), извлечь URL проще всего. Формула хранит адрес в первом аргументе, поэтому достаточно:

  1. Выделить ячейку с гиперссылкой.
  2. Посмотреть строку формул (Fx) — там будет виден полный синтаксис.
  3. Скопировать текст между кавычками после ГИПЕРССЫЛКА(.

Для автоматического извлечения используйте формулу:

=ЛЕВСИМВ(ФОРМУЛАТЕКСТ(A1); НАЙТИ(""""; ФОРМУЛАТЕКСТ(A1); 2)-2)

Где A1 — ячейка с гиперссылкой. Формула находит вторую кавычку в тексте функции и извлекает всё до неё.

⚠️ Внимание: Этот метод работает только для ссылок, созданных через функцию. Если гиперссылка добавлена через контекстное меню (ПКМ → Ссылка), функция ФОРМУЛАТЕКСТ() вернёт ошибку.

Метод 2: VBA-макрос для массового извлечения ссылок

Для обработки больших таблиц (сотни или тысячи ссылок) ручные методы неэффективны. Visual Basic for Applications (VBA) позволяет автоматизировать процесс:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль: Insert → Module.
  3. Скопируйте следующий код:
    Sub ExtractHyperlinks()
    

    Dim hl As Hyperlink

    Dim rng As Range

    For Each rng In Selection

    If rng.Hyperlinks.Count > 0 Then

    rng.Value = rng.Hyperlinks(1).Address

    End If

    Next rng

    End Sub

  4. Выделите диапазон ячеек с гиперссылками в Excel.
  5. Запустите макрос (F5 или кнопка Run).

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

Выделить только ячейки с гиперссылками|Сохранить резервную копию файла|Убедиться, что макросы разрешены в настройках Excel|Проверить отсутствие защищённых листов-->

Метод 3: Копирование через буфер обмена (без формул)

Самый простой способ для небольшого количества ссылок — использование буфера обмена Windows:

  1. Выделите ячейку с гиперссылкой.
  2. Нажмите Ctrl+C (копировать).
  3. Вставьте в обычный текстовый редактор (например, Блокнот или Notepad++) комбинацией Ctrl+V.
  4. В блокноте отобразится полный URL — скопируйте его обратно в Excel.

Почему это работает? При копировании Excel помещает в буфер обмена оба компонента гиперссылки (текст и адрес), но текстовые редакторы игнорируют форматирование и показывают только сырую ссылку.

⚠️ Внимание: Вставка напрямую в другую ячейку Excel (Ctrl+V) сохраняет гиперссылку. Используйте только неформатированные редакторы!
Метод Скорость Сложность Подходит для
Функция ГИПЕРССЫЛКА() ⚡ Быстро ⭐⭐ Средняя Ссылок, созданных формулой
VBA-макрос ⚡⚡ Мгновенно ⭐⭐⭐ Высокая Массовой обработки
Буфер обмена 🐢 Медленно ⭐ Низкая Единичных ссылок
Power Query ⚡ Быстро ⭐⭐⭐ Высокая Сложных трансформаций

Метод 4: Power Query для продвинутых пользователей

Power Query (доступен в Excel 2016+) позволяет извлечь гиперссылки как часть процесса ETL (извлечение, трансформация, загрузка). Этот метод полезен, если данные импортируются из внешних источников (например, веб-страниц или баз данных).

Инструкция:

  1. Выделите диапазон с гиперссылками и нажмите Данные → Из таблицы/диапазона.
  2. В редакторе Power Query добавьте пользовательский столбец с формулой:
    = Table.AddColumn(#"Исходный столбец", "URL", each [YourColumnName][Hyperlink]

    Замените YourColumnName на имя вашего столбца.

  3. Удалите исходный столбец и сохраните изменения.

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

Что делать, если Power Query не видит гиперссылки?

Если при импорте гиперссылки не отображаются в Power Query, проверьте:

1. Формат ячеек в исходной таблице (должен быть "Гиперссылка").

2. Версию Excel (в 2013 и ниже Power Query называется "Power BI" и требует отдельной установки).

3. Настройки региональных стандартов (разделители в формулах могут отличаться для русской и английской версий).

Метод 5: Ручное извлечение через свойства ячейки

Если гиперссылка одна или их мало, можно воспользоваться встроенным редактором:

  1. Щёлкните правой кнопкой по ячейке с гиперссылкой.
  2. Выберите Изменить гиперссылку... (или Edit Hyperlink в английской версии).
  3. В поле Адрес (Address) вы увидите полный URL — скопируйте его вручную.
  4. Нажмите Отмена, чтобы не сохранять изменения.

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

Ошибки и решения: почему не получается извлечь ссылку?

Распространённые проблемы и их причины:

  • 🔴 Формула возвращает #ЗНАЧ!: Гиперссылка создана не через функцию ГИПЕРССЫЛКА(), а через контекстное меню. Используйте VBA или буфер обмена.
  • 🔴 Макрос не работает: В настройках Excel отключены макросы (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройка макросов).
  • 🔴 Power Query не видит гиперссылки: Данные импортированы как текст, а не как таблица Excel. Повторите импорт с выбором правильного источника.
  • 🔴 Копирование в блокнот не помогает: Гиперссылка создана через Вставка → Объект → Гиперссылка (устаревший метод). Попробуйте VBA.

Если ни один метод не сработал, проверьте:

  • 📌 Формат ячейки: должен быть Гиперссылка или Общий.
  • 📌 Версию Excel: в Excel Online и Mac-версии некоторые методы (например, VBA) могут отличаться.
  • 📌 Источник данных: гиперссылки, импортированные из PDF или веб-страниц, могут храниться как текст с форматированием.

FAQ: Частые вопросы по работе с гиперссылками в Excel

Можно ли извлечь URL, если гиперссылка ведёт на ячейку в этом же файле (например, #Лист2!A1)?

Да, но такие ссылки хранятся как внутренние адреса. Для их извлечения модифицируйте VBA-макрос:

rng.Value = "#" & rng.Hyperlinks(1).SubAddress

Это вернёт текст вида #Лист2!A1, который можно далее разбить на компоненты функциями ПОИСК() и ПСТР().

Почему после извлечения ссылок некоторые URL обрезаются или содержат символы %20?

Excel автоматически кодирует пробелы и специальные символы в URL (например, пробел становится %20). Это стандарт URL-encoding, используемый в вебе. Чтобы вернуть оригинальный вид, используйте функцию:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1; "%20"; " "); "%3A"; ":")

Для полной декодировки потребуется VBA или сторонние надстройки.

Как сохранить и текст ссылки, и её адрес в отдельных столбцах?

Используйте этот VBA-скрипт:

Sub SplitHyperlink()

Dim hl As Hyperlink

Dim rng As Range

For Each rng In Selection

If rng.Hyperlinks.Count > 0 Then

rng.Offset(0, 1).Value = rng.Hyperlinks(1).Address 'URL в соседнюю ячейку

rng.Offset(0, 2).Value = rng.Hyperlinks(1).TextToDisplay 'Текст ссылки

End If

Next rng

End Sub

Скрипт запишет URL в столбец справа, а отображаемый текст — через один столбец.

Возможно ли автоматически проверять работоспособность извлечённых ссылок?

Excel не имеет встроенных инструментов для проверки ссылок, но можно:

  1. Экспортировать URL в .txt и использовать сторонние сервисы (например, Dead Link Checker).
  2. Написать VBA-скрипт с XMLHTTP для проверки HTTP-статусов (требует знаний программирования).
  3. Использовать Power Query с подключением к API сервисов проверки (например, Google Search Console API).

Для массовой проверки лучше подойдут специализированные инструменты вроде Screaming Frog SEO Spider.

Как вернуть гиперссылки обратно после извлечения текста?

Если вы сохранили и URL, и отображаемый текст, воспользуйтесь функцией:

=ГИПЕРССЫЛКА(A1; B1)

Где A1 — ячейка с URL, а B1 — с текстом ссылки. Для массового восстановления примените VBA:

Sub RestoreHyperlinks()

Dim rng As Range

For Each rng In Selection

ActiveSheet.Hyperlinks.Add _

Anchor:=rng, _

Address:=rng.Offset(0, -1).Value, _

TextToDisplay:=rng.Value

Next rng

End Sub

Скрипт восстановит гиперссылки, используя URL из левого столбца и текст из текущего.