Excelの表がある時に、表全体ではなく選んだ範囲だけを並び替えたいことってありませんか?
この記事では、Excelde指定をした範囲だけを並び替える方法を紹介します。
Excelで指定した範囲だけを並び替えるには?
指定の範囲を並び替える方法
Excelで指定した範囲だけを並び替えるためには、データタブの下にある並び替えを使用します。
<並び替えの手順>
- 表がテーブル形式になっている場合は、まずテーブルを範囲に変換

テーブル上のセルを選択するとテーブルデザインが開きます
「範囲に変換」を選択してテーブルを解除します

なまけもん
テーブルを範囲に変換するのがポイント!
テーブルのままだと範囲指定がうまくできずに全体が並び変わるよ
- 表が範囲の形式に変換されたら、並び替えたい範囲を選択
- Excelのデータタブを開き、並び替えをクリック

- 下図のような画面が表示されるので、並び替えのキーとなる列と並び替えのルールを選択

- OKをクリックすると指定した範囲のみが並び変わります

並び替えの方法
昇順・降順
昇順・降順の並べ替えは、数字やアルファベットなどで並び替える時に使用します。
- 昇順は「1→10」「A→Z」のように小さいものから大きいものへと並べます
- 降順は昇順の逆で、「10→1」「Z→A」のように大きいものから小さいものへと並べます
古い順・新しい順
古い順・新しい順の並べ替えは、日付などで並び替える時に使用します。
- 古い順は、「2000/1/1 → 2025/1/1」のように日付が古いものから新しいものへと並べます
- 新しい順は、「2025/1/1 → 2000/1/1」のように日付が新しいものから古いものへと並べます
ユーザー設定リスト
ユーザー設定リストは、自分で独自に設定したリストで並び替えをしたい時に使います。
「高・中・低」や「S・M・L」のような昇順・降順および古い順・新しい順では並び替えが難しいものに使用します。
ユーザー設定リストの追加方法
- 範囲並び替えの入力ボックスの一番右側のリストからユーザー選択リストを選択

- 右側にあるリストの項目に指定していアイテムを入力し「追加」ボタンをクリック
- リストのアイテムは1つずつ改行するか、コンマ区切りで入力すること

- OKボタンを押してリスト追加完了
範囲指定の並び替えを自動化する方法
同じような作業が繰り返し発生する場合には、範囲指定の並び替えを自動化してしまいましょう
自動化はExcelの「自動化」タブから設定することができます。
関連記事に自動化設定方法について詳しく記載しています。
コードの書き方
並び替えに使えるOffice scriptを紹介します
function main(workbook: ExcelScript.workbook){
const activeSheet = workbook.getActiveWorksheet();
//サンプルテーブルの並び替え
activeSheet.getRange("B2:E11").getSort().apply([{ key: 3, ascending: true }],false, true, ExcelScript.SortOrientation.rows);
}
コードの簡易解説
コード | 意味 |
---|---|
const activeSheet = workbook.getActiveWorksheet() | 変数名「activeSheet」= 現在開いているエクセルのシート |
activeSheet.getRange(“B1:E11”) | activeSheetの並び替え範囲を指定 ※サンプルコードはB2からE11の範囲を指定 |
getSort().apply([{ key: 3, ascending: true }] | key: 3 キー列の指定 ※サンプルコードはキー列にE列を指定、昇順で並び替え(キー列の番号は、最初の列を「0」として数える) ascending: true 昇順で並び替え |
false, true, ExcelScript.SortOrientation.rows | false:ヘッダー行なし true:並び替え方向を行単位で指定 ExcelScript.SortOrientation.rows:行で並び替え |