スプレッドシートのIMAGE関数でセル内に画像を挿入する方法!

こんにちは、データサイエンティストのたぬ(@tanuhack)です!

スプレッドシートを使っているとどうしても数字や表の羅列になってしまい、それが複雑になればなるほど、パッと見で伝わりにくいシートが完成してしまいますよね。

そこで今回は、スプレッドシートのIMAGE関数を使って、セル内に画像を表示させる方法を紹介します!

画像が人間に与える情報量は、テキストのそれより遥かに多いので無下にできません。

スプレッドシートをより見やすく・より伝わりやすいものにするために、IMAGE関数を是非習得してみてください!

IMAGE関数の使い方

IMAGE関数の構文
=IMAGE(URL, [モード], [高さ], [幅])
第2引数モードごとの挙動
モード 説明
=IMAGE("URL")または、=IMAGE("URL", 1) アスペクト比を保ったまま、セルの大きさに合わせて画像のサイズが調整される(デフォルト)
=IMAGE("URL", 2) アスペクト比を無視して、セルの大きさに合わせて画像のサイズが調整される
=IMAGE("URL", 3) 元の画像サイズのまま挿入され、セルの横幅や高さが足りない場合、トリミングされる
=IMAGE("URL", 4, 高さ, 幅) 画像のサイズをピクセル数で指定する(セルの横幅や高さが足りない場合、トリミングされる)

各モードの使い分け

例として、Googleのロゴをスプレッドシートに表示してみましょう。

image1

画像のURL
https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png

image1-1

実際のスプレッドシートで確認する

ちなみに私は、デフォルトのモード1を多用しています。

理由は、セルのサイズに関係なく、アスペクト比をちゃんと保ったままセル内に画像をちゃんと表示してくれるからです。

image1-2

ちなみにテキストの整列も使えます(下のGIF動画を参考)

image1-3

モード2はアスペクト比がグチャグチャになるので、自分的には論外。モード3は元画像が小さかったらOK。モード4はいちいち揃えるのが面倒なんですよね。

まあ、実際どのモードを使うかは、人それぞれ・ケースバイケースだと思うので、好きに使ってください。

IMAGE関数の注意点

注意点1:IMAGE関数は、公開されている画像URLしか表示できない

  • スプレッドシートにアップロードした画像
  • ログインが必要なWEBサービスへアップロードした画像

これらはIMAGE関数で表示できません。

自分でサーバーを持っている人は、サーバー内に画像を保存してそこのURLを直接入力すれば良いです。

ですが、サーバーを持っている人は限られていると思うので、Googleドライブの画像を表示させる方法(※後述)をおすすめします。

注意点2:外部から参照されると困る画像は表示しない

インターネット上(スプレッドシート)で画像を扱うということは、当然、著作権やプライバシーを考えなければいけません。

個人のプライバシーに関わる画像や著作権に触れる可能性のある画像は、IMAGE関数で表示させない方が無難です。自分の身は自分で守りましょう。

Googleドライブの画像を表示する方法

IMAGE関数でGoogleドライブに保存している画像を表示させるには、ちょっとしたテクニックが必要です。

例として、ドライブにある『tanu.gif』という画像をIMAGE関数で表示させるとします。

image2-1
[右クリック]→[共有可能なリンクを取得]

すると、『https://drive.google.com/open?id=18_qXBm8Xmm72AujK1vdYhzqrZQ9LRIal』という共有リンクを取得できました。

さっそくIMAGE関数で表示させてみましょう。

image2-2
B2セルに数式を入力しているが、表示されていない

それもそのはず。このURLは『画像のプレビュー用』であり、このままではセル内表示に使えません。

次のように画像URLのopen?id=部分をuc?export=download&id=に変更してください。

// Before
=IMAGE("https://drive.google.com/open?id=18_qXBm8Xmm72AujK1vdYhzqrZQ9LRIal")

// After
=IMAGE("https://drive.google.com/uc?export=download&id=18_qXBm8Xmm72AujK1vdYhzqrZQ9LRIal")

image2-3

ちゃんと表示されていますね!

IMAGE関数にハイパーリンクを適用する

これはHYPERLINK関数を使えばOKです。

HYPERLINK関数の構文
=HYPERLINK(URL, [リンクラベル])
=HYPERLINK("遷移させたいURL",IMAGE("画像URL"))

例として、自分のホームページに遷移させる数式を作ってみました。

image3
=HYPERLINK("https://tanuhack.com/",IMAGE("https://drive.google.com/uc?export=download&id=18_qXBm8Xmm72AujK1vdYhzqrZQ9LRIal"))

さいごに

今回はIMAGE関数を使って、スプレッドシートのセルに画像を挿入させる方法を紹介しました。

わかりやすい&見やすいシート作りを心がけ、データアレルギーの人が数字を見てアイディアを広げられるように努めましょう!

それでは(^^)

スプレッドシートのSPARKLINE関数でセル内にミニグラフを作成する方法