Excelワザ 並べ替え(枝番のある数値の並べ替え)-2

Kさんから、ダメだし(-.-)
ハイフンの次の番号もきちんと昇順に並べたい!
例)
b0186959_116173.jpg

こんな表を単純に昇順に並べ替えると↓
b0186959_117483.jpg

数字と文字に分かれてしまい、
さらに、ハイフンの次の番号は
101-111→101-3→101-589
てな並べになってしまう。
これを、
101-3→101-111→101-589
の順で、枝番号も昇順にしたいわけね。

わかりました!
これで、どうでしょう?
1.処理用の列を2列用意します。
 A列の右に2列挿入。
2.セルB2には、前日と同じ
 ハイフンより前の数字を取り出します。
=IF(ISNUMBER(A2)=TRUE,A2,VALUE(LEFT(A2,FIND("-",A2,1)-1)))
3.さらに、セルC2には
 ハイフンより後ろの数字を取り出します。
=IF(ISNUMBER(A2)=TRUE,0,VALUE(RIGHT(A2,LEN(A2)-FIND("-",A2,1))))
(もし、A2が数値なら、0を表示、
(空白ではダメでした。)
数値でないなら、右から(Right関数)
ハイフンまでの数字を取り出します。
全部の文字数(LEN関数)から、
Find関数でハイフンを探し、ハイフンまでの
文字数分を引くと、右からハイフンまでの
文字数がとり出せれます。
取り出した、数字は文字になっているので、
VALUE関数で数値に戻してやります。
すると、B列、C列に
ハイフンの前と、後ろの数字が取り出せました。
b0186959_11392124.jpg

4.これを、並べ替えのダイアログボックスで、
 2つの条件で並べ替えます。
 ・最優先されるキーが「-の前の数字」
 ・次に優先されるキーが「-の後の数字」
b0186959_1142734.jpg

5.2つの条件で並べ替えると、
b0186959_11455921.jpg

101→101-3→101-111→101-589
と、並びましたねぇ。
6.必要なければ、B列、C列削除して。
 (残しておくと、番号、枝番がわかってよいかも(^_-)))
こんな感じで並び替えできましたが…
b0186959_1149581.jpg

 Kさん、これで、どうでしょう?
[PR]

by school-pc | 2013-01-12 11:52 | Comments(0)