プロが教える店舗&オフィスのセキュリティ対策術

エクセルで記号の混ざった英数字(文字列)の並び替えがうまくできません。
例)
@@AA-99A999 G
@AA-99A999 M
@AA-00A999 N
AA-00B999 M
@@D1-000999
@D1-000999

という具合に並べ替えをしたいと考えています。
過去の質問例を参考にしてみましたがうまくいきませんでした。
アドバイスをよろしくお願いいたします。

gooドクター

A 回答 (2件)

まずは、文字の並べ替え規則をもう一度確認されたほうがよさそうです。

文字列データの並べ替えは、大ざっぱに言うと昇順で0~9、記号、A~Zの順に、文字列の左から1文字ずつ判断されることになります。

この鉄則から言えば、「AA-00B999 M」のあとに再び「@@」で始まるデータが来るということはあり得ません。

また、何らかのコードなどの符合体系なのかもしれませんが、このような場合は桁数を揃えるというのも鉄則です。たとえば、ハイフンで区切られているのも、何らかの意味合いがあると思いますが、このハイフンを挟んだ左右の文字数が一定でありませんので、思った通りの並べ替えができないでしょう。

それに加え、No.1の方も指摘なさっているように、「@AA-99A999 M」と「@AA-00A999 N」は文字数が同じですが、ハイフンのあとの「99」と「00」では「00」のほうが昇順では先になります。

このような理由から、元のデータを加工しなければ、思うような並べ替えはできないでしょう。その際、桁数を統一するのはもちろんですが、コード体系そのものも変更する必要がありそうです。優先順位の法則性など、補足くだされば、具体的な解決法を提示できる可能性もありますが…。

この回答への補足

ご回答ありがとうございます。
知りたかった内容と質問した内容と違っていました。
(優先順位の法則など、いい加減でした・・)
自分でよく考えてから質問したつもりですが、次回から更によく考えてから投稿します。

補足日時:2005/11/21 19:24
    • good
    • 0

並び替えルールを言葉で、優先順に箇条書きに書いてください。



例ではよくわかりません。
例えば、
@AA-99A999 M
@AA-00A999 N
は、99と00の関係でこの順になっているのか、
MとNの関係でなっているのか。とか
実際のデータだけから判断しろという方が無理です。

逆に
並び替えルールを言葉で、優先順に箇条書きに
書けた時点で、8割方目的は達成されたようなものです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

人気Q&Aランキング