SiiD BLOG ロゴ
GASを使ってGoogleスプレッドシートを検索する方法

GASを使ってGoogleスプレッドシートを検索する方法

SiiD BLOG編集部
SiiD BLOG編集部

Google Apps Script (GAS)を使えば様々なGoogleのサービスを自動化することができます。スプレッドシート上のデータを元に何かを処理したい場合、まずは条件に一致したデータを取得する必要があります。

本記事では、GASを使ってGoogleスプレッドシート上のデータを検索する方法を紹介します。

スプレッドシート検索の手順

全体的な流れとしては、以下のようになると思います。

  1. Apps Script (GAS) とGoogleスプレッドシートの連携
  2. スプレッドシート・データ範囲の取得
  3. 条件に一致するものを検索

GASとスプレッドシートの連携に関しては、こちらの記事をご参照ください。

スプレッドシート・データ範囲の取得

検索をする前に、まずはデータを取得する必要があります。以下に、そのための基本的な関数を紹介します。

//GoogleスプレッドシートをIDで取得
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
//Googleスプレッドシートをシート名で取得
var sheet = spreadsheet.getSheetByName('シート名');

//Googleスプレッドシートのセル範囲を取得
var range = sheet.getDataRange();
//Googleスプレッドシートのセル範囲のデータを取得
var values = range.getValues();

データ取得方法のさらに詳しい方法は、こちらのページをご覧ください。

条件に一致するものを検索

最もシンプルな方法は、取得したデータをループで一つ一つ取り出し、条件に合致したものを探すという手法です。

for (var i = 0; i < values.length; i++) {
  for (var j = 0; j < values[i].length; j++) {
    if (values[i][j] == '検索条件') {
            //以下に、'検索条件'が見つかった場合の処理を記述。例えば、検索条件の値をログに主力
      Logger.log('見つかった値: ' + values[i][j]);
            //検索条件の行と列の番号を取得
      Logger.log('行: ' + (i+1) + ', 列: ' + (j+1));
    }
  }
}

また、SQLに似たクエリ言語がサポートされているので、以下のようにQUERY関数を用いて検索を行うこともできます。

var queryString = '=QUERY(A1:C10, "select * where B = \'条件\'", 1)';
sheet.getRange('E1').setFormula(queryString);

さらに、JavaScriptで正規表現を扱うためのオブジェクト、RegExp()を用いた検索方法もご紹介します。

var regex = new RegExp('検索パターン');
for (var i = 0; i < values.length; i++) {
  if (regex.test(values[i][0])) { // 例として1列目の値に対して検証
    Logger.log('見つかった行: ' + (i+1));
  }
}

シェアする

この記事を書いた人

SiiD BLOG編集部

SiiD BLOG編集部

SiiD BLOG編集部にて、皆さんの学習やキャリアに役立つ記事を発信します! 普段は受講生の皆さん向けに、学習やキャリアの相談にのったりもしています。

未経験からのエンジニア転職を本気で目指すなら「SiiD」

SiiDはYouTube 13万人のセイト先生が主任講師のAIプログラミングスクール。元人事部長&現役エンジニアによる徹底指導で、生涯年収を大きくアップさせませんか?

SiiDの詳細を見る