ハワードには数字のリストがあり、場合によっては6桁、場合によっては8桁ですが、最後の2桁、次に前の2桁で並べ替える必要があるため、長さは関係ありません。彼は右/中/左のタイプの数式を試しましたが、桁数が異なるため、それを機能させることができませんでした。

アプローチについて説明する前に、ハワードのデータについていくつかの明確な仮定を立てることが重要です。このヒントでは、データが列Aにあり、少なくとも4桁で構成されていると想定します。 (ハワードは6桁と8桁の長さについて言及しているので、これは誤った仮定ではありません。)また、列Aの唯一のものは数字で構成される値であり、無視したい他の文字は含まれていないと仮定されます。あなたのソートで。

2つのヘルパー列を使用してソート桁を抽出する場合は、列Bで次を使用できます。

=RIGHT(A1,2)

数式は、列Aにあるものから右端の2桁を取得します。次に、列Cに次のように配置できます。

=MID(A1, LEN(A1)-3,2)

この式は、A1にあるものの長さを調べ、その値をMID関数のパラメーターとして使用して、値の最後の2桁の前にある2桁を抽出します。

列Aの値が数値であるかテキストであるかに関係なく、これらの数式はテキスト値を返すことを理解することが重要です。これは、抽出された値のいずれかが0で始まる場合に便利です。これは、「5」が返される代わりに、「0」ではなく「05」または「00」が表示されることを意味します。数値が確実に返されるようにする場合は、各数式をVALUE関数でラップする必要があります。

=VALUE(RIGHT(A1,2))

=VALUE(MID(A1, LEN(A1)-3,2))

列BとCの「キー値」を使用して、これらの値に基づいてソートを実行できます。必要に応じて、列Bに次のいずれかの式を含む単一のヘルパー列のみを使用することもできます。

=RIGHT(A1,2)&MID(A1, LEN(A1)-3,2)

=RIGHT(A1,2)&LEFT(RIGHT(A1,4),2)

繰り返しになりますが、これらはテキスト文字列(並べ替えには問題ありません)を返しますが、VALUE関数でラップすることで数値に変換できます:

=VALUE(RIGHT(A1,2)&MID(A1, LEN(A1)-3,2))

=VALUE(RIGHT(A1,2)&LEFT(RIGHT(A1,4),2))

抽出されたテキストまたは列Bの数値のどちらを使用するかに関係なく、列の内容に基づいて並べ替えることができるようになりました。

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

このヒント(10905)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。