初心者必見!Google Apps Scriptで前日のデータを取得するテクニック
GASで前日のデータを取得したいんだけど、どうすればいいのかな?基本的なコードの書き方がいまいち分からなくて…。

猫男

catman
よし、catmanが「GASで前日のデータを取得する」方法を教えてやろう。「gas 前日」を使えば君のスクリプトもグレードアップするはずだ。
日付を操作して前日を特定する方法
まずは、GASで日付を操作して前日を特定する必要がある。
前日の日付を取得する
function getYesterday() {
const today = new Date();
const yesterday = new Date(today);
yesterday.setDate(yesterday.getDate() - 1);
Logger.log(yesterday);
}
✅ Dateオブジェクトを使って現在の日付を取得し、setDate()メソッドを使用して前日の日付を計算する。
スプレッドシートから前日のデータを取得
例えば、Googleスプレッドシートから前日のデータを取得するケースを考えよう。
function getYesterdayData() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const yesterday = getYesterday();
const dataRange = sheet.getDataRange();
const data = dataRange.getValues();
data.forEach(row => {
if (new Date(row[0]).toDateString() === yesterday.toDateString()) {
Logger.log(row);
}
});
}
✅ まず、SpreadsheetApp.getActiveSpreadsheet()でスプレッドシートを取得し、その上でgetActiveSheet()で操作対象のシートを取得する。
なるほど!これでスプレッドシートの前日データを引っぱってこれるんですね!スマートなやり方が分かりました!

猫男

catman
そうだ、君のスクリプトライフはこれで一段とカラフルになるはずだ。何かスクールで学ぶのとは一味違うだろう?
GASでスプレッドシートの操作をマスターする
GASを使いこなすためには、スプレッドシートの操作をマスターしておくことが重要だ。
スプレッドシートの基本メソッド
メソッド | 用途 |
---|---|
getRange(row, column) | 特定のセル範囲を取得する |
getValues() | セル内容の配列を取得する |
setValues(values) | セル内容を設定する |
スプレッドシートの操作がどんどんできるようになってきた!次はもっと高度なことも試してみたいな。

猫男

catman
その意欲、実に素晴らしい。catmanも全力でサポートするさ。
練習問題:GASで特定の列の前日データを取得しよう
あなたのスプレッドシートの2列目に日付、3列目にデータがあるとします。前日のデータを取得して、前日であればそのデータをログに出力するスクリプトを書いてみましょう。
解答・解説
function getColumnYesterdayData() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getActiveSheet();
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
const dataRange = sheet.getDataRange();
const data = dataRange.getValues();
data.forEach(row => {
if (new Date(row[1]).toDateString() === yesterday.toDateString()) {
Logger.log(row[2]);
}
});
}
このスクリプトでは、スプレッドシート内のすべての行をチェックし、日付が前日である行のデータ(3列目)をログに表示する。getRange()とgetValues()でデータを取得、ループで日付を比較する方式だ。