GASでスプレッドシートでソートするには「sort(sortSpecObj)
」を利用する。
sort(sortSpecObj)
指定した範囲内のセルを、列と指定した順序で並べ替えます。
https://developers.google.com/apps-script/reference/spreadsheet/range#sortsortspecobj
スプレッドシートでソートするGAS実行の様子
sort(sortSpecObj) メソッドを利用して、スプレッドシートでソートするGASを実行してみました。
sort(sortSpecObj)を実行することで、
- 任意のセル範囲(列範囲)に対し、昇順・降順でソートを設定する
といった操作が可能です。
対象列の昇順・降順を設定する
対象列を絞って昇順・降順を設定するには、小括弧(パーレン)の中に中括弧(プレース)を書き、以下のように記述します。
range.sort({column:対象列数, ascending: false})
※rangeは列範囲である。
内訳は以下のとおり。
- column:対象列
- ascending: ture(昇順)or false(降順)
複数列を昇順・降順に設定する
複数列の昇順・降順設定は、小括弧の中に大括弧(ブラケット)、大括弧の中に中括弧を書き、以下のように記述します。
range.sort([{column: 2, ascending: false}, {column: 1, ascending: true}]);
同時に複数列の昇順・降順を設定するときに便利です。
スプレッドシートで特定列の最終行、特定行の最終列を選択する場合は、以下記事を御覧ください。
参照記事:【GAS】スプレッドシートで特定列の最終行、特定行の最終列を選択する
スプレッドシートでソートするGAS
function sort(){
//SpreadSheetAppを起動してシートをアクティブに
let ss = SpreadsheetApp.getActiveSheet();
//行30・列10繰返しiを設置
for(let i=1;i<=30;i++){
for(let r=1;r<=10;r++){
ss.getRange(i,r).setValue(i);
}
}
//変数valにソートする列のアルファベットを入力
const val = Browser.inputBox("ソートする列のアルファベットを入力してください");
//変数rngにvalの先頭セルを格納
const rng = ss.getRange(val+"1");
//変数rw,clに変数rngの行・列数を格納
const rw = rng.getRow();
const cl = rng.getColumn();
//変数lastrwにrngの最終行を格納
const lastrw =rng.getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow();
//変数rangeにセル範囲を設定
const range = ss.getRange(rw,cl,lastrw,1);
//■sortメソッドでrange範囲を降順falseに設定
range.sort({column:cl, ascending:false});
}
sort(sortSpecObj)のパラメーター
名前 | 型 | 説明 |
---|---|---|
sortSpecObj | Object | 並べ替えの基準となる列。 |
sort(sortSpecObj)の戻り値
Range - チェーン用の範囲。
スプレッドシートでソートするまとめ
GAS×スプレッドシートでソートするならsort(sortSpecObj)
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートの文字の折返しを配列で設定する