エクセルとのおつきあいは??年、アラフィフパートのおばちゃんが僭越ながら開催しています、エクセル塾です。
今回は並べ替えについてやります。Excelにかかわっていると、なにかと使いますよね。
1.並べ替えの基本
並べ替えをするには
①並べ替え範囲を指定する
②並べ替えをする列を指定する
③昇順または降順を指定する
④並べ替えを実行する
ということになります。いつもそこまでは考えず、なんとなくやっていますが。
並べ替えはリボン「データ」の「並べ替え」から行います。
またはリボン「ホーム」の「並べ替えとフィルター」、データを選択した状態で右クリックからも並べ替えを選択することもできます。

(1)並べ替えの範囲の指定
並べ替えしたい範囲が独立した状態になっている場合(隣接するセルに余計なデータがない場合)はその範囲内のセルを一つ選択している状態で、エクセルが「この範囲を並べ替えるんですね!」と自動で判断してくれます。
自動で判断してくれそうにない場合は、並べ替える範囲をドラッグして指定してから並べ替えをします。
私は、不安なので、なんとなくいつもデータ範囲を指定してから並べ替えをしています。

(2)並べ替えの列の指定
(ここからは、基本的にリボン「データ」の並べ替えを使って説明を行います。)
単純な並べ替えの場合、並べ替えをしたい列のセルを選択しておいて、「昇順」または「降順」ボタンをクリックすると並べ替えが実行されます。

「並べ替え」ボタンをクリックすると、列の指定ができます。複数の列の指定をすることもできます。

(3)並べ替えダイアログボックスの中身
並べ替えダイアログボックスの中身について、見ていきましょう。
列 :並べ替えしたい列を指定します
並べ替えのキー:通常は初期値の「セルの値」です
順序 :小さい順(昇順)、大きい順(降順)、ユーザー設定リストのいずれかを選択します
(ユーザー設定リストについては後述します)

「レベルの追加」ボタン:並べ替えの列指定を増やすことができます。
複数の列を登録する場合、優先順位の高い方から指定します(優先順位が高い方が上)
64個まで指定できるそうです。64も登録するのは苦行ですね。

「レベルの削除」ボタン:選択したレベルを削除することができます

「レベルのコピー」ボタン:選択したレベルを直下にコピーして追加することができます。
コピーして、列だけ修正するとちょっとらくちんです。

「上へ移動」「下へ移動」ボタン:選択したレベルを上、または下へ移動できます

「先頭行のデータを見出しとして使用する」:チェックを付ける、外す、で先頭行の扱いを切り替えできます。先頭行もデータなのに、並べ替え範囲に含まれなかった時や、見出しなのに並べ替え範囲に含まれてしまったときなどにここのチェックで切り替えをします。

「オプション」ボタンの中身を見てみましょう。

・大文字と小文字を区別する:ほとんど使ったことがありません。aとAの場合、a→Aの順になるようです。小文字優先となるようです。
・方向:「行単位」「列単位」の切り替えができます。初期値は「行単位」です。「列単位」にすると、横方向の並べ替えができます。

・方法:「ふりがなを使う」「ふりがなを使わない」の切り替えができます。
「ふりがなを使う」が初期値です。日本語の並べ替えの時にあいうえお順で並べ替えされます。
「ふりがなを使わない」にすると、文字コード順に並べ替えが行われます。こちらを選択することは、あまりなさそうですね。
2.並べ替えあれこれ
(1)横方法の並べ替え
実は横方向で並べ替えができることを知らなかったので、やってみたいと思います。
下図の表を行ラベルの「月」で1月→5月の順になっているところを5月→1月と逆にしていきたいと思います。
行ラベルの月の行も含めて並べ替えしたい範囲を選択し、並べ替えボタンをクリックします。
オプションボタンをクリックし、方向の「列単位」をオンにします。
すると、キーが「列」ではなく「行」になります。月の入力されている「行1」を指定し、順序は「降順」を指定、「OK」ボタンをクリックします。

なお、次に並べ替えを行うときに、オプションの「列単位」は残っていることがありますので、注意してください。(同じシートで並べ替えをしようとすると残っているみたいです)
(2)複数の並べ替え
学年、クラス、点数の表を学年、クラス、点数の高い順で並べ替えをしてみたいと思います。
①表内のどこかのセルを選択した状態でリボン「データ」の「並べ替え」をクリック。
(または、右クリック→「並べ替え」→「ユーザー設定の並べ替え」。
または、リボン「ホーム」の「並べ替えとフィルター」から「ユーザー設定の並べ替え」をクリックでもOK。)

②並べ替えのボックスが表示されます。
今回は項目行まで並べ替え範囲に含まれてしまったので「先頭行をデータの見出しとして使用する」にチェックを入れます。

③並べ替えの指定をしていきます。
学年ごと、クラス毎に、点数の高い順で並べたいと思います。
なので、「学年」→「クラス」→「点数」の順に指定していきます。
まず、列にプルダウンから「学年」を選択します。順序は「小さい順」です。
(ここは時により項目名ではなく列番号がプルダウンに表示されることもあります)

④次に「クラス」を指定します。
「レベルの追加」ボタンをクリックします。レベルが追加されるので、列に「クラス」を指定します。順序は「昇順」です。
学年は「小さい順」クラスは「昇順」なんですね。数字だと「小さい順/大きい順」、文字列だと「昇順/降順」が表示されるようです。どっちも「昇順/降順」でいいんですけどね。。。

⑤次に「点数」を指定します。点数は高い順にしたいので、大きい順(降順)を指定します。
「レベルの追加」をクリック→列に「点数」→順序はプルダウンリストから「大きい順」を選択します。

⑥並べ替えレベルの指定ができたので「OK」ボタンをクリックします。

並べ替えができました!
複数列の並べ替えは優先順位の高い方から指定するのがポイントです!
途中で、レベルの順番を変更したくなった時は「上へ移動/下へ移動」ボタン、レベルを削除したくなったときは「レベルの削除」ボタンを使用します。

(3)ユーザー設定の並べ替え
自分で「このグループ順に並べ替えをしたいのだが」というときは「ユーザー設定リスト」で並べ替えを行うことができます。
例として会社の役職で、社長→部長→次長→課長→係長→主任→一般社員 で常に並べ替えができるように、登録してみたいと思います。
登録方法です。
①メニューバーの ファイル → オプション → 詳細設定 → 下の方にスクロールして「全般」の「ユーザー設定リストの編集」ボタンをクリック

②リストの項目のボックスに並べ替えしたい項目を順にカンマで区切って入力します。
今回は社長からえらい順に「社長,部長,次長,課長,係長,主任,一般社員」と入力します。
③「追加」ボタンをクリックします。

④左の「ユーザー設定リスト」に登録されたことが確認できます。
「OK」ボタンをクリックします。これで登録は完了です。

なお、エクセルに入力しておいて、「インポート」ボタンでインポートし、追加することもできます。
ワークシートに項目を入力しておき、その範囲をドラッグして選択「インポートボタンをクリックすると、ユーザー設定リストに登録できます。

また、並べ替えをするときに、ユーザー設定リストを指定し、その場で並び順を入力してユーザー設定リストに登録することもできます。

この表で役職順に並ぶようにやってみましょう。

①並べ替え範囲を選択し、リボン「データ」→「並べ替え」
②列に「役職」を指定、順序は「ユーザー設定リスト」をクリックします

③先ほど登録した役職のリストをクリックし「OK」ボタンをクリックします。

④順序にユーザー設定リストから並び順が設定できました。「OK」ボタンをクリックします。

⑤役職順に並べ替えできました!

よく使う並び順はユーザー設定リストに登録しておくと便利です。
1回しか使いそうにない場合はユーザー設定リストに登録するよりも、別の列に1とか2とか入力して、並べ替えするのもよいと思います。ちょこっとテーブルを作ってVLOOKUPで1とか2とかを持ってきて、並べ替えをして、並べ替え後はその列は非表示か削除してしまえばよいかと。

(4)セルの色で並べ替え
なんと!セルの色やフォントの色でも並べ替えすることができます!
あまり使うことはなさそうだけど。。。
下図の表で、判定が色分けされています。
青→無色→黄色→青 の順で並べ替えしてみましょう。
①並べ替え範囲を指定し、リボン「データ」→「並べ替え」
②最優先されるキーに「判定」の列を指定。
③「並べ替えのキー」にプルダウンから「セルの色」を選択して指定します

④順序には一番上に来てほしい「青」を選択。一番右の「上」はそのままにします。
※降順にしたいとき(青を一番下にしたい場合)は「下」を選択します。

⑤レベルを追加し(「レベルの追加」ボタンクリックか「レベルのコピー」をクリック)
キーに「判定」を指定し、並べ替えのキーは「セルの色」、順序には「セルの色なし」を指定します。
⑥同様にレベルを追加し、キー「判定」、並べ替えのキー「セルの色」、順序に「黄色」
⑦同様にレベルを追加し、キー「判定」、並べ替えのキー「セルの色」、順序に「赤色」
⑧「OK」ボタンをクリックします。

並べ替えできました!

3.フリガナで並べ替え ~フリガナがない場合の対応方法~
日本語で入力された文字を並べ替えすると、基本的にはフリガナ順で並べ替えがされます。

ところが、別のシステムから持ってきたデータなど、あれ?ぜんぜんあいうえお順にならない?!というときがあります。

これはフリガナを持っていないため、フリガナ順に並べ替えができず、文字コード順に並べ替えされてしまったからです。でも、文字コード順に並んでくれてもうれしくないですねよ。
(1)フリガナを持っている持っていないを見分ける方法
フリガナを持っている、持っていないはどうやって見分けられるか?二通りの方法があります。
一つは関数PHONETICでフリガナが出るか出ないか。
フリガナを持っている場合はカタカナのフリガナが返ります。
フリガナを持っていない場合はそのままの文字列が返ります。

もう一つの方法はリボン「ホーム」の「フリガナの表示」ボタンをクリックすることです。
フリガナを持っている場合はフリガナのルビが振られ、フリガナを持っていない場合は何も表示されません。

(2)フリガナを持っていない日本語を並べ替えする方法
では、フリガナを持っていない文字列の場合、どうしたらフリガナ順に並べ替えすることができるのでしょうか。
①がんばって隣の列に読み仮名を入力する
②あきらめる
③Shift+Alt+↑キーでフリガナをつける(※)
④Wordを経由して一気にフリガナをつける(※)
ただし※の③④は予測される読み仮名が振られるので、必ずしも正確な読み仮名が振られるわけではありませんので注意が必要です(特に人名)。それは入力してフリガナを持っている場合も同様です。東海林さんは本当はショウジさんなのに、入力する人はトウカイリンと入力して変換しているかもしれません。
①の頑張って隣の列に読み仮名を入力する②のあきらめる、は置いといて、③④の方法をご紹介します。
(3)Shift+Alt+↑キーでフリガナをつける方法
わかりやすいように、「フリガナの表示」ボタンを押して、フリガナを表示させておきます。どこかから持ってきた氏名は何も表示されていない状態です。
セルを一つ選択した状態でShift+Alt+↑キーを同時押しします。
するとフリガナが表示されます。
読み仮名が違う場合はルビを修正することもできます。
ただしこの方法だとセル一つずつしかできないので対象のセルが多いとうんざりします。

(4)Wordを利用する方法
①エクセルのデータをコピーします。
②Wordを開きます
③エクセルのデータをWordの文書内に「値貼り付け」します。

④Word内のデータをドラッグして選択し、リボン「ホーム」の「ルビ」ボタンをクリックします。
⑤こうゆう風にフリガナをつけますよというボックスが表示されます。(ここでフリガナを修正することも可能です)
⑥「OK」ボタンをクリックします
⑦フリガナが振られました

⑧フリガナが振られた状態のWordのデータをコピーします
⑨エクセルに戻って貼り付けします。
⑩これでエクセル内のデータにもフリガナが付きました

これで、フリガナ順の並べ替えができるようになりました。やれやれですね。

お読みいただきありがとうございました!
エクセルをマスターしたい方にお勧めの書籍!
コメント
色々貴サイトで勉強させて頂いてます。
フィルター・並び替え関係で探していることがあるのですが、みつからないことがあり、ご教授頂きたく、コメントいたしました。
列、又は、行を非表示にさせたときのオートフィルの挙動についてです。
例えば「1,2,3,4,5、6,7,8,9,10行」の表示で3行目を非表示にして、連番を振り付けても(3行目を抜かしたくて)非表示の行にコピー等がされますが、非表示の行、又は、列をとばして、オートフィルはできないのでしょうか。
ご教授お願い致します。
※記載がわかりにくてすいませんです。
当ブログをお読みいただきありがとうございます。少しでもお役に立てたのであれば幸いです。
お問い合わせの「表示されている行だけに連番を振る」ですが、そんなことできるのか?と思ったのですが、できるんですね。
以下の記事で勉強させていただきました。
https://www.relief.jp/docs/018385.html
https://www.relief.jp/docs/018405.html
1)フィルタで非表示行がある状態にする
2)連番を振りたい最初のセルに「1」を入力
3)連番を振りたいセル範囲を選択
4)Alt+;で可視セルのみ選択(ホーム→検索と選択→ジャンプから可視セルを選択、でもOK)
5)フィルタを解除(とびとびにセルが選択された状態になっています)
6)ホーム→編集の「フィル」→「連続データの作成」
7)範囲「列」、増値分「1」として「OK」クリック
ポイントは5番の一度フィルタを解除するところです。フィルタを解除しないと「連続データの作成」が選択できないのです。
やったことがなかったので、勉強になりました。
これで解決するとよいのですが。
今後とも、よろしくお願いいたします。
わざわざお調べ頂き、詳しい解説ありがとうございました。
貴サイトの役に立つ「関数」の解説が増えるのを楽しみにしています。
今後とも宜しくお願い致します。
大変うれしいお言葉、ありがとうございます。感激しております。
書くことで間違って認識していたことに気が付いたり、新たな発見があったり、自分自身の勉強にもなっています。
Excelって奥が深いですね。
身に余るお褒めのお言葉をいただいたので、気持ちを新たにこれからもブログを続けていきたいと思います。ありがとうございました!