ボブは、政府の規制のタイトルに合わせたテーブルを作成する必要があることがよくあります。規則の番号付けは10進形式であり、これにより、規則を順番に並べ替えようとすると問題が発生します。

例は、820.20、820.25、820.200、820.250です。ボブはこれらをテキストとして入力しますが、それでも彼が望まない方法でソートされて出てきます。すべての場合において、Excelは末尾のゼロを削除し、「820.20」と「820.200」を同じものと見なします。ボブは自分に何ができるのか疑問に思っています。

まず、Excelが末尾のゼロを削除している場合、セルはテキストとしてフォーマットされていないことに注意してください。セルに何かを入れる前に、セルをテキストとしてフォーマットする必要があります。そうでない場合は、エントリの前にアポストロフィを付ける必要があります。いずれの場合も、後続のゼロはそのままにしておく必要があります。

エントリをテキストに強制する別の方法は、何らかの方法でエントリを変更することです。

たとえば、「820.200」の代わりに「Reg820.200」と入力できます。または、820の後のピリオドをスペースまたはダッシュに置き換えることができます。これらの方法のいずれか、およびその他の多くの方法では、エントリがテキストとして扱われるように強制されます。

テキストに情報を強制的に入力しても、並べ替えの問題は解決しません。これらのセルの束を並べ替えても、不要な順序で表示されます:

820.190 820.2 820.20 820.200 820.201 820.25 820.27

その理由は、ソートが左から右に行われるためです。このスキームでは、「。20」は常に「.200」の前にあり、「。200」は常に「.25」の前にあります。これを回避する唯一の方法は、数値の構造を変更して、(この場合)小数点の後に常に3桁になるようにすることです。

820.002 820.020 820.025 820.027 820.190 820.200 820.201

これにより適切な並べ替え順序が得られますが、政府のナンバリングシステムで使用されているナンバリングと一致させるという本来の目的に大混乱をもたらします。その番号付けスキームに忠実になりたい場合、唯一の解決策は、番号付けに3つの列を使用することです。最初の列は、テキストとして入力された政府番号になります。 2番目の列は、小数点の左側にある数値の一部であり、次の式で導出されます。

=LEFT(A1,FIND(".",A1)-1)

3番目の列は、次の式で導出された小数点の右側の部分になります。

=RIGHT(A1,LEN(A1)-FIND(".",A1))

3つの列を配置したら、2番目と3番目の列の内容に基づいて並べ替えを行うことができます。番号を並べ替えたら、必要に応じて2番目と3番目の列を非表示にできます。

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

このヒント(11336)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Sorting_Decimal_Values [Sorting DecimalValues]