【GAS】スプレッドシートのソート機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートのソート機能をすべてまとめました。

大量のデータを扱う時、並べ替えを簡単に行えるとデータの解析効率が上がりますね。複雑なデータをいろんなカラムで見方を変えたい場合はなおさらです。

シートまるごとソート、セル範囲ソート、フィルタ設定範囲ソート、昇順や降順、単一カラムの単純ソートや複数カラムの複雑ソート、などなど。

ソートを使いこなし、あらゆることに対して優先度の高いものを最初に持ってくる癖も付けちゃいましょう。

ソートに関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。

基本的な仕様やよく使われる機能の設定方法がまとまっています。

※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。


シートクラス[Sheet]の並べ替え

シートの並べ替えメソッドです。

シート並べ替え1[sort(列の位置)]

sort(columnPosition)
シートを列ごとに昇順に並べ替えます。

function sheetSort1Sample() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  // シートを最初の列で昇順に並べ替えます
  sheet.sort(1);
}
Parameters
名前タイプ説明
columnPositionIntegerソートする列。

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);
}
Parameters
名前タイプ説明
columnPositionIntegerソートする列。
ascendingBoolean昇順ソートの場合はtrue、降順の場合はfalseです。

Return
Sheet - メソッド連鎖に有効なシート。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | sort(columnPosition, ascending)

※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}]);
}
Parameters
名前タイプ説明
sortSpecObjObjectソートする列。

Return
ConditionalFormatRule[] - 連鎖用のセル範囲。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Range | Methods | sort(sortSpecObj)


最後に

GASソート機能のまとめをご紹介させていただきました。

フィルタ適用範囲ソートについては以下をご確認ください。

【GAS】スプレッドシートのフィルタ機能まとめ【サンプルソース付】
GAS開発者向けにスプレッドシートのフィルタ機能をすべてまとめました。データを解析する時に頻繁にフィルタは頻繁に使いますね。スプレッドシートはExcelと操作が微妙に違うので慣れが必要です。データのバリエーションが豊富なシ...

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




コメント