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 でもフィルタを操作することが可能です。フィルタ操作の主なメソッドは createFilter と remove です。以下に簡単な例を示します。
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 で並び替え(昇順・降順)を行い、条件フィルタでデータ抽出を実現することで、スプレッドシートのデータ管理が格段に楽になります。
コメント
コメントを投稿