最近、GAS(GoogleAppsScript)を使った開発をおこなった時に、以下の条件でセルを並び替えることがあった。

  • 第1条件: 都道府県コード(昇順)
  • 第2条件: 日付(降順)

まず都道府県順にソートをおこない、同じ都道府県だった場合は日付順にソートするといった仕様だ。

このような複数条件のソートをGASで実行するコードを紹介する。

const lr = sheet.getLastRow();
const lc = sheet.getLastColumn();

sheet.getRange(2, 1, lr-1, lc).sort([
  {column: 1, ascending: true},
  {column: 2, ascending: false},
]);

sortメソッドの引数には、配列で複数条件を指定することができる。

columnにはキーとなる列番号を、aschendingには昇順の場合trueを、降順の場合falseを指定する。

これで2つ以上の条件でのソートを一度に実行することができる。