「月ごとの売上推移、ぱっと見でわかるようにしたい」と思ったことはありませんか。
グラフを作ると大きなスペースを取りますし、データ行ごとに小さなグラフを並べるのも手間がかかります。
そんなときに便利なのがSPARKLINE関数です。セルの中にミニグラフを表示でき、一覧表のまま推移や比率をひと目で把握できます。
この記事では、GoogleスプレッドシートのSPARKLINE関数の基本から実務応用までを紹介します。KPIダッシュボード・進捗バー・在庫アラートの実例や、よくあるエラーの対処法も丁寧に解説します。
スプレッドシートのSPARKLINE関数とは?
SPARKLINE関数(読み方: すぱーくらいん)は、セルの中にミニグラフを表示する関数です。
関数名は英語の「sparkline(小さな線グラフ)」に由来します。アメリカの統計学者エドワード・タフテ氏が提唱した「文脈の中に置く小さな視覚化」というコンセプトを関数化したものです。データの傾向を「パッと」伝えるのが目的です。
折れ線・横棒・縦棒・正負の4種類のグラフを描けます。通常のグラフのように別の場所に挿入する必要がなく、表の中にそのまま収まるのが特徴です。
SPARKLINE関数でできることをまとめると、次のとおりです。
- セル内に折れ線グラフで推移を表示する
- 横棒グラフで進捗バーや達成率を可視化する
- 縦棒グラフで月次の数値を比較する
- 正負グラフで勝敗や増減をひと目で確認する
NOTE
SPARKLINE関数はGoogleスプレッドシート専用の関数です。Excelには同名の関数がありません(Excelには「スパークライン」というリボン機能がありますが、関数として数式に組み込むことはできません)。Googleスプレッドシートではブラウザ版・モバイルアプリ版とも利用できます。
SPARKLINEを使うとどう変わるか
普通の表とSPARKLINEを組み合わせた表を比べると、情報量の差は明らかです。
| KPI | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 |
|---|---|---|---|---|---|---|
| 売上(千円) | 100 | 120 | 110 | 140 | 130 | 160 |
これだけだと「6月が一番多い」くらいしか分かりませんが、右端にSPARKLINEを追加すると次のようになります。
| KPI | 1月 | 2月 | 3月 | 4月 | 5月 | 6月 | 推移 |
|---|---|---|---|---|---|---|---|
| 売上(千円) | 100 | 120 | 110 | 140 | 130 | 160 | (折れ線↗) |
折れ線が右肩上がりなのが視覚で分かり、数値とトレンドを同時に把握できるようになります。
SPARKLINE関数の書き方(構文と引数)
基本構文
=SPARKLINE(データ, [オプション])
第1引数にグラフに使うデータ、第2引数でグラフの種類や色をカスタマイズします。第2引数は省略可能です。
第1引数:データ(表示するデータ範囲)
グラフに使う数値が入ったセル範囲を指定します。
=SPARKLINE(B2:M2)
上の例では、B2からM2までの12か月分のデータを折れ線グラフにします。配列を直接書くこともできます。
=SPARKLINE({1,3,2,5,4})
第2引数:オプション(グラフ種類・色・線幅など)
オプションは {"キー","値"} の形式で指定します。複数のオプションはセミコロン(;)で区切ります。
=SPARKLINE(B2:M2, {"charttype","column"; "color","#4CAF50"})
この例では縦棒グラフを緑色で表示します。オプションを省略すると、デフォルトの折れ線グラフになります。
主なオプションキーは次のとおりです(詳細は後述の「オプション完全リファレンス」で解説します)。
| オプション | 説明 | 対象タイプ |
|---|---|---|
| charttype | グラフの種類(line / bar / column / winloss) | 全タイプ |
| color | 線や棒の色 | line, column, winloss |
| linewidth | 線の太さ | line |
| highcolor | 最大値の色 | column, winloss |
| lowcolor | 最小値の色 | column, winloss |
| negcolor | 負の値の色 | column, winloss |
| max | 棒の最大値 | bar |
| color1, color2 | 棒の色(最大9色まで) | bar |
| axis | ゼロ軸線の表示(true/false) | column, winloss |
TIP
色の指定には色名(
"red""blue"など)やHEXコード("#FF5722"など)が使えます。デザインを揃えたいときはHEXコードのほうが管理しやすいです。
SPARKLINE関数の基本的な使い方 — 4種類のグラフ
SPARKLINE関数で使えるグラフは4種類です。それぞれ用途と書き方を見ていきましょう。
折れ線グラフ(line)
もっとも基本的なタイプです。charttypeを省略するとこの折れ線になります。
=SPARKLINE(B2:M2)
色と線の太さを変えたい場合はオプションを追加します。
=SPARKLINE(B2:M2, {"color","#2196F3"; "linewidth",2})
月次の売上推移やアクセス数のトレンドを一覧表の中で確認したいときに便利ですよ。
線種を強調したい場合は linewidth を 1〜3 の範囲で調整するのがおすすめです。3 を超えると小さなセル内では線がつぶれて読みにくくなります。
横棒グラフ(bar)
barタイプは横方向の積み上げ棒グラフを表示します。進捗バーや割合の表現に向いています。
=SPARKLINE(C2, {"charttype","bar"; "max",100; "color1","#4CAF50"; "color2","#E0E0E0"})
この例では、C2の値を100を最大値として進捗バーで表示します。color1が達成部分、color2が残り部分の色です。
複数のセルに同じ最大値を設定すると、バーの長さを揃えて行間で比較できます。
TIP
maxを指定しないと、データの合計値が最大値になります。行ごとに比較したい場合は必ずmaxを統一してください。たとえば達成率を比較する場合は
"max",100、金額を比較する場合は最大の見込み額を指定します。
縦棒グラフ(column)
columnタイプは縦棒グラフを表示します。月ごとの数値を並べて比較するのに使えます。
=SPARKLINE(B2:M2, {"charttype","column"; "color","#4CAF50"; "highcolor","#F44336"; "lowcolor","#2196F3"})
最大値は赤、最小値は青でハイライトされます。どの月が好調でどの月が低迷したか、ひと目で分かりますよね。
負の値がある場合は negcolor で色を変えられます。
=SPARKLINE(B2:M2, {"charttype","column"; "color","#4CAF50"; "negcolor","#FF9800"})
負の値を目立たせると、マイナス月をひと目で判断できますよ。
正負グラフ(winloss)
winlossタイプは、正の値と負の値を同じ高さの縦棒で表示します。値の大きさではなく「プラスかマイナスか」だけを見せるグラフです。
=SPARKLINE(B2:M2, {"charttype","winloss"; "color","#4CAF50"; "negcolor","#F44336"})
正の値は緑、負の値は赤で表示されます。勝敗管理や、前月比がプラスかマイナスかの確認に使えますよ。
axis オプションを true にすると、ゼロ位置に水平線が表示されて見やすくなります。
=SPARKLINE(B2:M2, {"charttype","winloss"; "color","#4CAF50"; "negcolor","#F44336"; "axis",true})
SPARKLINE関数の実践応用例
実務でよく使うパターンを4つ紹介します。
応用例1: KPIダッシュボードを1枚にまとめる
KPI一覧表に折れ線のSPARKLINEを並べると、コンパクトなダッシュボードが作れます。
たとえば、以下のような構成です。
| KPI名 | 1月 | 2月 | … | 12月 | 推移 |
|---|---|---|---|---|---|
| 売上(千円) | 100 | 120 | … | 150 | =SPARKLINE(B2:M2) |
| PV数 | 5000 | 5200 | … | 6800 | =SPARKLINE(B3:M3) |
| CVR(%) | 2.1 | 2.3 | … | 2.8 | =SPARKLINE(B4:M4) |
「推移」列に次の数式を入れます。
=SPARKLINE(B2:M2, {"color","#2196F3"; "linewidth",2})
数値の列とミニグラフが横並びになるので、詳細な数値とトレンドを同時に確認できます。
色を変えればKPIごとに色分けも可能です。月次報告資料の代わりにもなりますよ。
応用例2: 進捗バーで達成状況を見える化する
タスクの進捗率やKPIの達成率を、セル内の進捗バーで表現できます。
A列にタスク名、B列に達成率(0〜100の数値)が入っている場合の数式です。
=SPARKLINE(B2, {"charttype","bar"; "max",100; "color1","#4CAF50"; "color2","#E0E0E0"})
達成率が75なら、セルの75%が緑、残り25%がグレーで塗られます。
TIP
達成率が100%を超える可能性がある場合は、
"max",120のように余裕を持たせておくと見栄えが良くなります。100%を超えたバーは右端で切れてしまうので注意してください。
応用例3: 売上トップ商品の月次推移を一覧化する
商品マスタに月次売上がある場合、商品ごとの売上トレンドを一覧で把握できます。
SORT関数やQUERY関数で売上順に並び替えたうえで、SPARKLINEで推移を表示すると効果的です。
=SPARKLINE(B2:M2, {"charttype","column"; "color","#9E9E9E"; "highcolor","#F44336"})
トップ10商品それぞれの「ピーク月」が赤くハイライトされ、季節性のある商品とそうでない商品をひと目で判別できます。
応用例4: 在庫アラートとして正負グラフを使う
在庫の増減を追跡するシートでは、winlossタイプが活躍します。
「前日比=当日在庫-前日在庫」を計算した列を用意します。その列に対してSPARKLINEを当てると、在庫が増えた日(緑)と減った日(赤)を視覚化できます。
=SPARKLINE(B2:H2, {"charttype","winloss"; "color","#4CAF50"; "negcolor","#F44336"; "axis",true})
棚卸しのたびに「マイナス連続が続いている商品」を発見しやすくなります。発注タイミングの判断材料としても使えますよ。
他の関数と組み合わせる活用テクニック
SPARKLINEは単体でも便利ですが、他の関数と組み合わせるとさらに強力になります。
QUERY関数で集計してからSPARKLINEで可視化
QUERY関数で集計した結果に対して、SPARKLINEでトレンドを表示できます。
=SPARKLINE(QUERY(売上!A:M, "select B,C,D,E,F,G,H,I,J,K,L,M where A='商品X'", 0))
データが追加されても自動で集計し、グラフも更新されます。
FILTER関数で条件抽出した結果をミニグラフにする
FILTER関数で条件に合うデータだけ抽出してから、SPARKLINEでトレンドを描けます。
=SPARKLINE(FILTER(B2:B100, A2:A100="部署A"))
部署別・カテゴリ別のトレンドを切り替えながら表示するダッシュボードに向いています。
ARRAYFORMULAで一括適用する
ARRAYFORMULA関数とSPARKLINEは直接合体できません。ただし、行ごとに数式をコピーする手間を減らす工夫はできます。
推移列にSPARKLINEを1行入力します。その後、フィルハンドルでドラッグするか、Ctrl + D(Mac は Cmd + D)で一括コピーするのが定石です。
IMAGE関数と並べてビジュアル一覧を作る
IMAGE関数で商品画像を表示し、隣のセルにSPARKLINEで売上推移を出します。すると、画像とトレンドが並ぶカタログ風の一覧表が作れます。
| 商品画像 | 商品名 | 売上推移 |
|---|---|---|
| =IMAGE(“https://…”) | 商品A | =SPARKLINE(B2:M2) |
| =IMAGE(“https://…”) | 商品B | =SPARKLINE(B3:M3) |
社内のEC運用シートやマーケティング資料に向いています。
条件付き書式と組み合わせて行全体を色分け
条件付き書式で「売上が前月比マイナスの行を赤背景にする」設定をします。すると、SPARKLINEの折れ線と行の背景色が連動して、危険信号がさらに目立ちます。
SPARKLINE関数のオプション完全リファレンス
ここまでに登場したオプションを、グラフタイプ別に整理します。
折れ線グラフ(line)専用オプション
| オプション | 値 | 説明 |
|---|---|---|
| color | 色名 / HEX | 線の色 |
| linewidth | 1〜10 | 線の太さ(推奨: 1〜3) |
| xmin / xmax | 数値 | X軸の最小値・最大値 |
| ymin / ymax | 数値 | Y軸の最小値・最大値 |
横棒グラフ(bar)専用オプション
| オプション | 値 | 説明 |
|---|---|---|
| max | 数値 | バーの最大値 |
| color1 | 色名 / HEX | 1つ目の値の色 |
| color2 | 色名 / HEX | 2つ目の値の色 |
| empty | zero / ignore | 空セルの扱い |
| nan | convert / ignore | 数値でないデータの扱い |
縦棒グラフ(column)・正負グラフ(winloss)共通オプション
| オプション | 値 | 説明 |
|---|---|---|
| color | 色名 / HEX | 棒の色 |
| highcolor | 色名 / HEX | 最大値の色 |
| lowcolor | 色名 / HEX | 最小値の色 |
| firstcolor | 色名 / HEX | 最初の値の色 |
| lastcolor | 色名 / HEX | 最後の値の色 |
| negcolor | 色名 / HEX | 負の値の色 |
| axis | true / false | ゼロ軸線の表示 |
| axiscolor | 色名 / HEX | 軸線の色 |
| ymin / ymax | 数値 | Y軸の最小値・最大値 |
TIP
オプションを大量に並べると数式が長くなって読みにくいです。社内ルールで「色は
#2196F3(青)と#F44336(赤)」のように決めておくと、メンテナンスが楽になります。
SPARKLINE関数のよくあるエラーと対処法
SPARKLINE関数で困ったときの対処法をまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
| グラフが表示されず数式がそのまま見える | セルの書式が「書式なしテキスト」になっている | セルの書式を「自動」に変更してEnterを押し直す |
#N/A エラーが出る | データ範囲に数値以外が含まれている | 文字列や空白を除外するか、"nan","convert" オプションを指定する |
#ERROR! が出る | オプションの書式が間違っている | {"キー","値"} の波括弧・ダブルクォーテーション・セミコロンを確認する |
#REF! が出る | データ範囲が削除された / 別シート参照が壊れている | 参照範囲を見直す。別シート参照は 'シート名'!A1:M1 の形式を確認 |
| 棒グラフの長さがバラバラ | maxが未設定で行ごとに最大値が異なる | barタイプでは "max",100 のように最大値を統一する |
| セルが狭くてグラフが見えない | 行の高さや列の幅が足りない | 行の高さを30px以上、列の幅を100px以上に広げる |
| 縦棒の色が反映されない | オプションキーのスペルミス | highcolor lowcolor negcolor の綴りを確認 |
| Excelで開いたらグラフが消えた | SPARKLINE関数はGoogleスプレッドシート専用 | Excel共有が必要な場合はグラフ画像を別途挿入する |
オプションの記述ミスが原因のエラーが多いです。波括弧とセミコロンの位置を確認してみてください。
NOTE
数式が
#ERROR!になったとき、セルにマウスを乗せるとツールチップにヒントが表示されます。「Sparkline ‘charttype’ に正しくない値があります」のようなメッセージが出るので、原因の特定に役立ちます。
SPARKLINE関数のよくある質問(FAQ)
Q1. SPARKLINEで表示したグラフを画像として保存できますか?
A. SPARKLINE関数はセル内に動的に描画されます。そのため、画像ファイル(PNG / JPG)として直接エクスポートする機能はありません。
画像化したいときは、まず「ファイル」→「ダウンロード」→「PDF」でシートを書き出します。次にPDFをトリミングする方法が現実的です。
手軽に済ませたい場合は、Cmd + Shift + 4(Mac) や Win + Shift + S(Windows)でスクリーンショットを撮るのもおすすめです。
Q2. SPARKLINEの色を条件によって変えることはできますか?
A. はい、IF関数と組み合わせれば可能です。たとえば「達成率80%以上は緑、未満は赤」にしたい場合は次のように書きます。
=SPARKLINE(B2, {"charttype","bar"; "max",100; "color1", IF(B2>=80, "#4CAF50", "#F44336")})
オプション値の中で関数を呼び出せるため、動的な色分けも実現できます。
Q3. SPARKLINEに凡例やラベルを表示できますか?
A. SPARKLINE単体では凡例・データラベル・軸目盛りなどは表示できません。表示したい場合は通常のグラフ(「挿入」→「グラフ」)を使ってください。SPARKLINEは「文脈の中に置く小さな視覚化」がコンセプトなので、ラベルではなく前後のセルの数値で文脈を補うのが基本です。
Q4. SPARKLINEで複数の系列を1つのセルに重ねて表示できますか?
A. SPARKLINE関数では1セルに1系列のみ表示できます。複数系列を重ねたい場合は、隣接する複数のセルにそれぞれSPARKLINEを置いて並べるか、通常のグラフを使ってください。
Q5. SPARKLINEを使うとシートが重くなりますか?
A. データ量が少なければ気になりませんが、数千行を超えるとスクロール時にラグが出ることがあります。重くなる場合は、SPARKLINE列を必要な行だけに絞るか、サマリーシートを別ファイルに分割してください。
Q6. ExcelでSPARKLINEのような表現はできますか?
A. Excelには「スパークライン」というリボン機能があります(「挿入」→「スパークライン」)。ただし数式ではなく機能なので、SPARKLINE関数のようにIFやQUERYと組み合わせることはできません。Googleスプレッドシートで作ったSPARKLINEはExcelで開くと表示されないため、共有時はPDFやスクリーンショットでの共有がおすすめです。
Q7. SPARKLINEとGOOGLEFINANCE関数を組み合わせて株価チャートを作れますか?
A. はい、定番の組み合わせです。GOOGLEFINANCE関数で取得した株価データをSPARKLINEで可視化すると、ウォッチリスト風の株価ダッシュボードが作れます。
=SPARKLINE(GOOGLEFINANCE("TYO:7203", "price", TODAY()-30, TODAY()))
過去30日間のトヨタ自動車の株価推移をミニグラフで表示できます。
Excelとの違い・使い分け
SPARKLINE関数はGoogleスプレッドシート専用の機能です。Excelには同名の関数がありません。
| 項目 | Googleスプレッドシート | Excel |
|---|---|---|
| 操作方法 | 関数(数式で記述) | 機能(リボンの「挿入」→「スパークライン」) |
| グラフタイプ | line / bar / column / winloss の4種類 | 折れ線 / 縦棒 / 勝敗 の3種類 |
| 横棒(bar)タイプ | あり(進捗バーに便利) | なし |
| カスタマイズ | オプションで色・軸・スケールを細かく指定 | リボンのオプションで変更 |
| 他関数との組み合わせ | 数式に組み込めるためIF/QUERY/FILTERと連携可 | 機能なので関数組み込み不可 |
| 互換性 | Excelで開くとグラフが消える | スプレッドシートでは表示されない |
大きな違いは操作方法です。スプレッドシートでは数式で記述するため、コピーや条件分岐との組み合わせが簡単です。
Excelのスパークラインはリボンから挿入する独立した機能なので、数式の中に組み込むことはできません。
横棒(bar)タイプがあるのもスプレッドシートならではの強みです。進捗バーや達成率の表現にはスプレッドシートのSPARKLINEが向いていますよ。
TIP
ExcelとGoogleスプレッドシートの両方で運用するワークブックでは、ミニグラフはExcel側のスパークライン機能を使うか、両方で表示できるグラフ画像を貼り付けるのが安全です。
まとめ
SPARKLINE関数を使うと、大きなグラフを挿入せずに表の中でデータの傾向を視覚化できます。
ポイントを整理します。
- 構文は
=SPARKLINE(データ, [オプション])の2つの引数 - 折れ線(line)・横棒(bar)・縦棒(column)・正負(winloss)の4種類のグラフが描ける
- オプションは
{"キー","値"; "キー","値"}の形式で指定する - barタイプに
"max"を設定すると、進捗バーとして使える - highcolor / lowcolor / negcolor でハイライトを付けると視認性が大きく上がる
- KPIダッシュボード・進捗バー・在庫アラート・株価ウォッチリストなど応用範囲が広い
- QUERY関数・FILTER関数・IMAGE関数・GOOGLEFINANCE関数と組み合わせると表現の幅が一気に広がる
- Googleスプレッドシート専用で、Excelには同名の関数がない
まずは =SPARKLINE({1,3,2,5,4}) で折れ線グラフの表示を試してみてください。慣れてきたらKPI一覧表に組み込んで、ダッシュボードを作ってみましょう。
関連記事
- スプレッドシートのGOOGLEFINANCE関数の使い方|株価・為替を自動取得
- スプレッドシートのIMAGE関数の使い方|セル内に画像表示
- スプレッドシートのQUERY関数の使い方|データ抽出・集計
- スプレッドシートのARRAYFORMULA関数の使い方|数式を一括適用
- スプレッドシートのIMPORTRANGE関数の使い方|別ファイル参照
- スプレッドシートのSEQUENCE関数の使い方|連番生成
- スプレッドシートのHYPERLINK関数の使い方|セル内リンク
- スプレッドシートのFILTER関数の使い方|条件に合うデータを抽出
- スプレッドシートのSORT・SORTN・SORTBY関数の使い方
- スプレッドシートの条件付き書式の使い方|行全体ハイライト
- スプレッドシートでガントチャートを作る方法
- スプレッドシートのIMPORTRANGE関数 完全ガイド
- スプレッドシートでプルダウン(ドロップダウン)を作る方法
