GASで勤怠管理を効率化!EmbeddedChartBuilder.addRangeでグラフを自動生成
勤怠管理は、企業にとって重要な業務ですが、手作業で行うには時間と手間がかかります。特に、従業員数が多い企業では、集計作業に多くの時間を費やしてしまうという課題があります。そこで、Google Apps Script(GAS)とEmbeddedChartBuilder.addRange
を活用することで、勤怠データを自動的に集計し、グラフを生成することで、業務効率を大幅に向上させることができます。
EmbeddedChartBuilder.addRangeとは?
EmbeddedChartBuilder.addRange
は、GASのSpreadsheetサービスで利用できるEmbeddedChartBuilder
クラスのメソッドの一つです。このメソッドを使用することで、スプレッドシート上の指定した範囲のデータをグラフに追加することができます。複数の範囲を追加することで、複雑なグラフも簡単に作成できます。
基本構文
EmbeddedChartBuilder.addRange(range)
range
: グラフに追加するスプレッドシートの範囲。SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名").getRange("A1:B10")
のように指定します。
勤怠管理システムへの応用
勤怠管理システムにおいて、EmbeddedChartBuilder.addRange
は、従業員の出勤時間、退勤時間、残業時間などのデータをグラフ化する際に非常に役立ちます。例えば、日々の勤怠データを集計し、月ごとの残業時間をグラフで表示することで、従業員の労働状況を可視化し、長時間労働の抑制に繋げることができます。
実装例1:月ごとの残業時間グラフ
この例では、スプレッドシートに記録された勤怠データから、月ごとの残業時間を集計し、棒グラフで表示します。
// スプレッドシートのIDとシート名を指定
const spreadsheetId = "スプレッドシートID";
const sheetName = "勤怠データ";
function createOvertimeChart() {
// スプレッドシートとシートを取得
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);
// データの範囲を指定 (A1:B10を実際のデータ範囲に合わせて変更)
const dataRange = sheet.getDataRange();
// グラフを作成
const chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(dataRange)
.setPosition(5, 5, 0, 0) // グラフの位置を設定
.setOption("title", "月ごとの残業時間") // グラフのタイトルを設定
.build();
// シートにグラフを挿入
sheet.insertChart(chart);
}
カスタマイズ方法:
setChartType()
: グラフの種類を変更できます。例えば、円グラフにする場合はCharts.ChartType.PIE
を指定します。setPosition()
: グラフの表示位置とサイズを調整できます。setOption()
: グラフのタイトル、軸ラベル、凡例などをカスタマイズできます。
実装例2:従業員ごとの出勤時間グラフ
従業員ごとの出勤時間を比較するグラフを作成します。
function createAttendanceChart() {
const ss = SpreadsheetApp.openById("スプレッドシートID");
const sheet = ss.getSheetByName("勤怠データ");
const dataRange = sheet.getDataRange();
const chart = sheet.newChart()
.setChartType(Charts.ChartType.BAR)
.addRange(dataRange)
.setPosition(5, 10, 0, 0)
.setOption("title", "従業員ごとの出勤時間")
.build();
sheet.insertChart(chart);
}
実装例3:日ごとの出勤状況グラフ
日ごとの出勤人数をグラフで可視化します。
function createDailyAttendanceChart() {
const ss = SpreadsheetApp.openById("スプレッドシートID");
const sheet = ss.getSheetByName("勤怠データ");
const dataRange = sheet.getDataRange();
const chart = sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(dataRange)
.setPosition(5, 15, 0, 0)
.setOption("title", "日ごとの出勤状況")
.build();
sheet.insertChart(chart);
}
よくある問題とトラブルシューティング
- グラフが表示されない:データ範囲が正しいか確認してください。また、グラフの種類とデータの形式が一致しているか確認してください。
- グラフの表示が崩れる:データの形式がグラフに適しているか確認してください。例えば、日付データが正しく認識されているかなどを確認します。
- エラーが発生する:スプレッドシートのIDやシート名が正しいか確認してください。また、GASの実行権限が付与されているか確認してください。
カスタマイズ方法と応用例
- グラフの種類の変更:
setChartType()
メソッドを使用して、棒グラフ、折れ線グラフ、円グラフなど、様々なグラフの種類に変更できます。 - グラフのタイトルの変更:
setOption()
メソッドを使用して、グラフのタイトル、軸ラベル、凡例などをカスタマイズできます。 - 複数のデータ範囲の追加:
addRange()
メソッドを複数回呼び出すことで、複数のデータ範囲をグラフに追加できます。 - 条件付き書式との連携:条件付き書式と連携することで、特定の条件を満たすデータを強調表示することができます。
まとめ
GASのEmbeddedChartBuilder.addRange
を活用することで、勤怠管理データを自動的に集計し、グラフを生成することができます。これにより、業務効率を大幅に向上させ、従業員の労働状況を可視化することができます。この記事で紹介したコード例を参考に、ぜひ自社の勤怠管理システムに導入してみてください。
CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう