スプレッドシート + Google Apps Script (GAS) + QUERY 関数で SQL のように検索する

Google スプレッドシート + Google Apps Script (GAS) + QUERY 関数で SQL のように検索するサンプルコードをご紹介します。

Google Apps Script | グーグル アップス スクリプト

背景 スプレッドシートをデータベースのように扱いたい

Google スプレッドシートを Google Apps Script (GAS) からデータベースのように扱うために QUERY 関数で SQL のようなことを実現できるかサンプルコードを書いてみました。

前提条件 スプレッドシート users シート

id email updated_at
1 1@example.com 2022-01-01 1:01:01
2 2@example.com 2022-02-02 2:02:02
3 3@example.com 2022-03-03 3:03:03

サンプルコード スプレッドシート + Google Apps Script (GAS) + QUERY 関数

スプレッドシート users から updated_at が特定の日時より新しい行のみ取得する Google Apps Script (GAS) + QUERY 関数のサンプルコードは以下のとおりです。

function searchUsers(){
  let keyword = '2022-01-01 01:01:01';
 
  const sheet = SpreadsheetApp.getActive().getSheetByName("QUERY");
  sheet.getRange(1, 1).setValue(`=QUERY(users!A:C,"where C > datetime '${keyword}'", -1)`);

  const lastRow = sheet.getLastRow();

  for (var i = 2; i <= lastRow; i++) {
    let id = sheet.getRange(i, 1).getValue();
    let email = sheet.getRange(i, 2).getValue();
    let updatedAt = sheet.getRange(i, 3).getValue();
     
    Logger.log(`id: ${id}, email: ${email}, updated_at: ${updatedAt}`);
  }
}

以上、Google スプレッドシート + Google Apps Script (GAS) + QUERY 関数で SQL のように検索した、現場からお送りしました。

参考情報