An Excel hyperlink cell stores two pieces of information at once: the visible anchor text you read in the cell, and the hidden web address Excel opens when you click the link. Extracting the URL means pulling that hidden address out of one cell or an entire column so you can paste it somewhere else as plain text. You can recover the address directly inside Excel through a few built-in clicks, or you can hand a column of hyperlinks to a dedicated tool that scans text for web addresses. The second route is the practical one when a workbook holds hundreds or thousands of link cells, because Excel's built-in features do not scale, and the helper formulas you would otherwise use end up as new columns living inside the spreadsheet. A browser-based URL extractor handles the cleanup in one pass: it strips the punctuation around each address, normalizes the spelling, drops duplicates, and exports the cleaned list as a one-URL-per-line file you can reopen anywhere. None of the source text leaves your tab during the scan, so it is reasonable to use the tool on link lists pulled from private reports or working drafts.

how to extract url from hyperlink in excel
how to extract url from hyperlink in excel

When you choose Insert → Link in Excel and point the link at a web page, the cell stores an object rather than a plain string. The object carries a Display property that becomes the cell's visible content and an Address property that holds the real web address. Editing the cell text by hand only changes what the user reads; the Address stays hidden inside the hyperlink object. That separation is why a quick Copy and Paste from the cell into another application reproduces the anchor text only, and why any tool that reads the cell value misses the underlying URL entirely. The hidden Address is also why a sorted or filtered list of hyperlinks can quietly reorder rows without reordering the addresses, and why Find and Replace on the cell text does not match the URL. Knowing that the URL lives in a separate property explains every workaround that follows, including the helper-column approach and the paste-into-an-extractor workflow.

Three ways to pull the address out of Excel

Different scales of work call for different methods. The table below compares three practical paths for getting URLs out of an Excel hyperlink column.

MethodBest forSkill requiredWhat you end up with
Edit Hyperlink dialogOne or two cellsAnyone with ExcelSingle URL per click
Copy cells, paste as plain textA few dozen cells at mostBasic copy and pasteAnchor text only; URLs stay hidden
VBA helper columnHundreds or thousands of cellsComfortable opening the VBA editorPlain URL per cell, easy to copy

For a single cell, right-click the hyperlink, choose Edit Hyperlink, and read the value in the Address field of the dialog that appears. Copy that value and paste it where you need it. This is the right answer for one-off cleanups, but it does not scale beyond a handful of cells.

For a small list, select the cells, press Ctrl+C, open a plain text editor such as Notepad, and paste. The cells land as their display text. The addresses stay hidden inside the workbook, so this approach rarely delivers URLs without a helper step, but it does confirm which rows actually contain links.

For a full column of hyperlinks, the practical path is a short user-defined function inside Excel's VBA editor. Press Alt+F11 to open the editor, choose Insert → Module, and paste the following three lines:

Function GetURL(rng As Range) As String   GetURL = rng.Hyperlinks(1).Address End Function

Return to the worksheet, type =GetURL(A1) in a helper column next to the first hyperlink, fill the formula down, then copy the helper column and Paste as Values to drop the formulas. The column now holds plain URLs that can be copied anywhere. Microsoft 365 users who prefer not to enable macros can try a LET and TEXTAFTER pattern, but it only works on cells built with the HYPERLINK function rather than the Insert Link dialog, which is why the VBA path is the reliable one.

Normalize, deduplicate, and export with URL Extractor

After you have a column of plain URLs, copy it and paste it into the URL Extractor. The tool scans the pasted text for HTTP, HTTPS, and www-style addresses, validates each candidate with the browser URL constructor, removes duplicates, and returns one URL per line. None of the pasted text leaves the browser, so the list never travels to a server.

  1. Copy the helper column that holds the plain URLs from your workbook.
  2. Open URL Extractor in a new tab and paste the copied text into the input box. Up to 1,000,000 code units of UTF-16 text are accepted, and the scan starts as soon as the paste is well formed.
  3. Review the preview list. Each row shows the normalized address, and the unique count above the list confirms how many distinct URLs were found.
  4. Click Download to save the result as a UTF-8 text file with LF line separators.

The whole round trip from an Excel column to a clean file usually takes longer to describe than to perform.

How browser normalization changes the list

The URLs that come back are not the same characters you pasted. The browser URL constructor performs structural parsing and serialization, which means hostnames become lowercase, a missing root path becomes a trailing slash, and the default URL serialization rules apply. Valid query strings, fragments, ports, paths, and even embedded credentials remain intact. The MDN reference for the URL constructor describes this normalization in detail.

The practical effect is that two source spellings of the same address collapse into one entry. HTTPS://EXAMPLE.COM and https://example.com/ are treated as identical, and a www candidate is rewritten as a complete HTTPS URL because the extractor prepends https:// before validation, so WWW.Example.com becomes https://www.example.com/. The output is therefore normalized URL text, not necessarily the exact spelling found in the source.

The table below summarizes how each kind of variation is handled.

Candidate featureWhat the parser does
Capital letters in hostnameLowercased during serialization
Missing trailing slash on root pathSlash added
www.Example.comRewritten as https://www.example.com
Trailing period, exclamation mark, question mark, or colonRemoved as prose punctuation
Trailing closing parenthesis, bracket, or braceRemoved only when it is unmatched
Comma or semicolon inside a candidateTreated as a boundary and removed
Embedded user credentialsPreserved as part of the URL

The flip side is that URLs that differ by query order, fragment, path case, embedded credentials, or a meaningful trailing path stay separate, because the browser serialization still differs between them. Tracking parameters are not stripped, so if the order or presence of utm_source and utm_medium matters to your list, sort or filter it downstream.

What the extractor will not do, and what to watch for

The scanner is intentionally narrow. It looks for HTTP, HTTPS, and www candidates in plain text only. Bare example.com domains without www are skipped, FTP and mailto addresses are out of scope, and the tool does not parse HTML, Markdown, or email archives. For an <a href> list inside an HTML file, or for the URL portion of a Markdown link, use a format-aware parser that knows the surrounding grammar.

Limits are explicit. Pasted text is capped at 1,000,000 UTF-16 code units and the unique-URL result is capped at 10,000 entries; inputs that exceed either ceiling are rejected rather than silently trimmed. Malformed UTF-16 surrogates are rejected before scanning, which prevents the parser or the UTF-8 download encoder from substituting replacement characters without notice. Invalid candidates are skipped without stopping the scan, so a stray broken address does not hide the rest of the list.

Safety comes down to two reminders. The extractor makes no network request to the URLs it returns, so a syntactically valid address can still be malicious or unreachable. Any credentials embedded in a URL remain visible in the output, because stripping them would change the parsed address. Do not paste signed links, private tokens, or personal data into a workflow you would not otherwise trust.

If the workbook also holds email addresses in cells, the How to Extract Email Addresses From Excel Cells guide walks through the same paste-and-scan workflow for the email column and dedupes the result case-insensitively.