「スプレッドシートのセルに画像を直接表示したい」と思ったことはありませんか。
商品リストや社員名簿を作っていると、名前やコードだけではピンとこない場面がありますよね。
セルの中に画像を表示できれば、一覧表がぐっと見やすくなります。そんなときに便利なのがIMAGE関数です。
この記事では、スプレッドシートのIMAGE関数の基本から実務で使える活用パターンまでまとめて紹介します。
IMAGE関数とは?
IMAGE関数(読み方: いめーじ)は、セルの中に画像を表示する関数です。
名前は英語の「IMAGE(画像)」がそのまま関数名になっています。
画像のURLを指定するだけで、セル内に画像が表示されます。通常の「画像を挿入」機能と違い、セルに紐づくのが特徴です。行や列を並べ替えても画像が一緒に動きます。
IMAGE関数にできることをまとめると、次のとおりです。
- 画像URLを指定してセル内に画像を表示する
- 4つの表示モードで画像のサイズ調整ができる
- 行の並べ替えやフィルタで画像もセルと一緒に動く
- 数式なので他のセルの値と連動して画像を切り替えられる
NOTE
IMAGE関数はGoogleスプレッドシート独自の関数です。Excelには同名のIMAGE関数がありますが、仕様が異なります。違いは後半の「Excelとの違い」セクションで解説しています。
IMAGE関数の書き方(構文と引数)
基本構文
=IMAGE(URL, [モード], [高さ], [幅])
カッコの中に画像のURLを指定します。モード・高さ・幅は省略可能です。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| URL | 必須 | 表示したい画像のURL(https://で始まる公開画像) |
| モード | 任意 | 画像の表示方法を指定する数値(1〜4)。省略時は1 |
| 高さ | 任意 | モード4のとき、画像の高さをピクセルで指定 |
| 幅 | 任意 | モード4のとき、画像の幅をピクセルで指定 |
URLは二重引用符(")で囲むか、URLが入ったセルを参照します。
TIP
URLはHTTPSの公開画像に対応しています。JPG・PNG・GIF・SVG・WebP形式が使えます。認証が必要な画像(社内システムのURL等)は表示できません。
IMAGE関数の基本的な使い方 ── 4つのモードの違い
IMAGE関数には4つの表示モードがあります。画像のサイズ調整方法がそれぞれ異なります。
モード一覧
| モード | 動作 | 特徴 |
|---|---|---|
| 1(デフォルト) | アスペクト比を維持してセルに収める | 画像が崩れない。余白ができることがある |
| 2 | アスペクト比を無視してセルに合わせる | セル全体に画像が広がるが、画像が歪むことがある |
| 3 | 元のサイズのまま表示 | セルからはみ出す部分は切れる |
| 4 | カスタムサイズで表示 | 高さ・幅をピクセル指定。細かく調整したいときに使う |
モード1: セルに収める(デフォルト)
=IMAGE("https://example.com/photo.png")
モードを省略するとモード1で動作します。アスペクト比(縦横比)を維持したまま、セルの中に画像を収めます。
画像が崩れる心配がないので、まずはこのモードで試してみてください。
モード2: セル全体に引き伸ばす
=IMAGE("https://example.com/photo.png", 2)
セルの大きさに合わせて画像を引き伸ばします。縦横比は無視されるため、セルの形が画像と大きく異なると歪んで見えます。
正方形の画像を正方形のセルに表示するなど、比率が揃っている場合に向いています。
モード3: 元のサイズのまま表示
=IMAGE("https://example.com/photo.png", 3)
画像を元のピクセルサイズそのままで表示します。セルより画像が大きい場合は、はみ出した部分が切れて見えなくなります。
アイコンやロゴなど、元のサイズがそのまま適切な場合に使いましょう。
モード4: カスタムサイズ
=IMAGE("https://example.com/photo.png", 4, 100, 150)
高さと幅をピクセル単位で指定します。この例では高さ100px、幅150pxで表示されます。
一覧表の画像サイズを統一したいときに便利です。
TIP
モード4で高さ・幅を省略すると
#VALUE!エラーになります。モード4を使う場合は高さ・幅の両方を必ず指定してください。
IMAGE関数の実践的な使い方・応用例
商品カタログを作る
商品リストに画像を並べれば、ビジュアルで確認できるカタログになります。
A列に商品名、B列に画像URL、C列にIMAGE関数を入れるのが基本パターンです。
=IMAGE(B2, 1)
B2に画像URLが入っていれば、C2に画像が表示されます。行の高さを100ピクセル程度に広げると見やすくなりますよ。
社員写真付き名簿を作る
社員の顔写真をセルに表示すれば、名前と顔が一致しやすい名簿が作れます。
=IMAGE(C2, 4, 80, 80)
モード4で80x80pxに統一すると、全員の写真サイズが揃って見やすくなります。
Googleドライブに保存した写真を使う場合は、共有設定を「リンクを知っている全員が閲覧可」にしたうえで、以下の形式のURLを使います。
https://drive.google.com/uc?id=ファイルID
ファイルIDは共有リンクの /d/ と /view の間にある長い文字列です。
セルの値に応じて画像を切り替える
IF関数と組み合わせれば、条件に応じて表示する画像を切り替えられます。
=IMAGE(IF(B2="合格","https://example.com/ok.png","https://example.com/ng.png"))
B2が「合格」なら合格アイコン、それ以外なら不合格アイコンを表示します。ステータス表示に活用できますよ。
QRコードを表示する
Google Charts APIを使えば、セル内にQRコードを表示できます。
=IMAGE("https://chart.googleapis.com/chart?chs=200x200&cht=qr&chl="&ENCODEURL(A2))
A2にURLやテキストを入れると、その内容のQRコードが自動生成されます。イベントの受付リストや資料の配布リンク管理に便利です。
NOTE
Google Charts APIは今後廃止される可能性があります。業務で本格的に使う場合はQR生成サービスのURLに置き換えることも検討してください。
よくあるエラーと対処法
IMAGE関数で「画像が表示されない」ケースをまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! エラーが出る | モード4で高さ・幅を指定していない | モード4を使う場合は高さ・幅の両方を指定する |
| #VALUE! エラーが出る | URLが空または無効な形式 | URLがhttps://で始まる正しい形式か確認する |
| 画像が表示されず空白になる | 画像URLにアクセスできない | URLをブラウザで直接開いて画像が表示されるか確認する |
| 画像が表示されず空白になる | 画像の公開設定がされていない | Googleドライブの共有設定を「リンクを知っている全員」に変更する |
| 画像が小さすぎる | モード1でセルが小さい | 行の高さ・列の幅を広げるか、モード4でサイズ指定する |
| 画像が歪む | モード2で縦横比が異なる | モード1に変更するか、セルの縦横比を画像に合わせる |
| 読み込みが遅い | 画像ファイルのサイズが大きい | 画像を事前に圧縮するか、サムネイルURLを使う |
Excelとの違い
IMAGE関数はGoogleスプレッドシートとExcelで大きな違いがあります。
| 項目 | Googleスプレッドシート | Excel(Microsoft 365) |
|---|---|---|
| 対応状況 | 全バージョンで使用可 | Microsoft 365のみ(2024年追加) |
| 構文 | =IMAGE(URL, モード, 高さ, 幅) | =IMAGE(ソース, 代替テキスト, サイズ, 高さ, 幅) |
| モード指定 | 数値(1〜4) | 数値(0〜3)、意味も異なる |
| ローカルファイル | 非対応(URLのみ) | セル内の画像やBLOB参照に対応 |
| SVG対応 | 対応 | 対応 |
Excel版のIMAGE関数は引数の構成が異なり、互換性がありません。ExcelとGoogleスプレッドシートでファイルを共有する場合は注意してください。
GoogleスプレッドシートのHYPERLINK関数と組み合わせれば、画像にリンクを設定することも可能です。
まとめ
IMAGE関数は、セルの中に画像を表示するGoogleスプレッドシート独自の関数です。
ポイントを整理します。
- 構文は
=IMAGE(URL, モード, 高さ, 幅)で、必須引数はURLだけ - 4つの表示モードで画像サイズを細かく調整できる
- モード1(デフォルト)はアスペクト比を維持してセルに収める
- モード4ではピクセル単位で高さ・幅を指定できる
- 商品カタログ・社員名簿・QRコード表示など実務での活用範囲が広い
- Googleドライブの画像も共有設定すればURLで表示できる
- Excel版のIMAGE関数とは引数の構成が異なるので互換性に注意
まずは =IMAGE("画像のURL") で好きな画像をセルに表示するところから試してみてください。
