スキップしてメイン コンテンツに移動

GASでフィルタ&並び替え

GASでフィルタ&並び替え

GAS基礎とスプレッドシート操作

Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための JavaScript ベースのプラットフォームです。まずはスプレッドシートを操作する基本的なコードを書いてみましょう。以下の例では、スプレッドシートのデータを取得し、コンソールに出力します。

function logSheetData() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('データ');
  const values = sheet.getDataRange().getValues();
  Logger.log(values);
}

このスクリプトを実行すると、シートの全データがログに表示されます。GAS基礎を押さえることで、後のフィルタ操作やデータ抽出がスムーズに行えます。

フィルタ操作の基本

スプレッドシートでは、データを見やすく整理するためにフィルタを設定できます。GAS でもフィルタを操作することが可能です。フィルタ操作の主なメソッドは createFilterremove です。以下に簡単な例を示します。

function applyFilter() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ');
  // 既存のフィルタを削除
  if (sheet.getFilter()) sheet.getFilter().remove();
  // A列(1列目)にフィルタを作成
  sheet.getRange('A1').createFilter();
}

フィルタを作成した後は、getFilter でフィルタオブジェクトを取得し、条件を設定できます。

createFilter と getFilter の使い方

createFilter は指定した範囲にフィルタを作成します。getFilter は現在アクティブなフィルタを取得し、条件を変更したり、並び替え(sort)を行うことができます。以下は昇順と降順で並び替える例です。

function sortData() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ');
  const filter = sheet.getFilter();
  if (!filter) return;
  // B列(2列目)を昇順に並び替え
  filter.sort(2, true);
  // C列(3列目)を降順に並び替え
  filter.sort(3, false);
}

sort メソッドの第2引数に true を渡すと昇順(昇順)、false を渡すと降順(降順)になります。これにより、データの並び替えが簡単に実現できます。

条件フィルタでデータ抽出と並び替え

条件フィルタを使うと、特定の条件に合致する行だけを表示できます。例えば、列D(4列目)に「完了」という文字列が含まれる行だけを抽出し、列A(1列目)で昇順に並び替える場合、以下のようにします。

function conditionalFilter() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データ');
  const filter = sheet.getFilter();
  if (!filter) return;
  // 条件フィルタを設定:列Dに「完了」が含まれる
  filter.setColumnFilterCriteria(4, SpreadsheetApp.newFilterCriteria()
    .whenTextContains('完了')
    .build());
  // 列Aで昇順に並び替え
  filter.sort(1, true);
}

このスクリプトを実行すると、列Dに「完了」がある行だけが表示され、列Aで昇順に並び替えられます。条件フィルタと並び替えを組み合わせることで、データ抽出(データ抽出)を効率的に行えます。

まとめとして、GAS基礎を理解し、フィルタ操作(createFilter, getFilter, remove)を駆使し、sort で並び替え(昇順・降順)を行い、条件フィルタでデータ抽出を実現することで、スプレッドシートのデータ管理が格段に楽になります。

この記事はAIによって作成されました。

コメント