У меня есть рабочая тетрадь, в которой есть столбец, содержащий названия различных документов, которые публикуются на веб-сайте (B4:B6). Другой столбец содержит URL-адреса этих документов (C4:C6). URL-адрес создается веб-сайтом при загрузке документа и всегда добавляет к URL-адресу число, которое заранее не предсказуемо.

Образец таблицы

У меня есть пользователь, который привык вставлять гиперссылку в ячейку, которая содержит заголовок, чтобы ячейка заголовка указывала на URL. Он хочет, чтобы ячейки заголовка были гиперссылками, понимает необходимость наличия гиперссылки в своей собственной ячейке для справочных целей, но не хочет повторно вводить или копировать и вставлять URL-адрес. Как настроить ячейки URL (C4:C6), чтобы проверять ячейки заголовка на наличие встроенных гиперссылок и, если он находит, реплицировать их в соответствующую ячейку URL?

В качестве альтернативы, как настроить ячейки заголовка для проверки ячеек URL на наличие текста и, если он их найдет, автоматически применять этот текст в качестве гиперссылки в соответствующей ячейке заголовка?

И что хуже всего, как мне это сделать без использования VBA/ макросов?

Перефразируй:

Текущее состояние: пользователь вручную применяет гиперссылку к заголовку в столбце B. Пользователь также вручную вводит текст URL-адреса в столбце C.

Требуемое состояние (опция 1): пользователь вручную применил гиперссылку к заголовку в столбце B. Текст URL автоматически извлекается из гиперссылки (не текст заголовка) и помещается в столбец C.

Требуемое состояние (опция 2): пользователь вручную вводит текст URL-адреса в столбец C. URL-адрес автоматически применяется в качестве встроенной гиперссылки в ячейке, содержащей заголовок в столбце B.

Вспомогательные столбцы полностью в порядке, если это необходимо.

2 ответа2

0

Эта формула будет смотреть на ячейку, и, если есть гиперссылка (используя формулу Hyperlink() ), вернет URL. Если ссылки нет и это просто текст, она создает ссылку на http://www.fakewebsite.com/[text]:

=IFERROR(MID(FORMULATEXT(A2),SEARCH("http",FORMULATEXT(A2)),SEARCH(",",FORMULATEXT(A2))-SEARCH("http",FORMULATEXT(A2))-1),HYPERLINK("http://www.fakewebsite.com/"&SUBSTITUTE(A2," ","-")))

Примечание. Если "http" нет, просто замените "http" на "www" в приведенной выше формуле. Это работает так:

Редактировать: Пояснение, это извлечет ссылку из столбца "Заголовок документа" и просто поместит текст, если ссылки нет:

=IFERROR(MID(FORMULATEXT(A2),SEARCH("http",FORMULATEXT(A2)),SEARCH(",",FORMULATEXT(A2))-SEARCH("http",FORMULATEXT(A2))-1),"No Link")
0

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

HYPERLINK("link","copied_title")

Смотри ниже;excel_screenshot

Для другой желаемой опции вам все равно придется использовать VBA но, возможно, будет достаточно только определенной пользователем опции, как описано в одном из ответов в этой теме: Извлечение URL-адресов из гиперссылок


VBA Solution


Если вы заинтересованы в VBA, вам может помочь что-то вроде этого:

Sub hyperlink_title()
    Dim i As Integer
    Dim wsh as Worksheet
    Set wsh = ThisWorkbook.ActiveSheet

    i = 4
    With wsh
    While .Cells(i, 2) <> ""

        ActiveSheet.Hyperlinks.Add Anchor:=.Cells(i, 2), Address:=.Cells(i, 3).Value, _
        TextToDisplay:=.Cells(i, "B").Value2

        i = i + 1

    Wend

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .