GAS開発者向けにスプレッドシートのソート機能をすべてまとめました。
大量のデータを扱う時、並べ替えを簡単に行えるとデータの解析効率が上がりますね。複雑なデータをいろんなカラムで見方を変えたい場合はなおさらです。
シートまるごとソート、セル範囲ソート、フィルタ設定範囲ソート、昇順や降順、単一カラムの単純ソートや複数カラムの複雑ソート、などなど。
ソートを使いこなし、あらゆることに対して優先度の高いものを最初に持ってくる癖も付けちゃいましょう。
ソートに関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
Google Apps Script スプレッドシート 基礎 リファレンス
当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。
若干、文言がおかしい可能性がありますが、あらかじめご了承ください。
GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。
まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。
GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。
基本的な仕様やよく使われる機能の設定方法がまとまっています。
※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。
シートクラス[Sheet]の並べ替え
シートの並べ替えメソッドです。
シート並べ替え1[sort(列の位置)]
sort(columnPosition)
シートを列ごとに昇順に並べ替えます。
function sheetSort1Sample() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// シートを最初の列で昇順に並べ替えます
sheet.sort(1);
}
名前 | タイプ | 説明 |
---|---|---|
columnPosition | Integer | ソートする列。 |
Return
Sheet - メソッド連鎖に有効なシート。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | sort(columnPosition)
シート並べ替え2[sort(列の位置, 昇順)]
sort(columnPosition, ascending)
シートを列でソートします。昇順または降順を指定するためのパラメータを取ります。
function sheetSort2Sample() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// シートを最初の列で降順にソートします
sheet.sort(1, false);
}
名前 | タイプ | 説明 |
---|---|---|
columnPosition | Integer | ソートする列。 |
ascending | Boolean | 昇順ソートの場合はtrue、降順の場合はfalseです。 |
Return
Sheet - メソッド連鎖に有効なシート。
※Class Spreadsheet | Methods | sort(columnPosition, ascending)も同じ
セル範囲クラス[Range]の並べ替え
セル範囲の並べ替えメソッドです。
並べ替え[sort(sortSpecObj)]
sort(sortSpecObj)
指定された列と順序で、指定された範囲のセルを並べ替えます。
function rangeSort1Sample() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("A1:C7");
// 最初の列の値でソートする(A)
range.sort(1);
// 2列目の値でソートする(B)
range.sort(2);
// 列Bで降順にソートする
range.sort({column: 2, ascending: false});
// 列Bで降順にソートし、次に列Aで昇順にソートします。
// 配列の使用に注意してください
range.sort([{column: 2, ascending: false}, {column: 1, ascending: true}]);
// 昇順でソートされている行の場合、 "ascending"パラメータはオプションで、
// 代わりに列を含む整数のみを使用できます。
// 一般に、ソート指定を一貫させると、コードが読みやすくなります。
// 以前の並べ替えを次のように表現できます。
range.sort([{column: 2, ascending: false}, 1]);
// あるいは、すべての列を昇順にする場合は、次のようにします
// (これにより、列2が昇順になります)。
range.sort([2, 1]);
// ...同じです
range.sort([{column: 2, ascending: true}, {column: 1, ascending: true}]);
}
名前 | タイプ | 説明 |
---|---|---|
sortSpecObj | Object | ソートする列。 |
Return
ConditionalFormatRule[] - 連鎖用のセル範囲。
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | sort(sortSpecObj)
最後に
GASソート機能のまとめをご紹介させていただきました。
フィルタ適用範囲ソートについては以下をご確認ください。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓
ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
コメント