8/12/2021

Excel。横長の表。列で並べ替えをするには、どうしたらいいの?【SORT】

Excel。横長の表。列で並べ替えをするには、どうしたらいいの?

<並べ替え>

データタブの並べ替えにある「昇順」や「降順」のボタンをつかうと、簡単に並べ替えを実行できます。

行方向のデータ(レコード)を対象に並べ替えを行うわけですが、横長の表の場合、行方向ではなくて、列方向(フィールド)で並べ替えを行いたい時にはどのようにしたらいいのでしょうか?


次の表を用意しました。


B列からH列を対象に並べ替えをしたいわけです。


仮にA2をクリックした状態で、昇順ボタンを押したところで、A列のデータを起点として行(レコード)が対象となって並べ替えを行うわけです。


次のようにしたいわけです。


自力で行うには、面倒ですね。

では、Excel VBAでプログラム文をつくったほうがいいのでしょうか?


実は、ちょっとしたところに、列(フィールド)対象で、並べ替えを行うところが隠れているのです。


並べ替えをおこなうのに、範囲選択をしてから実行します。


なぜ、範囲選択をするのかというと、A列も並べ替えの対象になってしまうからです。

今回は、B1:H6を範囲選択してから実行します。


では、B1:H6を範囲選択して、データタブの並べ替えボタンをクリックします。


並べ替えダイアログボックスが表示されます。


レベルの追加ボタンの下に「列」と表示されていることを覚えておきましょう。


並べ替えダイアログボックスのオプションボタンをクリックします。

並べ替えオプションダイアログボックスが表示されます。


方向が「行単位」になっているのを「列単位」に変更してOKボタンをクリックします。


並べ替えダイアログボックスに戻ってきます。

レベルの追加ボタンの下の表示が「列」から「行」に変わったことが確認できます。


最優先されるキーを、1行目なので、「行1」と設定します。

並べ替えのキーと順序を設定しますが、今回は、初期値のままとします。

それでは、OKボタンをクリックします。


これで、列(フィールド)の並べ替えが実行できました。


なかなか、列方向で並べ替えをすることはないと思われますが、このように、並べ替えダイアログボックスのオプションで設定することで、実行できます。


なにか、プラスアルファなことができないかと思った場合は、オプションを見てみると、対応することができるかもしれません。