There are exactly two flavors of hyperlink in Excel, and only one of them yields to a built-in formula: cells built with the HYPERLINK() function leave the address readable inside the formula string itself, while links added through the Insert Link dialog or a drag from a browser window store the URL in a separate metadata layer that no native Excel formula can read directly. That asymmetry controls every strategy for pulling a URL out of a hyperlink in Excel using a formula, because the workbook's own history — formula or UI — decides which tools apply. When the link lives inside HYPERLINK(), a layered MID plus FIND pattern running against FORMULATEXT can return the raw address into a helper column in under a second per cell. When the link lives in metadata, a formula-only workflow gives up early, and the practical answer is either a custom helper routine or a paste-into-tool step that runs outside Excel. The piece below walks through the formula path that does work, shows where it stops behaving, and then explains how a local URL Extractor finishes the cleanup stage for bigger or messier exports.

how to extract url from hyperlink in excel using formula
Excel Hyperlink URLs: Formulas, Limits, and Local Cleanup

Excel offers two formula-based paths for URL extraction, and the choice depends on how the hyperlink was added. The simpler case is the HYPERLINK() function itself: any cell whose contents are written as =HYPERLINK(target, friendly_text) stores the address as the first argument, so the formula text contains the raw URL as a literal string. Pointing FORMULATEXT at that cell returns the literal formula, including both the URL and the friendly label, and a parsing layer can split them apart.

The standard parsing pattern uses MID plus FIND. The MID function extracts a substring from FORMULATEXT(A1); the first FIND locates the opening double-quote that follows the HYPERLINK keyword; the second FIND locates the closing double-quote of the same pair; MID then returns the substring between them, which is exactly the URL. The technique is portable across Excel 365, Excel 2021, and recent versions of Excel for the web because FORMULATEXT itself has been available since Excel 2013 and remains stable. Most published examples wrap the whole expression in IFERROR so blank or broken hyperlinks return an empty string rather than the #VALUE you get when FIND does not find a delimiter.

For people who want to build this once and reuse it, the cleanest approach is a short helper column. Cell B1 reads =FORMULATEXT(A1) verbatim; cell C1 applies the MID plus FIND pair to B1; cell D1 wraps the whole thing in IFERROR so the column never shows errors. Keeping each layer readable makes the boundary characters easy to debug when a particular URL stops returning anything.

The pattern holds up under a few useful conditions: the target URL contains no internal double quotes, no embedded commas adjacent to the outer pair, and the friendly label is a normal short string. When any of those assumptions fail, the second FIND misses the real boundary and the MID slice returns a partial or empty result, which is the moment the formula-only approach starts showing its limits.

Where the Formula Alone Stops Working

The MID plus FIND pattern holds up for tidy sheets built by one author on one machine, but a real workbook exposes the weak edges quickly. Four failure modes show up in everyday work.

First, UI-created hyperlinks store the address in metadata and have no FORMULATEXT to parse, which is why most hands-on guides drop back to a custom helper macro for that case. The related walkthrough "Extract the URL From an Excel Hyperlink" covers that helper routine for readers who can run macros in their environment.

Second, URLs that contain parentheses, brackets, or braces trip the parsing because MID treats them as plain characters. A link such as https://example.com/page_(draft) can survive a careful formula, but https://en.wikipedia.org/wiki/Excel_(software) routinely does not, because the closing parenthesis at the prose boundary looks identical to one inside the path. The same trap waits for URLs with query strings that contain parentheses, which are common in analytics dashboards and old CMS permalinks.

Third, blank cells, broken hyperlink references, and error values returned by HYPERLINK each act differently. IFERROR papers over the simple cases but cannot recover a UI hyperlink whose metadata is empty, and FIND returns #VALUE when the delimiter is missing because the formula has no quote characters at all. A bulk operation across thousands of rows usually needs a normalized output, not a single workaround per cell.

Fourth, exports and chat snippets mix URLs with prose in ways that no Excel formula was designed to handle. A column copied from an email body can contain "see https://example.com/a, also https://example.com/b" as a single cell value, and the resulting MID only captures the first hit. Reaching the second URL inside that string requires a parser that knows where one URL ends and the next begins.

A Local Hybrid Workflow With the URL Extractor

Once the formula gives a working column of raw URLs, the next job is usually cleanup. Most people discover at this stage that two URLs in the same sheet can differ only in case (https://Example.com versus https://example.com) or only by a trailing slash on the root path, which silently doubles the apparent list. The URL Extractor solves that cleanup step because its parser runs every candidate through the browser URL constructor, lowercases the host, adds the protocol to www entries, normalizes a trailing slash on the root path, and deduplicates on the serialized result before writing the file.

The workflow stays local: copy the formula-extracted column as values, paste the resulting text into the URL Extractor input, and the tool reports how many unique entries survived. No upload happens because the script lives in the page, runs in the same browser tab, and creates a temporary Blob only when you click Download. The output lands as a UTF-8 text file with one URL per line, suitable for re-import as a CSV column, a script input, or a watchlist in another tool.

The hybrid pattern also covers the chunk-of-prose case. When a single cell value contains multiple URLs joined with commas, the separator rule inside the extractor treats commas as a boundary for extraction from ordinary prose, so each address lands on its own output line. Because commas and semicolons are always treated as candidate boundaries, an internal comma or semicolon inside a URL path still splits that address across output lines, so encode those characters before pasting or verify the original source afterward if they are meaningful inside the address.

How to Pull URLs From Pasted Excel Text With the URL Extractor

  1. Copy your Excel column. If the URLs sit inside HYPERLINK formulas, copy and then paste as values first so the extractor sees real text rather than a formula string.
  2. Paste the copied text into the URL Extractor input. The tool accepts plain text only; rich formatting such as bold or color does not affect detection.
  3. Run the extract action. The page scans for candidates, normalizes each through the browser URL constructor, and reports the unique count in the result panel.
  4. Inspect the preview list. Check whether the parser kept every URL you cared about and whether the normalized forms look the way you want.
  5. Click Download. The page creates a short-lived Blob URL, builds a UTF-8 text file with one URL per line, and revokes the Blob immediately afterwards.
  6. Save the file locally. Import it back into Excel as a new column, use it as a list of references, or feed it to whatever downstream tool needs the URLs.

The whole sequence stays inside the browser tab. Editing the source text clears the previous result automatically, so the same column can be reprocessed after refreshing the spreadsheet without restarting the tool.

Comparing Three Realistic Approaches

None of the three options below replaces the others. The formula paths live inside Excel, so they are the right tool when the goal is a live, editable column. The extractor lives in the browser, so it is the right tool when the goal is a portable, deduplicated, normalized list. Pairing them keeps each layer inside the environment where it works best, and the table below summarizes where each one earns its keep.

ApproachBest ForWhere It Struggles
=HYPERLINK(target, ...) referenceSheets built entirely with the HYPERLINK() functionUI-created hyperlinks and prose-containing cells are out of reach
MID + FIND on FORMULATEXTTidy HYPERLINK columns without quote or comma conflictsFragile on URLs containing quotes, commas, or parentheses inside the path
URL Extractor on pasted textBulk cleanup, normalization, and deduplication of mixed inputOnly http, https, and www candidates are returned; input is capped at 1,000,000 UTF-16 code units and 10,000 unique URLs

Recognizing the Limits of the URL Extractor

The declared detection scope is the tool's biggest surprise for first-time users. Bare domains such as example.com, mailto links, FTP addresses, file paths, and javascript references are intentionally outside scope. If a row reads only mailto:[email protected], the extractor leaves it out, and the same applies to legacy FTP-style hosts that some older export sheets still contain. Filtering or converting those rows before pasting keeps the result list predictable.

The hard limits are explicit and worth keeping in mind before launching a big job. The input accepts up to one million UTF-16 code units, and an over-limit paste is rejected rather than silently truncated. The unique-URL ceiling is 10,000, after which the extract action returns an error rather than a partial list. Malformed Unicode sequences are caught before scanning begins, so the browser URL parser and the UTF-8 download encoder never substitute replacement characters without warning. Editing the input clears the previous result so a stale preview cannot leak into a download.

Normalization changes the spelling in ways the formula path does not. As MDN's URL constructor reference documents, every host becomes lowercase; a missing root path gains a trailing slash; and any www candidate is rewritten so it begins with https. Two URLs that differ by query order, fragment, path case, credentials, or trailing path remain separate because the browser serializer still produces a different string for each. Tracking parameters survive intact because the extractor never guesses which query parameter is meaningful. Credentials embedded inside URLs stay visible, so avoid pasting private signed links, session tokens, or internal hostnames unless the device and the destination are trusted.

The extractor never visits the URLs it returns, never checks reachability, and never flags malicious content. A syntactically valid URL can still resolve to a phishing page or an offline server, so the output still needs the same caution as any other list of addresses produced elsewhere.

Related reading: How to Remove Whitespace in Excel Cells the Safe Way.