Googleスプレッドシート 名前付き範囲の並べ替えマクロ
マクロを記録して名前付き範囲Table1に書き換えた
/** @OnlyCurrentDoc */
function Table1SortClear() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange("Table1").activate();
spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1).sort({column: 1, ascending: true});
};
function Table1Sort() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange("Table1").activate();
spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1).sort([{column: 9, ascending: true}, {column: 2, ascending: true}]);
};
AIに聞いてみた
googleスプレッドシートのマクロを書きたい。名前付き範囲「Table1」を取得して並べ替えを行いたい。並べ替え列は9列と2列を昇順です。尚、table1の一行目はタイトルなのでソートからは外してください。
.
GPT-4o mini
Google スプレッドシートで、名前付き範囲「Table1」を取得し、9列(I列)と2列(B列)を基準に昇順で並べ替えるマクロを作成するには、以下の Google Apps Script を使用できます。このスクリプトは、1行目をタイトルとして扱い、2行目以降を並べ替えます。
javascript
コードをコピー
function sortNamedRange() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var namedRange = sheet.getRange("Table1"); // 名前付き範囲「Table1」を取得
var data = namedRange.getValues(); // データを取得
// 1行目をタイトルとして除外し、2行目以降を並べ替え
var header = data[0]; // タイトル行
var body = data.slice(1); // データ部分(タイトル行を除外)
// 並べ替え(9列目と2列目を基準に昇順)
body.sort(function(a, b) {
// 9列目(I列)で比較
if (a[8] === b[8]) {
// 9列目が同じ場合は2列目(B列)で比較
return a[1] > b[1] ? 1 : -1; // 昇順
}
return a[8] > b[8] ? 1 : -1; // 昇順
});
// 並べ替えたデータを元の範囲に書き戻す
namedRange.offset(1, 0, body.length, body[0].length).setValues(body);
}
スクリプトの使い方
Google スプレッドシートを開きます。
メニューから「拡張機能」→「Apps Script」を選択します。
新しいプロジェクトが開いたら、上記のコードをコピーして貼り付けます。
スクリプトを保存します(名前を付ける必要があります)。
sortNamedRange 関数を実行します。
このスクリプトは、名前付き範囲「Table1」のデータを取得し、1行目をタイトルとして除外した後、9列目(I列)と2列目(B列)を基準に昇順で並べ替えます。並べ替えた結果は、元の範囲に書き戻されます。