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

Работа с гиперссылками в Microsoft Excel часто становится головной болью: нужно извлечь только адреса, но при копировании в буфер обмена «липнет» весь текст ячейки. Ситуация усложняется, если ссылок сотни, а вручную выделять каждую — нерационально. Эта проблема актуальна для аналитиков, маркетологов и всех, кто работает с большими массивами данных, где ссылки смешаны с текстом.

В этой статье вы найдёте 5 проверенных методов извлечения гиперссылок — от простых встроенных функций до автоматизации через VBA и Power Query. Мы разберём нюансы для разных версий Excel (2010–2023, Office 365), покажем, как избежать типичных ошибок, и дадим готовые шаблоны для копирования. Особое внимание уделим случаям, когда ссылки скрыты за формулами или условным форматированием.

Почему стандартное копирование не работает

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

Проблема усугубляется, если:

  • 🔗 Ссылки добавлены через функцию ГИПЕРССЫЛКА() — в этом случае URL «спрятан» внутри формулы.
  • 📊 Ячейки отформатированы с помощью условного форматирования (например, ссылки подсвечиваются только при определённых условиях).
  • 📎 Гиперссылки импортированы из внешних источников (веб-скрапинг, CSV-файлы) и хранятся как объекты, а не как текст.

В результате стандартные сочетания клавиш (Ctrl+C/Ctrl+V) или контекстное меню «Копировать» не дают нужного результата. Чтобы получить чистые URL, требуются обходные пути — их мы и рассмотрим далее.

📊 Как вы обычно работаете с гиперссылками в Excel?
Копирую вручную
Использую формулы
Автоматизирую через VBA
Не работал с ними
Другой способ

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

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

Допустим, ваша гиперссылка находится в ячейке A1 и выглядит так:

=ГИПЕРССЫЛКА("https://example.com"; "Нажмите здесь")

Чтобы получить только https://example.com, используйте функцию ФОРМУЛА.ТЕКСТ()Excel 2013+) или комбинацию функций для старых версий.

Версия Excel Формула Пример результата
Excel 2013–2023, Office 365 =ПСТР(ФОРМУЛА.ТЕКСТ(A1); 12; НАЙТИ("""; ФОРМУЛА.ТЕКСТ(A1); 12) - 12) https://example.com
Excel 2010 =ПСТР(ПОДСТАВИТЬ(A1; CHAR(34); "|"); 2; НАЙТИ("|"; ПОДСТАВИТЬ(A1; CHAR(34); "|"); 2) - 2) https://example.com
Любая версия (альтернатива) =ЛЕВСИМВ(A1; НАЙТИ("""; A1; 2) - 2) =ГИПЕРССЫЛКА("https://

Важно: Формула ФОРМУЛА.ТЕКСТ() возвращает текстовое представление формулы, поэтому для корректной работы ячейка A1 не должна содержать ошибок. Если ссылка добавлена не через функцию, а вручную (правый клик → «Ссылка»), этот метод не сработает.

Ячейка содержит функцию ГИПЕРССЫЛКА()|Нет ошибок в ячейке (#ЗНАЧ!, #ССЫЛКА!)|Формула адаптирована под версию Excel|Результат проверен на тестовом примере-->

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

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

Откройте редактор VBA (Alt + F11), вставьте новый модуль (Insert → Module) и добавьте следующий код:

Sub ExtractHyperlinks()

Dim ws As Worksheet

Dim rng As Range

Dim cell As Range

Dim outputRow As Long

' Укажите лист и диапазон с гиперссылками

Set ws = ThisWorkbook.Sheets("Лист1") ' Замените на имя вашего листа

Set rng = ws.Range("A1:A100") ' Замените на ваш диапазон

' Создаём новый лист для результатов

On Error Resume Next

Application.DisplayAlerts = False

ThisWorkbook.Sheets("Ссылки").Delete

Application.DisplayAlerts = True

On Error GoTo 0

ws.Parent.Sheets.Add(After:=ws).Name = "Ссылки"

outputRow = 1

' Извлекаем гиперссылки

For Each cell In rng

If cell.Hyperlinks.Count > 0 Then

ws.Parent.Sheets("Ссылки").Cells(outputRow, 1).Value = cell.Hyperlinks(1).Address

outputRow = outputRow + 1

End If

Next cell

MsgBox "Готово! Извлечено " & (outputRow - 1) & " ссылок.", vbInformation

End Sub

Как адаптировать макрос:

  • 📄 Замените "Лист1" на имя вашего листа с данными.
  • 🔢 Укажите правильный диапазон вместо "A1:A100" (например, "B2:B500").
  • 📂 Результаты будут записаны на новый лист "Ссылки".

Критичный нюанс: макрос извлекает только те гиперссылки, которые добавлены через меню «Вставка → Ссылка». Если ссылка создана функцией ГИПЕРССЫЛКА(), используйте комбинированный подход (VBA + формулы).

Способ 3: Power Query для сложных случаев

Power Query (доступен в Excel 2016+ и Office 365) — мощный инструмент для трансформации данных, включая извлечение гиперссылок. Этот метод полезен, если:

  • 📥 Ссылки импортированы из внешних источников (CSV, JSON, веб-страниц).
  • 🔄 Данные обновляются регулярно, и нужно автоматизировать процесс.
  • 📊 Гиперссылки спрятаны в ячейках с богатым форматированием.

Пошаговая инструкция:

  1. Выделите диапазон с гиперссылками и перейдите на вкладку Данные → Из таблицы/диапазонаExcel 2016+).
  2. В открывшемся редакторе Power Query выберите столбец со ссылками.
  3. Перейдите на вкладку Добавление столбца → Пользовательский столбец.
  4. Введите формулу:
    = if [YourColumn] contains "http" then Text.AfterDelimiter([YourColumn], "http", 1) else null

    (замените YourColumn на имя вашего столбца).

  5. Нажмите Закрыть и загрузить — результаты появятся на новом листе.

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

Как извлечь ссылки из ячеек с формулами в Power Query

В редакторе Power Query добавьте пользовательский столбец с формулой:

= try Text.AfterDelimiter(Text.From([YourColumn]), """", 1) otherwise null

Это позволит получить URL из формул вида =ГИПЕРССЫЛКА("http://..."; "Текст").

Способ 4: Встроенная функция «Специальная вставка»

Малоизвестный трюк: Excel позволяет извлечь гиперссылки через Специальную вставку, но только если ссылки добавлены не через функцию, а вручную (правый клик → «Ссылка»). Метод работает без формул и макросов.

Алгоритм действий:

  1. Выделите ячейки с гиперссылками.
  2. Скопируйте их (Ctrl + C).
  3. Правой кнопкой мыши кликните по пустой ячейке и выберите Специальная вставка → Текст.
  4. Вставьте данные. В результате вы получите отображаемый текст (анкор), а не URL.
  5. Теперь выделите вставленные данные и повторно скопируйте их.
  6. Создайте новый лист, кликните правой кнопкой и выберите Специальная вставка → Связать гиперссылки.

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

⚠️ Внимание: Если после шага 4 вы не видите опцию «Связать гиперссылки» в меню Специальная вставка, значит, исходные ячейки не содержат гиперссылок в формате объектов Excel. Попробуйте другой метод.

Способ 5: Онлайн-конвертеры и надстройки

Если предыдущие способы кажутся сложными, можно воспользоваться внешними инструментами:

  • 🌐 Online-конвертеры: Сервисы вроде ConvertCSV или Aspose.Cells позволяют загрузить файл Excel и извлечь все гиперссылки в отдельный столбец. Минус — риск утечки данных при работе с конфиденциальной информацией.
  • 📦 Надстройки для Excel:
    • Kutools for Excel (платная) — имеет инструмент Extract Hyperlinks.
    • Ablebits — бесплатная пробная версия с функцией извлечения URL.
  • 🤖 Чаты с ИИ: Можно загрузить фрагмент таблицы в ChatGPT или Gemini с просьбой извлечь ссылки (подходит для небольших объёмов).

Преимущество внешних инструментов — простота: достаточно загрузить файл и получить результат. Однако учитывайте:

  • 🔒 Безопасность: Не используйте онлайн-сервисы для файлов с персональными данными.
  • 💰 Стоимость: Платные надстройки (например, Kutools) обходятся в $30–$70 в год.
  • 📏 Ограничения: Бесплатные версии часто ограничивают количество обрабатываемых строк (например, до 100 ссылок).

Типичные ошибки и как их избежать

Даже опытные пользователи Excel сталкиваются с проблемами при извлечении гиперссылок. Вот самые распространённые ошибки и способы их решения:

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

Дополнительная проверка: Если ни один метод не сработал, убедитесь, что:

  • 🔍 Гиперссылки действительно существуют (кликните по ячейке — курсор должен превратиться в «руку» ➚).
  • 📌 В настройках Excel не отключены гиперссылки (Файл → Параметры → Дополнительно → Веб-параметры).
  • 🛠️ Файл не защищён от изменений (проверьте на вкладке Рецензирование).
Код для макроса, который обрабатывает и формулы, и объекты гиперссылок

Sub ExtractAllHyperlinks()

Dim cell As Range

Dim ws As Worksheet

Dim outputRow As Long

Set ws = ThisWorkbook.Sheets("Лист1")

outputRow = 1

For Each cell In ws.UsedRange

If cell.Hyperlinks.Count > 0 Then

ws.Cells(outputRow, "B").Value = cell.Hyperlinks(1).Address ' Столбец B для объектов

ElseIf InStr(1, cell.Formula, "HYPERLINK") > 0 Then

ws.Cells(outputRow, "C").Value = Mid(cell.Formula, InStr(1, cell.Formula, """") + 1, _

InStrRev(cell.Formula, """") - InStr(1, cell.Formula, """") - 1) ' Столбец C для формул

End If

outputRow = outputRow + 1

Next cell

End Sub

Этот макрос записывает объекты-гиперссылки в столбец B, а ссылки из формул — в столбец C.

FAQ: Ответы на частые вопросы

Можно ли извлечь гиперссылки из защищённого листа?

Да, но для этого нужно временно снять защиту. Если вы не знаете пароль, используйте VBA-скрипт для обхода защиты (учитывайте юридические риски). Альтернатива — скопировать данные на новый лист (Правка → Найти и выделить → Выделить группу ячеек → Видимые ячейки).

Как скопировать только текст гиперссылки (анкор), а не URL?

Используйте функцию =ПОЛУЧИТЬ.ДАННЫЕ.ССЫЛКИ()Excel 365) или VBA-макрос:

Sub ExtractLinkText()

Dim cell As Range

For Each cell In Selection

If cell.Hyperlinks.Count > 0 Then

cell.Offset(0, 1).Value = cell.Hyperlinks(1).TextToDisplay

End If

Next cell

End Sub

Этот код запишет анкоры в соседние ячейки справа.

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

Это происходит, если URL содержит символы-разделители (например, ; или пробелы). Решение:

  1. Замените разделители в исходных данных на %20 (пробел) или %3B (;) с помощью =ПОДСТАВИТЬ().
  2. Или оберните результат извлечения в функцию =ТЕКСТСЦЕПИТЬ(""; ЛОЖЬ; диапазон).

Как извлечь ссылки из ячеек с условным форматированием?

Условное форматирование не влияет на извлечение ссылок, если они добавлены как объекты. Если ссылки «спрятаны» за цветом текста (например, белый текст на белом фоне), используйте VBA для сброса форматирования:

Sub ResetFormatting()

Selection.Font.ColorIndex = xlAutomatic

End Sub

После этого применяйте любой метод извлечения.

Работают ли эти методы в Google Sheets?

В Google Таблицах извлечь гиперссылки проще:

  1. Используйте функцию =HYPERLINK(адрес) для создания ссылок.
  2. Для извлечения URL из существующих ссылок применяйте =REGEXEXTRACT(FORMULATEXT(A1); ""https?://[^""]+""").
  3. Или скопируйте ячейки и вставьте как Только значенияGoogle Sheets сохраняет URL.
VBA в Google Sheets не работает, но есть аналоги на Google Apps Script.