Googleスプレッドシートでデータ管理をしている方も多いと思いますが、そのデータを視覚的に分かりやすくグラフ化する作業は意外と手間がかかります。
本記事では、Google Apps Script(GAS)を使ってGoogleスプレッドシートのデータを自動でグラフ化する方法をご紹介します。
GASを使うことで、手動でのグラフ作成の手間を省き、作業を効率化することができます。
スプレッドシートの準備
まず、グラフ化したいデータを含むスプレッドシートを用意します。
1.Google スプレッドシートを開く
最初に、Google スプレッドシートを開きます。
Google Chromeを開いて右上に表示されるGoogle アプリのアイコンを左クリックします。
そして、Google アプリ一覧から「Googleドライブ」もしくは「スプレッドシート」を選択します。
各アプリに移動したら、任意のフォルダでスプレッドシートを新規作成するか、編集したいスプレッドシートを選択して開きます。
2.データを入力する
Googleスプレッドシートが開いたら、スクリプトを実行したいデータを入力していきます。
既に入力されている場合は、この作業は必要ありません。
サンプルでは、「月別売上推移表」という下記のデータを使用していきます。
タイトル「月別売上推移表」をセルA1に、下記データをA2:B8の範囲に貼り付けます。
月 | 売上(万円) |
---|---|
1月 | 100 |
2月 | 150 |
3月 | 200 |
4月 | 180 |
5月 | 220 |
6月 | 250 |
GASスクリプトの作成・実行
1. Google Apps Scriptエディタの準備
1. スクリプトを開く
メニューバーの「拡張機能」を左クリックし、「Apps Script」を選択します。
「Apps Script」を選択すると、スクリプトエディタが新しいタブで開きます。
2. エディタを空にする
デフォルトで作成されているmyFunction()
を削除し、空のエディタにします。
2. GASスクリプトを作成する
スプレッドシートのデータを自動でグラフ化するスクリプトを作成します。
1. スクリプトを作成する(サンプルコード)
まず、新しいタブでスクリプトエディタが開かれたら、以下のスクリプトをコピーして貼り付け、プロジェクトを保存します。
function createChart() {
// 現在アクティブなシートを取得
var sheet = SpreadsheetApp.getActiveSheet();
// データ範囲とグラフ設定の取得
var dataRange = sheet.getRange("A3:B8");
var settings = {
title: sheet.getRange("A1").getValue(), // タイトルを取得
xAxisLabel: sheet.getRange("A2").getValue(), // X軸ラベルを取得
yAxisLabel: sheet.getRange("B2").getValue() // Y軸ラベルを取得
};
// チャートの作成と設定
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN) // グラフタイプを棒グラフに設定
.addRange(dataRange) // データ範囲を追加
.setPosition(2, 4, 0, 0) // グラフの位置を設定(2行目、4列目)
.setOption('title', settings.title) // グラフタイトルを設定
.setOption('titleTextStyle', {alignment: 'center'}) // タイトルを中央揃えに設定
.setOption('hAxis.title', settings.xAxisLabel) // X軸ラベルを設定
.setOption('vAxis.title', settings.yAxisLabel) // Y軸ラベルを設定
.build(); // チャートオブジェクトを構築
// チャートをシートに挿入
sheet.insertChart(chart);
}
スクリプトでは、下記の流れでスプレッドシートのデータを自動でグラフ化しています。
解説が不要な方は、こちらから「スクリプトの実行」に進んでください。
1. アクティブシートの取得
var sheet = SpreadsheetApp.getActiveSheet();
では、現在アクティブなシートを取得し、sheet
変数に格納しています。
これにより、スクリプトが操作するシートを指定しています。
2. データ範囲とグラフ設定の取得
var range = sheet.getRange(A3:B8");
では、指定した範囲(A3:B8)のセルを取得します。var settings = {}
では、A1、A2、B2セルからグラフのタイトルとX軸、Y軸のラベルを取得します。
データ範囲や軸ラベルの位置を変更したい場合は、getRange()の引数を適宜調整してください。
3. チャートの作成と設定
sheet.newChart()
:新しいチャートオブジェクトを作成します。
setChartType(Charts.ChartType.COLUMN)
:グラフタイプを棒グラフに設定します。
他のグラフタイプに変更したい場合は、こちらをご覧ください。
addRange(dataRange)
:グラフ化するデータ範囲を追加します。
setPosition(2, 4, 0, 0)
:グラフを挿入する位置を2行目、4列目に設定します。
グラフの挿入位置を変更したい場合は、setPosition()の引数を適宜調整してください。
setOption('title', settings.title)
:settingsで取得したグラフタイトルを設定します。
setOption('titleTextStyle', {alignment: 'center'})
:タイトルを中央揃えにします。
setOption('hAxis.title', settings.xAxisLabel)
:settingsで取得したX軸のラベルを設定します。
setOption('vAxis.title', settings.yAxisLabel)
:settingsで取得したY軸のラベルを設定します。
build()
:設定に基づいてチャートオブジェクトを構築します。
4. 作成したグラフの挿入
sheet.insertChart(chart);
では、作成したグラフを現在アクティブなシートに挿入します。
以上の流れで、スプレッドシートのデータを自動でグラフ化し、スプレッドシートに挿入することができます。
2. スクリプトを実行する
スクリプトエディターのメニューバーで「createChart」が選択されていることを確認し、「実行」ボタンを左クリックします。
初めて実行する際には、スクリプトに対する権限の承認が求められる場合がありますので、承認してください。
「このアプリは Google で確認されていません」と表示された場合は左下の詳細をクリックすると、「無題のプロジェクト(安全ではないページ)に移動」というリンクが表示されます。
このリンクをクリックすると次のページへ遷移できます。
3. 実行結果を確認する
スクリプトが正常に実行されると、スプレッドシートにグラフが挿入されます。
サンプルでは、セルD2の位置にグラフが挿入されていることが確認できます。
グラフの種類を変更する方法
グラフの種類を変更したい場合は、GASスクリプトのsetChartType()
の引数を変更します。
例えば、折れ線グラフに変更する場合は
スクリプト14行目の.setChartType(Charts.ChartType.COLUMN)
を.setChartType(Charts.ChartType.LINE)
に変更します。
それぞれのグラフタイプに対するsetChartType()の引数は表の通りです。
作成したいグラフに合わせて設定してください。
グラフタイプ | setChartType()の引数 |
---|---|
棒グラフ | Charts.ChartType.COLUMN |
折れ線グラフ | Charts.ChartType.LINE |
円グラフ | Charts.ChartType.PIE |
散布図 | Charts.ChartType.SCATTER |
面グラフ | Charts.ChartType.AREA |
まとめ
GASを使ってスプレッドシートのデータを自動グラフ化することで、手動でのグラフ作成が不要になり、大幅な時間短縮が可能です。
また、自動でグラフを作成することができるため、作業ミスを防ぐことができます。
本記事で紹介したスクリプトをベースに、ご自身のニーズに合わせてスクリプトをカスタマイズしていくことで、さらに便利なツールを作成することができます。
ぜひ本記事でご紹介したスクリプトを活用して、自動化ツールを作成してみてください!
DXを推進するためのその他の効果的なサービスやツールについて知りたい方は、『DX推進に効果的な5つのツール・サービス』もぜひご覧ください。
コメント