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列)を基準に昇順で並べ替えます。並べ替えた結果は、元の範囲に書き戻されます。