【GAS GoogleAppsScript | スプレッドシート】セルの範囲を並べ替える

スポンサーリンク

セルの範囲を並べ替える

今回は、Rangeクラスの中にあるセルの範囲を並べ替えるsortメソッドの紹介をします。

次のサンプルに書式の設定をしていきましょう!

サンプル

1つの列を基準に並べ替える

セルの範囲を1つの列の基準で並べ替えるには次の構文を使います。

構文

Rangeオブジェクト.sort(列番号)

function test(){
  
  // セルの範囲を取得する
  var range = SpreadsheetApp.getActiveSheet().getRange("A2:C7")
  
  // 得点列を基準に並べ替える
  range.sort(3)
}

セル範囲は、見出しを抜いた「A2:C7」

得点列は、指定した範囲の3番目なので、引数には3を指定しています。

実行すると次のように並べ替わります。

※この場合、並べ替えは昇順になるので注意してください。

2つ以上の基準や降順で並べ替える

構文

Rangeオブジェクト.sort([

  {column: 列番号, ascending: true/false },

  {column: 列番号, ascending: true/false },

])

ascendingプロパティはtrueが昇順、falseが降順です。

それでは、C列を降順、B列を昇順で並べ替えてみましょう。

function test(){
  
  // セルの範囲を取得する
  var range = SpreadsheetApp.getActiveSheet().getRange("A2:C7")
  
  // 得点列を基準に並べ替える
  range.sort([
      {column:2, ascending:true},
      {column:3, ascending:false}
  ])
}

ちなみに、並べ替えの優先順位は、先に書いたほうが優先になります。

実行すると次の図のように、並べ替わります。

まとめ

セルの範囲を並べ替えるsortメソッドを紹介しました!