Excelには、データリストを最大3列で簡単に並べ替えることができる並べ替え機能が含まれています。ただし、大規模または複雑なデータリストがある場合は、3つ以上の列で並べ替えることができます。これを達成する方法はいくつかあります。

並べ替える列が5つあるとすると、最初の方法は、並べ替え時に2つのパスを実行することです。データを列A、B、C、D、およびEの順序で並べ替える場合は、列C、D、およびEを使用して最初の並べ替えを実行します。これらの順序になったら、列AおよびBで並べ替えます。その結果、データリスト全体が正常になります。

これに密接に関連しているのは、ツールバーの並べ替えツールを使用して5つの列を並べ替えることができるという事実です。まず、列Eのセルを選択してから、[昇順で並べ替え]または[降順で並べ替え]ツールをクリックします。他の各列(D、C、B、およびA)のセルを順番に選択し、適切なツールをクリックして、このプロセスを繰り返します。この反復プロセス(並べ替えツールを5回クリックするだけです)の最後に、リスト全体が希望の順序になります。

ここで説明するように並べ替えるときは、覚えておくべき重要なことがあります。リストデータの特性は、実行される並べ替えの品質に影響を与える可能性があります。データに空のセル、エラー値、またはテキスト形式の数値が含まれている場合、Excelは期待する方法でデータを並べ替えない場合があります。解決策は、データを「正規化」することです。たとえば、数値が実際には数値であり、テキストとしてフォーマットされた数値ではないことを確認してから、並べ替えを再度実行します。

もう1つの解決策は、データの「並べ替え列」を作成することです。このアプローチは、データがすべてテキストである場合、またはデータをテキストベースの形式に簡単に変換して並べ替えることができる場合に最適です。このシナリオでは、列AからEの内容を列Fに結合してから、単一の列Fで並べ替えます。列Fでこのタイプの数式を使用できます:

=A1 & B1 & C1 & D1 & E1

列の1つに日付が含まれている場合は、次の式で行うように、日付を一貫したテキスト形式に変換する必要があります。

=A1 & B1 & C1 & TEXT(D1,"yyyymmdd") & E1

列の1つに数値が含まれている場合は、値を先行ゼロで埋める同様のTEXT関数構造を使用して、それらを正規化できます。

=A1 & TEXT(B1,"000000") & C1 & D1 & E1

かなりの量の並べ替えを行い、Excelの組み込みの並べ替えルーチンを使用したくない場合は、サードパーティの並べ替え関数を調べる必要があります。ソートアルゴリズムは数学の魅力的な分野であり、いくつかの非常に人気のあるアルゴリズム(シェルソート、交換ソート、バブルソートなど)はExcel関数を介して実装できます。これらの関数がシステムでどのように使用されるかは、開発者によって実装された方法によって異なります。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2255)は、Microsoft Excel 97、2000、2002、および2003に適用されます。