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

Работа с гиперссылками в Microsoft Excel — задача, с которой регулярно сталкиваются маркетологи, SEO-специалисты и аналитики. Вы когда-нибудь получали таблицу с сотнями строк, где часть ячеек содержит скрытые URL, а вам нужно их все извлечь? Или пытались найти битые ссылки в большом прайс-листе? В этой статье мы разберём 7 проверенных методов поиска ссылок — от базовых инструментов до продвинутых скриптов на VBA, которые сэкономят вам часы ручной работы.

Многие пользователи даже не подозревают, что в Excel можно не только вставлять гиперссылки вручную, но и автоматически сканировать документ на их наличие, извлекать адреса в отдельный столбец или проверять их работоспособность. Особенно актуально это для тех, кто работает с парсингом данных, ведёт базы контактов или анализирует конкурентные сайты. Далее вы узнаете, как найти ссылки любой сложности — будь то видимые гиперссылки, скрытые в формулах или даже встроенные в объекты (например, в кнопки или изображения).

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

  • 🔗 Видимые гиперссылки — подчёркнутый текст синего цвета, при клике на который открывается веб-страница.
  • 📊 Ссылки в формулах — например, =ГИПЕРССЫЛКА("https://site.ru"; "Текст").
  • 🖼️ Ссылки в объектах — привязанные к кнопкам, изображениям или фигурам.
  • 🔍 Скрытые URL — адреса, вставленные как текст без форматирования (например, https://example.com без подчёркивания).
📊 Как часто вы работаете с гиперссылками в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

1. Поиск ссылок через встроенную функцию "Найти и заменить"

Самый простой способ обнаружить гиперссылки — использовать стандартный инструмент Ctrl + F (или Найти и выделить → Найти в меню). Однако здесь есть нюанс: по умолчанию Excel ищет только текст, а не форматирование. Чтобы найти именно ссылки:

  1. Нажмите Ctrl + F (или перейдите на вкладку Главная → Найти и выделить → Найти).
  2. В поле поиска оставьте пустым.
  3. Нажмите кнопку Параметры (или Дополнительно в старых версиях).
  4. В выпадающем меню Формат выберите Выбрать формат из ячейки и кликните на любую ячейку с гиперссылкой.
  5. Нажмите Найти все — внизу появится список всех ячеек с аналогичным форматированием.

Этот метод подходит для быстрого поиска видимых ссылок, но не обнаружит URL, вставленные как обычный текст или скрытые в формулах. Также он не покажет адреса ссылок — только их местоположение в таблице.

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

2. Извлечение ссылок с помощью функции ГИПЕРССЫЛКА

Если вам нужно не просто найти, а вытащить URL из ячеек в отдельный столбец, используйте комбинацию функций ГИПЕРССЫЛКА и АДРЕС. Например, чтобы извлечь адрес из ячейки A1, введите в соседнюю ячейку:

=ЕСЛИОШИБКА(АДРЕС(ГИПЕРССЫЛКА(A1)); "")

Эта формула:

  • 🔄 Проверяет, является ли содержимое ячейки A1 гиперссылкой.
  • 📋 Если да — извлекает её адрес.
  • ❌ Если нет — возвращает пустую строку (благодаря ЕСЛИОШИБКА).

Для обработки всего столбца просто протяните формулу вниз. Этот метод работает только с явными гиперссылками, созданными через Вставка → Гиперссылка или функцию ГИПЕРССЫЛКА. Скрытые URL (вставленные как текст) он не обнаружит.

3. Поиск ссылок в формулах

Гиперссылки могут быть спрятаны не только в ячейках, но и внутри формул. Например, в формуле =ГИПЕРССЫЛКА("https://site.ru"; "Нажми сюда") адрес скрыт за функцией. Чтобы найти такие ссылки:

  1. Выделите диапазон ячеек, где могут быть формулы (например, весь лист Ctrl + A).
  2. Нажмите Ctrl + ~ (тильда) — это отобразит режим формул, где вместо результатов вы увидите сами выражения.
  3. Теперь используйте Ctrl + F и ищите ключевые слова: ГИПЕРССЫЛКА, HYPERLINK (в английской версии), или просто http.

Если нужно извлечь URL из формул в отдельный столбец, используйте функцию ФОРМУЛА.ТЕКСТ (в новых версиях Excel) или VBA-скрипт (об этом ниже).

Тип ссылки Пример Как найти
Видимая гиперссылка example.com Найти → Формат → Гиперссылка
Ссылка в формуле =ГИПЕРССЫЛКА("https://site.ru") Ctrl + ~ → поиск по http
URL как текст https://example.com (без форматирования) Ctrl + F → поиск по https://
Ссылка в объекте Кнопка с привязанным URL ПКМ по объекту → Изменить ссылку

4. Продвинутый поиск с помощью Power Query

Power Query — мощный инструмент Excel для преобразования данных, который позволяет автоматически извлекать ссылки из больших таблиц. Вот как это сделать:

  1. Выделите диапазон с данными (или весь лист).
  2. Перейдите на вкладку Данные → Получить данные → Из таблицы/диапазона.
  3. В открывшемся редакторе Power Query добавьте пользовательский столбец с формулой:
    = if [Column1] starts with "http" then [Column1] else null

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

  4. Удалите пустые значения и загрузите данные обратно в Excel.

Этот метод подходит для массовой обработки и позволяет:

  • 🔍 Находить URL даже в ячейках с смешанным содержимым (например, "Сайт: https://example.com").
  • 📂 Фильтровать ссылки по доменам или ключевым словам.
  • 🔄 Автоматизировать обновление списка при изменении исходных данных.
⚠️ Внимание: Power Query доступен только в Excel 2016 и новее (или в Excel 2013 с надстройкой). В старых версиях используйте VBA.

Выделить исходные данные

Открыть Power Query (Данные → Получить данные)

Добавить пользовательский столбец с условием поиска URL

Удалить пустые строки

Загрузить результат в новый лист-->

5. Автоматизация поиска с помощью VBA

Для самых сложных задач (например, поиска ссылок в объектах или массового извлечения адресов) подойдёт VBA. Ниже приведён скрипт, который:

  • 🔍 Находит все гиперссылки на листе.
  • 📋 Извлекает их адреса и текст отображения.
  • 📄 Сохраняет результат в новом листе.

Как использовать:

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

    Dim ws As Worksheet, newWs As Worksheet

    Dim hl As Hyperlink, i As Long

    Dim linkList() As String

    ReDim linkList(1 To 2, 1 To 1)

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

    Set newWs = Worksheets.Add

    newWs.Name = "Ссылки"

    newWs.Cells(1, 1).Value = "Текст ссылки"

    newWs.Cells(1, 2).Value = "Адрес (URL)"

    ' Пройти по всем листам (или укажите конкретный)

    For Each ws In ThisWorkbook.Worksheets

    If ws.Name <> newWs.Name Then

    For Each hl In ws.Hyperlinks

    i = i + 1

    ReDim Preserve linkList(1 To 2, 1 To i)

    linkList(1, i) = hl.TextToDisplay

    linkList(2, i) = hl.Address

    Next hl

    End If

    Next ws

    ' Вывести результаты

    If i > 0 Then

    newWs.Range("A2:B" & i + 1).Value = Application.Transpose(linkList)

    End If

    End Sub

  4. Запустите макрос (F5).

Этот скрипт обрабатывает все листы книги и создаёт отдельную таблицу со ссылками. Для поиска ссылок только в текущем листе замените цикл For Each ws In... на прямую ссылку, например:

Set ws = ActiveSheet
Как модифицировать скрипт для поиска ссылок в объектах?

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

Dim shp As Shape

For Each shp In ws.Shapes

If shp.Hyperlink.Address <> "" Then

i = i + 1

ReDim Preserve linkList(1 To 2, 1 To i)

linkList(1, i) = shp.Name

linkList(2, i) = shp.Hyperlink.Address

End If

Next shp

Этот фрагмент сканирует все объекты на листе и извлекает их URL (если они есть).

6. Поиск битых ссылок (проверка работоспособности)

Найти ссылки — полдела. Часто нужно проверить, работают ли они. Для этого:

  1. Извлеките все URL в отдельный столбец (любым из описанных выше методов).
  2. Используйте Power Query или VBA, чтобы отправить HTTP-запрос на каждый адрес и получить статус (200 — работает, 404 — не найдено).

Пример VBA-кода для проверки ссылок:

Sub CheckLinks()

Dim ws As Worksheet, url As String, http As Object

Dim row As Long, status As String

Set ws = ActiveSheet

Set http = CreateObject("MSXML2.XMLHTTP")

For row = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).row

url = ws.Cells(row, 1).Value

On Error Resume Next

http.Open "HEAD", url, False

http.Send

status = http.Status & " " & http.statusText

ws.Cells(row, 2).Value = status

Next row

End Sub

Этот скрипт:

  • 🔄 Проходит по всем URL в первом столбце.
  • 🌐 Отправляет HEAD-запрос (не скачивает страницу, только проверяет статус).
  • 📋 Записывает результат во второй столбец (например, 200 OK или 404 Not Found).
⚠️ Внимание: При проверке большого количества ссылок (более 100) скрипт может заблокироваться антивирусом или брандмауэром. В этом случае разбейте задачу на части или используйте специализированные сервисы (например, Screaming Frog).

7. Экспорт ссылок в отдельный файл

Если вам нужно не только найти, но и сохранить все ссылки для дальнейшей работы (например, для импорта в Google Sheets или базу данных), следуйте этому алгоритму:

  1. Используйте VBA или Power Query, чтобы извлечь все URL в отдельный лист (как описано выше).
  2. Отфильтруйте данные, оставив только уникальные ссылки (удалите дубликаты через Данные → Удалить дубликаты).
  3. Сохраните лист как отдельный файл:
    • 📑 Файл → Сохранить как → Тип файла: CSV (разделители — запятые).
    • 📋 Или скопируйте данные и вставьте в Google Таблицы.

Для автоматизации экспорта можно использовать этот VBA-скрипт:

Sub ExportLinksToCSV()

Dim ws As Worksheet, newWs As Worksheet

Dim filePath As String

' Создать лист со ссылками (если его ещё нет)

On Error Resume Next

Set newWs = Worksheets("Ссылки")

On Error GoTo 0

If newWs Is Nothing Then

Call ExtractHyperlinks ' Запускаем предыдущий макрос

Set newWs = Worksheets("Ссылки")

End If

' Сохранить как CSV

filePath = ThisWorkbook.Path & "\Ссылки_экспорт_" & Format(Now(), "yyyy-mm-dd") & ".csv"

newWs.Copy

ActiveWorkbook.SaveAs filePath, xlCSV

ActiveWorkbook.Close False

End Sub

Этот код:

  • 🔄 Сначала проверяет, есть ли лист со ссылками (если нет — создаёт его).
  • 💾 Сохраняет данные в файл CSV в папке с текущей книгой.
  • 📅 Автоматически добавляет текущую дату в имя файла.

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

Можно ли найти ссылки в защищённом листе?

Да, но для этого нужно временно снять защиту. Если вы не знаете пароль, используйте VBA с обходом защиты (например, через UserInterfaceOnly:=True). Однако это может нарушить политику безопасности вашей компании.

Как найти ссылки в комментариях к ячейкам?

Стандартными средствами — никак. Но можно использовать VBA:

Sub FindLinksInComments()

Dim cell As Range, comment As Comment

For Each cell In ActiveSheet.UsedRange

If Not cell.Comment Is Nothing Then

If InStr(1, cell.Comment.Text, "http") > 0 Then

MsgBox "Ссылка в комментарии ячейки " & cell.Address

End If

End If

Next cell

End Sub

Почему функция ГИПЕРССЫЛКА не работает в моём Excel?

Вероятные причины:

  • 🔹 Вы используете Excel для Mac — некоторые функции могут отличаться.
  • 🔹 В настройках безопасности отключены гиперссылки (Файл → Параметры → Центр управления безопасностью → Параметры центра... → Включить гиперссылки).
  • 🔹 Формула введена как текст (попробуйте нажать F2 → Enter, чтобы активировать её).

Как найти все ссылки на конкретный домен (например, только на site.ru)?

Используйте Power Query с фильтром:

  1. Загрузите данные в Power Query.
  2. Добавьте столбец с условием: = if Text.Contains([Column1], "site.ru") then [Column1] else null.
  3. Удалите пустые строки и загрузите результат.

Можно ли автоматически заменить все ссылки с HTTP на HTTPS?

Да, с помощью функции ЗАМЕНИТЬ:

=ЗАМЕНИТЬ(A1; "http://"; "https://")

Или через Найти и заменить (Ctrl + H), где:

  • 🔹 Найти: http://
  • 🔹 Заменить на: https://