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

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:

  1. Select the cell in which you want to insert the image
  2. Click the Insert option in the menuClick the Insert tab in Google Sheets menu
  3. Hover the cursor over the Image option
  4. Click on Image in cellClick Image in Cell option in Google Sheets Insert menu
  5. 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.Insert Image dialog box in Google Sheets showing URL option selected
  6. Enter the image URLEntering an image URL in the Google Sheets Insert Image dialog box
  7. Click SelectClicking the Select button to confirm image insertion in Google Sheets

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:

  1. Click Insert, then Drawing. Selecting Drawing from the Insert menu in Google Sheets
  2. Click the image icon in the Drawing editor toolbar โ€” an Insert image window will appear.Clicking the image icon in the Google Sheets Drawing editor
  3. Select how you want to add the image โ€” upload a file, drag and drop, use a URL, or choose from Google Drive. Image upload options in the Google Sheets Drawing editor
  4. In this example we used By URL. Enter your image URL and click Select. Adding an image by URL in the Google Sheets Drawing editor
  5. Once uploaded, you can edit the image or add text boxes and shapes. Editing an image with shapes and text in the Google Sheets Drawing editor
  6. 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.

Successfully inserted drawing image floating above cells in Google Sheets

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.

IMAGE formula mode 1 result fitting image to cell in Google Sheets

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.

IMAGE formula mode 2 stretching image to fill cell in Google Sheets

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.

IMAGE formula mode 3 displaying image at original size in Google Sheets

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)

IMAGE formula mode 4 with custom height and width in pixels in Google Sheets

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:

  1. 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.
  2. 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.

Dynamic image lookup in Google Sheets using VLOOKUP and IMAGE formula

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:

  1. 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). Company names and image URL reference table in Google Sheets
  2. Create a drop-down list in your working sheet using the company names as the source data.Drop-down list showing company names in Google Sheets
  3. 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.IMAGE and VLOOKUP formula combined for dynamic image lookup in Google Sheets

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.

  1. In your Google Sheet, go to Extensions โ†’ Apps Script. Opening Apps Script from the Extensions menu in Google Sheets
  2. A new Apps Script editor window will open with a default code.gs file. Clear any existing code. Google Apps Script editor open with empty code.gs file
  3. 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);
    }
  4. Click Save, then click Run. If prompted, grant the necessary permissions.
  5. 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: