There is no QR function in Excel
Start here, because it saves an hour of searching. Excel — desktop, Microsoft 365, or web — ships no QR code formula, no Insert menu entry, and no built-in barcode object. The =QRCODE() you may have seen in a forum post does not exist in any version.
What Excel does have is the thing that matters: your data, in a column, already structured. Codes are easy. Getting a thousand rows of URLs into a thousand correctly named files is the actual job, and that is the one worth solving properly.
The four approaches, ranked by how well they hold up
| Approach | Works in | Survives sharing | Bulk-friendly |
|---|---|---|---|
| Bulk generate outside Excel | Any version | Yes — real image files | Yes |
| Office add-in | Excel 2016+ / 365 | Only if the recipient installs it | Varies |
| VBA macro | Windows desktop only | No — macros get blocked | Yes |
| IMAGE formula | Google Sheets only | Yes, but the image is remote | Yes |
1. Generate outside Excel, from the column (the one to use)
Copy the column of URLs, paste it into a bulk QR code generator, and download a ZIP of images named after your own data. No add-in for anyone to install, no macro to be blocked, and the files are real PNG or SVG you can drop into a mail merge, a label sheet or InDesign.
This is the approach that survives contact with a colleague's machine, which none of the others reliably do.
2. An Office add-in
Insert > Get Add-ins, search for a QR generator, and you get a task pane that writes a code into the sheet. Fine for a handful of codes on your own machine. The problem appears when you send the file: the codes are add-in objects, so anyone without that add-in sees blanks or broken placeholders. Check what the add-in does with your data, too — a free add-in that sends every cell to an unnamed server is not free.
3. A VBA macro
The classic answer, and increasingly the wrong one. It is Windows desktop only — no Mac, no Excel on the web, no mobile. Modern Office blocks macros from files that came from the internet or email by default, so a macro-driven workbook usually arrives dead. And it needs a code-generation library anyway, which is a dependency you now maintain.
Use it only when the workbook stays on one controlled machine.
4. The IMAGE formula — Google Sheets only
In Google Sheets, =IMAGE("https://…" & A2) renders an image from a URL and updates when A2 changes, which is genuinely useful for a live-updating sheet.
Two warnings. First, Excel's own IMAGE() function exists in Microsoft 365 but is restricted, and the old Google Charts endpoint most tutorials still reference was deprecated years ago — that is why so many copy-pasted formulas now render a blank box. Second, a formula-rendered code is not a file. It lives as a remote fetch, so it disappears offline, cannot be exported at print resolution, and breaks when the sheet is shared with someone who cannot reach the endpoint.
For anything going to print, export real files instead.
Getting a column of data into codes
The usual spreadsheet job is not one code, it is a few hundred: product SKUs, staff badges, table numbers, asset tags, event tickets. The pattern that works:
- Build the full URL in a helper column.
="https://example.com/p/" & A2beats hand-typing. Copy down. - Add a filename column. Whatever should name each file — SKU, room number, employee ID. This is what turns a ZIP of
qr_001.pnginto something usable. - Paste both columns into the bulk generator, choose PNG for screens or SVG for print, and download.
- Reunite files with rows using the filename column, in a mail merge or a label template.
If those codes go on anything printed that might change later — a price list, a menu, an asset tag pointing at a moving system — generate them as dynamic codes so the destination can move without reprinting a single label.
What breaks, and why
Codes vanish when the file is shared. Add-in objects, not images. Export real image files instead.
A formula shows a blank box. The endpoint it calls is dead — most tutorials still cite the retired Google Charts API.
Codes stretch out of square. Excel row-height and column-width changes scale an in-cell image non-uniformly, which destroys the finder patterns. Lock the aspect ratio in Format Picture, or place codes outside the grid.
Printed codes will not scan. Excel's print scaling shrinks everything to fit the page. A code that is 2 cm on screen can land at 8 mm on paper — below the practical floor. Set print scaling to 100% and check the size guide.
The macro does nothing. It is blocked, or you are on Mac or the web. Nothing you can fix inside the file.
How to make QR codes from an Excel column in 4 steps
Build the full link in a helper column
Concatenate your base URL with the data column, for example ="https://example.com/p/" & A2, and copy it down the whole range so every row holds a complete link.
Add a column for the file names
Put whatever should name each file — SKU, badge number, table number — in its own column. This is what makes the downloaded files matchable back to your rows.
Paste both columns into the bulk generator
Copy the link column and the name column and paste them in. Every code comes out dynamic, so a destination that moves later is an edit rather than a new print run.
Download and place the files
Take PNG for screens or SVG for print, then merge the images back into labels or a document using the file-name column. Print one proof at 100% scaling and scan it before running the batch.
Frequently asked
Is there a QR code formula in Excel?
No. There is no =QRCODE() function in any version of Excel — desktop, Microsoft 365 or web — and no QR entry in the Insert menu. The formulas circulating in forum posts either belong to Google Sheets or call an image endpoint that has since been retired.
How do I create QR codes from a column of data?
Build the complete URL in a helper column, add a second column holding the name each file should take, then paste both into a bulk generator and download the images as a ZIP. That keeps the codes matchable to your rows and needs nothing installed on anyone else's machine.
Why does my QR code disappear when I send the file to someone?
Because it was inserted by an add-in rather than saved as an image. The object only renders where that add-in is installed. Generate the codes as real PNG or SVG files and insert those, and the workbook survives being emailed.
Does the IMAGE formula work for QR codes in Excel?
Not reliably. Google Sheets renders remote images with =IMAGE(), and that genuinely works for a live sheet. Excel's own IMAGE function is more restricted, and the Google Charts endpoint most tutorials still reference was deprecated, which is why those formulas now show an empty box.
Should I use a VBA macro to generate QR codes?
Only if the workbook never leaves one Windows machine. VBA does not run on Mac, on Excel for the web or on mobile, and modern Office blocks macros in files that arrived by email or download, so a macro workbook usually reaches its recipient inert.
My codes print too small to scan. What do I change?
Excel's fit-to-page print scaling is shrinking them. Set scaling to 100%, then confirm the printed square is at least about 2 cm for close scanning and larger for distance. Also lock the image aspect ratio, because resizing a row or column can stretch a code out of square and break it.
Need a different QR type? Browse all 48 QR types on the home page.
