可変長データの最後の桁で並べ替える(Microsoft Excel)
ハワードには数字のリストがあり、場合によっては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に適用されます。