締切り済みの質問
エクセルで記号の混ざった英数字(文字列)の並び替えがうまくできません。
例)
@@AA-99A999 G
@AA-99A999 M
@AA-00A999 N
AA-00B999 M
@@D1-000999
@D1-000999
という具合に並べ替えをしたいと考えています。
過去の質問例を参考にしてみましたがうまくいきませんでした。
アドバイスをよろしくお願いいたします。
投稿日時 - 2005-11-10 19:16:39
3人が「このQ&Aが役に立った」と投票しています
回答(2件中 1~2件目)
まずは、文字の並べ替え規則をもう一度確認されたほうがよさそうです。文字列データの並べ替えは、大ざっぱに言うと昇順で0~9、記号、A~Zの順に、文字列の左から1文字ずつ判断されることになります。
この鉄則から言えば、「AA-00B999 M」のあとに再び「@@」で始まるデータが来るということはあり得ません。
また、何らかのコードなどの符合体系なのかもしれませんが、このような場合は桁数を揃えるというのも鉄則です。たとえば、ハイフンで区切られているのも、何らかの意味合いがあると思いますが、このハイフンを挟んだ左右の文字数が一定でありませんので、思った通りの並べ替えができないでしょう。
それに加え、No.1の方も指摘なさっているように、「@AA-99A999 M」と「@AA-00A999 N」は文字数が同じですが、ハイフンのあとの「99」と「00」では「00」のほうが昇順では先になります。
このような理由から、元のデータを加工しなければ、思うような並べ替えはできないでしょう。その際、桁数を統一するのはもちろんですが、コード体系そのものも変更する必要がありそうです。優先順位の法則性など、補足くだされば、具体的な解決法を提示できる可能性もありますが…。
投稿日時 - 2005-11-11 08:29:18
補足
ご回答ありがとうございます。
知りたかった内容と質問した内容と違っていました。
(優先順位の法則など、いい加減でした・・)
自分でよく考えてから質問したつもりですが、次回から更によく考えてから投稿します。
投稿日時 - 2005-11-21 19:24:58