独自の基準で並べ替える


最近、VBAのセミナーで"並べ替え"のやり方を詳しく解説しているのですが、一般的な昇順や降順だけでなく、独自の基準で並べ替える方法をご存じない方が多いので、ここに書いておきましょう。確かに、Excel 2007以降は、ちょっと面倒くさくなりましたね。

ここでは、次のような表をA列で並べ替えます。B列とC列は関係ありません。表が1列だけだと寂しいのでオマケです。

まずは、普通に50音順の"昇順"と"降順"で並べ替えたときの結果をご覧ください。

【昇順】

【降順】

これを、"北から南"の順番で並べ替えてみましょう。つまり「札幌→東京→大阪→広島→鹿児島」みたいに。まずは、望む結果になる状態を、どこかのセルに入力しておきます。このように、あらかじめ入力しておかなくてもできるのですが、入力しておいた方が簡単です。

さらに、このセル範囲をあらかじめ選択しておくといいです。あらかじめ選択しておかなくてもできるのですが、選択しておいた方がラクチンです。

次に、Excelのオプションを開きます。[詳細設定]を選択して「全般」までスクロールします。右側に表示される[ユーザー設定リストの編集]ボタンをクリックします。

実行すると[ユーザー設定リスト]ダイアログボックスが表示されます。あらかじめ選択しておいたセル範囲のアドレスが[リストの取り込み元]ボックスに表示されます。そのまま[インポート]ボタンをクリックすると、選択したセル範囲に入力されている文字列が、新しいユーザー設定リストとして登録されます。

[OK]ボタンをクリックして[ユーザー設定リスト]ダイアログボックスを閉じ、さらに[OK]ボタンをクリックしてExcelのオプション画面を閉じます。これで準備は完了です。

では、実際に、いま登録した順序で並べ替えてみましょう。まずは、表の中にアクティブセルを移動します。

[データ]タブの[並べ替え]ボタンをクリックします。

[最優先されるキー]で、今回並べ替えたい「地域」を選択します。そして[順序]のドロップダウンリストを開き[ユーザー設定リスト]を選択します。

先ほどの[ユーザー設定リスト]ダイアログボックスが表示されますので、さっき登録した「札幌,東京,大阪,広島,鹿児島」を選択して[OK]ボタンをクリックします。

実行すると、選択したリストが並べ替えの基準として登録されます。なお、ユーザー設定リストを選択すると、同時に"逆順"のリスト登録されます。もし、逆順(ここでは南から)で並べ替えたいのなら、ここで逆順を選択してください。

[OK]ボタンをクリックすると、並べ替えが実行されます。

ちなみに、今回登録した「ユーザー設定リスト」は、並べ替えの基準だけではなく、オートフィルによる"連続データの作成"にも使えます。