Googleスプレッドシートを使って日々のデータを整理している方必見!この記事では、Google Apps Script(GAS)を活用して、特定の条件でデータを抽出し、自動で並べ替える方法をわかりやすく解説します。例えば「食費」のデータだけを支払額の昇順でソートし、新しいシートに結果を出力するスクリプトを実際に作成。初心者の方でも簡単に実践できる手順を紹介しています。作業効率を大幅にアップさせるGASの活用術をぜひお試しください!
サンプルデータ
今、このようなデータが入っているとします。

スクリプト
「拡張機能」から「Apps Script」を選択してください。

このスプレッドシートデータに基づいて、「食費」の支払額を少ない順に並び替えるGoogle Apps Scriptを作成する場合、以下のようなスクリプトを使用します。
function sortFoodExpensesToNewSheet() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sourceSheet = spreadsheet.getSheetByName("費用"); // 元のデータが入っているシート
if (!sourceSheet) {
Logger.log("シート '費用' が見つかりません。");
return;
}
const data = sourceSheet.getDataRange().getValues(); // 全データを取得
const header = data[0]; // ヘッダー行(1行目)
const rows = data.slice(1); // データ部分(2行目以降)
// "食費"のデータを抽出
const foodExpenses = rows.filter(row => row[2] === "食費"); // "項目"列が"食費"の行を抽出
// 支払額(2列目)を基準に昇順ソート
foodExpenses.sort((a, b) => a[1] - b[1]);
// ヘッダーとソート済みデータを結合
const sortedData = [header, ...foodExpenses];
// 新しいシート "ソート結果" を取得または作成
let resultSheet = spreadsheet.getSheetByName("ソート結果");
if (!resultSheet) {
resultSheet = spreadsheet.insertSheet("ソート結果");
} else {
resultSheet.clear(); // 既存のデータをクリア
}
// ソート結果を新しいシートに書き込む
resultSheet.getRange(1, 1, sortedData.length,sortedData[0].length).setValues(sortedData);
Logger.log("食費のソート結果を 'ソート結果' シートに出力しました。");
}
「実行」をクリックしてください。

実行ログは下記のようになります。

結果はこのようになります。

新しいシート名”ソート結果”に項目が”食費”となっているデータのみ支払額が少ない順に並べ替えられています。
スクリプトの説明
元データのシート名を指定
const sourceSheet = spreadsheet.getSheetByName("費用"); // 元のデータが入っているシート
if (!sourceSheet) {
Logger.log("シート '費用' が見つかりません。");
return;
}
シート名「費用」を指定して元データのシートを取得します。
シートが存在しない場合のエラーチェックをしています。
スプレッドシートデータの取得
const data = sheet.getDataRange().getValues();
const header = data[0];
const rows = data.slice(1);
getDataRange().getValues()
シート内の全データを2次元配列として取得。
data[0]
ヘッダー行(最初の行)を取得。
data.slice(1)
ヘッダー行を除いたデータ部分のみを取得
「食費」データの抽出
const foodExpenses = rows.filter(row => row[2] === "食費");
filter()
配列から「項目」列(インデックス2)が「食費」である行だけを抽出。
支払額の昇順ソート
foodExpenses.sort((a, b) => a[1] - b[1]);
sort()
配列を指定した条件で並べ替える。
比較関数:a[1] – b[1]
支払額(2列目)を基準に昇順(小さい順)に並べ替える。
新しいシート「ソート結果」の作成
let resultSheet = spreadsheet.getSheetByName("ソート結果");
if (!resultSheet) {
resultSheet = spreadsheet.insertSheet("ソート結果");
} else {
resultSheet.clear(); // 既存データをクリア
}
シート「ソート結果」が存在する場合は既存データをクリアし、存在しない場合は新しく作成します。
データを新しいシートに書き込み
resultSheet.getRange(1, 1, sortedData.length, sortedData[0].length).setValues(sortedData);
ソート結果を「ソート結果」シートに書き込みます。
注意点
元データのシート名が「費用」であることを確認してください。
「ソート結果」シートが既に存在する場合、その内容は上書きされます。
スクリプト実行後、結果が期待通りであるか確認してください。
使用手順
スクリプトを追加
Googleスプレッドシートで「拡張機能」→「Apps Script」を選択。
エディタに上記スクリプトを貼り付けて保存。
スクリプトを実行
スクリプトエディタで関数 sortFoodExpensesToNewSheet を選択し、実行。
結果確認
新しいシート「ソート結果」が作成され、食費のデータが支払額の少ない順に並べ替えられています。