Google Sheets doesn’t have an obvious button for inserting images into cells, and Ctrl+V won’t work the way you’d expect. This guide covers every method available, from the built-in Insert menu to the IMAGE formula, dynamic picture lookup, and Apps Script automation. By the end, you’ll know exactly which method fits your situation.
Which Method Should I Use?
| Method | Best For | Image Stays In Cell? |
|---|---|---|
| Insert menu | Quickest one-off insertion | Yes |
| IMAGE formula | Dynamic or bulk images from URLs | Yes |
| VLOOKUP + IMAGE | Dropdown-driven image lookup | Yes |
| Drawing | Annotating or combining images | No (over cell) |
| Apps Script | Automating at scale | Yes |
Table of Contents
Insert an Image Using the Google Sheets Image in Cell Option
As promised, I have a full video on inserting images into Google Sheets. It gives a thorough walkthrough of the process.
The easiest method is the built-in Image in Cell option, found directly in the Insert menu. This places the image inside the cell โ it moves, resizes, hides, and filters with the cell, just like any other cell content.
Follow these steps to insert an image in a cell in Google Sheets:
- Select the cell in which you want to insert the image
- Click the Insert option in the menu
- Hover the cursor over the Image option
- Click on Image in cell
- In the Insert Image dialog box, select how you want to add the image โ you can upload a file, take a snapshot, use a URL, use Google Drive or Albums, or search for an image. In this example we’ll use a URL.
- Enter the image URL
- Click Select
The image will now appear inside the selected cell. It moves and sizes with the cell โ if you hide or filter the row, the image follows.
Note on “Image over cells”: The Insert menu also offers an Image over cells option. This places the image as a floating object above the spreadsheet, not anchored to any cell. It won’t move or resize with rows and columns. Use this only if you need the image to stay in a fixed position regardless of how the sheet changes.
Insert Google Sheets Image Using Drawing
The Drawing method lets you insert and annotate images, but it always places the result over the cells โ not inside them. Use this method if you need to combine multiple images, add shapes or arrows, or overlay a text box on an image. If you need the image inside a cell, use one of the other methods.
Here’s how to insert an image using the Drawing option:
- Click Insert, then Drawing.
- Click the image icon in the Drawing editor toolbar โ an Insert image window will appear.
- Select how you want to add the image โ upload a file, drag and drop, use a URL, or choose from Google Drive.
- In this example we used By URL. Enter your image URL and click Select.
- Once uploaded, you can edit the image or add text boxes and shapes.
- When finished, click Save and close.
The image will appear above the cells as a floating object. You can resize and reposition it freely. Any text boxes or shapes added in the Drawing editor become part of the image โ double-click the image to edit them later.

Advantages of Using Drawing
The Drawing method gives you editing options the other methods don’t:
- Add a border and change its shape and size
- Overlay shapes like arrows, circles, or lines
- Combine multiple images into one
How to Add an Image to Google Sheets Using the IMAGE Formula
The IMAGE formula lets you insert an image into a cell directly from a URL. It’s the most flexible method โ you can control the image size, use cell references as dynamic inputs, and apply it across hundreds of rows at once.
Syntax:
IMAGE(URL, [mode], [height], [width])
- URL: The publicly accessible HTTPS link to the image. Wrap it in double quotes if entering as text, or reference a cell containing the URL. Note: HTTP links will return an error โ the URL must use HTTPS.
- [mode]: Controls how the image fits in the cell. Defaults to 1 if omitted.
- 1 โ Resizes the image to fit the cell while maintaining aspect ratio
- 2 โ Stretches the image to fill the cell (aspect ratio not maintained)
- 3 โ Displays the image at its original size (may crop if cell is too small)
- 4 โ Displays the image at a custom height and width you specify in pixels
- [height]: Required when mode is 4. Sets the image height in pixels.
- [width]: Required when mode is 4. Sets the image width in pixels.
The examples below use a sample public image URL to demonstrate each mode.
Mode 1 โ Image Resizes to Fit the Cell
Syntax: =IMAGE(URL, 1)
The image scales to fit inside the cell while keeping its original proportions. If you resize the cell, the image resizes with it. This is the default behavior when no mode is specified.
Mode 2 โ Image Stretches to Fill the Cell
Syntax: =IMAGE(URL, 2)
The image stretches in both height and width to completely fill the cell. Aspect ratio is not maintained, so the image may appear distorted.
Mode 3 โ Image Displayed at Original Size
Syntax: =IMAGE(URL, 3)
The image appears at its original pixel dimensions. If the cell is smaller than the image, the image will be cropped. If the cell is larger, empty white space will appear around the image.
Mode 4 โ Custom Height and Width
Syntax: =IMAGE(URL, 4, height, width)
Specify exact pixel dimensions for the image. For example, the formula below inserts an image at 50ร50 pixels:
=IMAGE("https://example.com/image.png", 4, 50, 50)
You can apply this across multiple cells using a repeat formula. We have a tutorial on 6 ways to use the repeat formula in Google Sheets.
Troubleshooting the IMAGE Formula
If your IMAGE formula is returning an error, here are the most common causes:
- HTTP instead of HTTPS: The IMAGE formula requires a secure HTTPS URL. If your image link starts with HTTP, it will return an error. Find an HTTPS version of the image or host it somewhere that supports HTTPS.
- Private or restricted image: If the image is behind a login, stored in a private Google Drive folder, or on a server that blocks external requests, Google Sheets can’t access it. The image must be publicly accessible.
- Broken URL: Paste the URL directly into your browser first to confirm it loads the image. If it doesn’t load in the browser, it won’t work in the formula either.
- Image host blocking Google: Some image hosts block automated requests. Try re-hosting the image on Google Drive (shared publicly) or another reliable host like Imgur.
Benefits of Using the IMAGE Function
There are two key advantages of the IMAGE formula over the Insert menu method:
- More control over sizing. You can choose from four modes to decide whether the image fits, stretches, stays at original size, or uses exact pixel dimensions.
- Dynamic updates. The IMAGE formula can reference a cell containing the URL. Change the URL in that cell and the image updates automatically. This also makes it easy to apply the formula across a column of image URLs all at once.
How to Insert Image in Google Sheets With Dynamic Image Lookup
Because the IMAGE formula updates when the URL changes, you can combine it with the VLOOKUP function to build a dynamic picture lookup โ where selecting a value from a dropdown automatically displays the corresponding image.
In the example above, selecting a company name from the dropdown automatically updates the logo in the adjacent cell. Here’s how to set it up:
- Set up a reference table with company names in one column and image URLs in the adjacent column. This can be on the same sheet or a separate sheet (in this example, a sheet named Image Links).
- Create a drop-down list in your working sheet using the company names as the source data.
- In the adjacent cell, enter this formula to fetch the image URL from the reference table and display the corresponding image:
=IMAGE(VLOOKUP(A1,'Image Links'!$A$2:$B$6,2,0))When you change the dropdown selection, the VLOOKUP fetches the new URL and the IMAGE formula updates the displayed image automatically.
This is especially useful when creating a Google Sheets dashboard where you want visuals to update based on user selections. If you’re working in a large sheet, you can also jump to a specific cell or range to navigate quickly while setting this up.
Related Reading: Save a Chart as an Image in Google Sheets
How to Insert Images into Cells Using Apps Script
This method is for users who want to automate image insertion at scale using Google Apps Script. As of 2024, Google natively supports inserting images into cells via Apps Script using the SpreadsheetApp.newCellImage() method โ no third-party API required.
- In your Google Sheet, go to Extensions โ Apps Script.
- A new Apps Script editor window will open with a default
code.gsfile. Clear any existing code. - Paste in the following function. This script reads an image URL from cell A1 and inserts the image into cell B1:
function insertCellImage() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var imageUrl = sheet.getRange("A1").getValue(); var image = SpreadsheetApp.newCellImage().setSourceUrl(imageUrl).build(); sheet.getRange("B1").setValue(image); } - Click Save, then click Run. If prompted, grant the necessary permissions.
- Go back to your sheet. Enter your image URL in cell A1, then run the script again from Extensions โ Apps Script โ Run, or trigger it from a custom menu.
Your image will appear in cell B1. To insert images into multiple cells, loop through a range of URL values and call newCellImage() for each row.
Note: The image URL must be publicly accessible and use HTTPS, same as the IMAGE formula.
Frequently Asked Questions
How do I insert an image into a specific cell in Google Sheets?
Select the cell, go to Insert โ Image โ Image in cell. You can upload a file, paste a URL, or choose from Google Drive. The image will be anchored to that cell and will move and resize with it.
Why isn’t my IMAGE formula working?
The most common causes are: the URL uses HTTP instead of HTTPS, the image is hosted on a private or restricted server, or the URL is broken. Paste the URL directly into your browser to confirm it loads. The formula requires a publicly accessible HTTPS image link.
Can I paste an image into a cell in Google Sheets?
Not with Ctrl+V. Pasting with Ctrl+V places the image over the cells as a floating object, not inside a cell. To insert an image into a cell, use Insert โ Image โ Image in cell instead.
How do I delete an image from a cell in Google Sheets?
Click the cell containing the image and press the Delete key. If the image was inserted with the IMAGE formula, clear the cell contents as you would any formula.
What is the difference between “image in cell” and “image over cells”?
An image in a cell is anchored to that cell โ it moves, resizes, hides, and filters with the cell. An image over cells floats above the spreadsheet as an independent object and does not follow cell behavior.
Can I insert an image in a cell on the Google Sheets mobile app?
The mobile app has limited support. The IMAGE formula will display correctly if already set up on desktop, but inserting new images into cells via the Insert menu is only fully supported on desktop.
How do I lock an image in a cell so it can’t be moved or edited?
Right-click the cell and select Protect range. Set the permissions to restrict editing, which will prevent others from changing or deleting the image.
Can I have both an image and text in the same cell?
No. Once an image is placed in a cell using the Insert menu or IMAGE formula, text cannot be added to that same cell. Use an adjacent cell for labels, or use the Drawing method to overlay a text box on an image. See our guide on how to insert a text box in Google Sheets for more options.
Can you put an image behind cells in Google Sheets?
No. Google Sheets only supports two image placement options: inside a cell or floating over cells. There is no option to place an image behind cells.
The Bottom Line
Whichever method you use, you should now be able to insert images into Google Sheets cells with confidence. The Insert menu is the fastest for one-off insertions, the IMAGE formula is best for dynamic or bulk use, and Apps Script handles automation at scale. If you found this tutorial helpful, please share it with your team or explore the related tutorials below.
Other relevant Google Sheets tutorials:












