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

以下のような、文字と数字が混ざったデータの並び替えを行いたいのですが、

A3E
A20
A100
A120
A250
MYYYYYY1K
RAQQQ2A


下のようになってしまいます。


A100
A120
A20
A250
A3E
MYYYYYY1K
RAQQQ2A

何か良い方法はありませんでしょうか。
Excel2002を使用しています。


よろしくお願いします。

A 回答 (7件)

VBAでやってみました。


文字+数字+文字の場合、文字部+数字部だけを考えているのでロジック的に完全ではないですが
標準モジュールに
Sub test01()
d = Range("A65536").End(xlUp).Row
MsgBox d
For i = 1 To d
s = Cells(i, "A")
m = ""
n = ""
nf = "n"
For j = 1 To Len(s)
x = Mid(s, j, 1)
If IsNumeric(x) Then
n = n & x
nf = "y"
Else
If nf = "y" Then
Else
m = m & x
End If
End If
Next j
Cells(i, "B") = m
Cells(i, "C") = Val(n)
Next i
End Sub
を実行し、B列昇順、C列昇順で並べると
A列  B列  C列
A3EA3
A20A20
A100A100
A120A120
A250A250
MYYYYYY1KMYYYYYY1
RAQQQ2ARAQQQ2
になります。
第3の文字列の塊を、D列につくり、B-D列各々で昇順にすれば
完全になるように思うが、質問の仕様に書いてなくて、きりがないので略。

この回答への補足

遅くなって申し訳ありません。
ご回答のVBAの方を試してみた所、かなり希望通りの並び順になりました。どうもありがとうございます。

ただ、その中でデータをよく見てみると、文字列+数字+文字列+数字なども混在していまして、
例)A20 (Y170)
のような場合、数字が20170となってしまうものがありました。

お手数おかけしますが、最初の文字列、数字のみを抽出し、文字列、数字という分割にするような方法はありませんでしょうか。
最初の文字列+数字が分割されると希望通りのものになると思え、再度申し訳ありませんが、教えていただけると助かります。

補足日時:2006/03/27 17:56
    • good
    • 1
この回答へのお礼

どうもありがとうございました。補足については、自己解決しました。

お礼日時:2006/04/07 07:45

[No.2回答に対する補足]に対するコメント、



「上の方が期待する並び順」?

A3E
A20
A100
A120
A250
MYYYYYY1K
RAQQQ2A

の1、2行目は、なぜ A3E が上で、A20 なのですか?この並び順は降順に見えます、他は昇順なのに。

この回答への補足

ありがとうございます。
例もわかりにくいのかもしれませんが、
文字と数字 の後に文字がくる場合もあるのですが、
文字と数字だけの場合もあります。

Aの次の3を数値の最小として認識できないかと思い、
質問させていただきました。
以下のような一桁の数字が最小になるようにソートして欲しいのですが、
A3
A3E
A3moji
A20
A100

実際は、

A100
A20
A3
A3E
A3moji

のように、されてしまう為、何か良い方法があればと思いまして・・・。

補足日時:2006/03/18 08:58
    • good
    • 0

文字型の宿命ですね。


A20をA100より前にしたいなら文字と数字は別のセルにするか
A20をA020のようにするしかありません。
数字だけなら文字列でもEXCEL2002以降に限り、対応できますけど...
http://office.microsoft.com/ja-jp/assistance/HP0 …

この回答への補足

ありがとうございます。
やはり一手間加えないと厳しそうですね。
品名な為、文字数も固定していないので、
昇順並び替えの後、マニュアルで調整するしかないかとも思っています。

補足日時:2006/03/18 08:44
    • good
    • 0

文字+数字がA列に入っているとします。

B列に並べたい順番に番号を振っていきます。

B列の番号が入っているセルの選択して、A→ZボタンかZ→Aボタンを押すと番号の小さい順番か大きい順番に並びます

この回答への補足

ありがとうございます。
強制的に並び替えするにはそういう方法を取った方が早いのかもしれませんね。
ただこれから月ごとにリスト(新製品)を追加していく作業があり、既存のものとの並び替えをまたやり直すことになるため、並び順の番号の振り直しがまた発生します。これを何とか避けられないものかと。

補足日時:2006/03/18 08:32
    • good
    • 0

エイサンイーの次がエイニゼロで次がエイイチゼロゼロだから普通


に逆順かと思ったら、その次がエイイチニゼロですか…

Excelは、文字列の一部を数値として処理することは出来ません。文
字列は全体で文字列なんです。お望みの並び方にするには、コード
の付け方をA003E, A020, A100のように桁を揃えてしまうか、数字の
部分を数値としてソートするような複雑な処理をユーザー関数とし
て定義してみるしかないでしょう。

この回答への補足

ありがとうございます。
品名の並び替えになるのですが、特殊な品名が多い為、
困っています。
A3
A3moji
A20
A100
と続いたと思ったら、
Japan Tokyo1
Japan Osaka2
のような単語(数字が入ったりなかったり)の品名があったりして、どうしたら良いものか・・・。

補足日時:2006/03/18 08:26
    • good
    • 0

期待と異なる結果は分かりましたが、念のために、貴方の期待する結果をお示しください。

この回答への補足

わかりにくくてすみません。上の方が期待する並び順です。

補足日時:2006/03/18 08:12
    • good
    • 0

どのような並び替えを期待しているのでしょうか。

この回答への補足

わかりにくくてすみません。上の方が期待する並び順です。

補足日時:2006/03/18 08:11
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A