[[20080831185129]] 『半角数字が一桁からある場合に正確にソートする方』(こもこも) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『半角数字が一桁からある場合に正確にソートする方法』(こもこも)

お世話になります。

下記のようにA列に1〜20の半角数字が、B列に何らかのデータ
(例えばあいう〜ぬねの、の20文字のひらがなとします)が
あるとして、それらが順不同に並んでいるとします。

      A列   B列

 1行   19  ね

 2行    3  う

 3行    1    あ

 :  :  :

19行 20  の

20行 2  い

これらのデータをA列の数字の昇順でソートすると必ず下表のように

1の次が10、19の次が2になったりします。

      A列   B列

 1行    1  あ

 2行   10  こ

 3行   11    さ

 :  :  :

11行 19 ね

12行 2 い

13行 20  の

14行 3  う

 :  :  :

20行 9  け

これらを正確に1〜20でソートする方法はないものでしょうか?

(EXCEL2003での確認です。EXCEL2007では正確にソート出来ていました。
2007版から改善されたのでしょうか?)

よろしくお願いいたします。


 ◆A列の数字は、「数値」ではなく「文字列」ではありませんか?
 (Maron)

すいません。説明が不足しておりました。

A列には数字の前に半角アルファベットがありました。
ご指摘の通り文字列として認識されているかもしれません。

例えば

      A列   B列

 1行   K19  ね
 2行    K3  う
 3行    K1    あ
 :  :  : 
19行  K20  の 
20行   K2  い 

これらを普通にソートすると

      A列   B列

 1行    K1  あ
 2行   K10  こ
 3行   K11    さ
 :  :  : 
11行  K19   ね 
12行   K2   い 
13行  K20  の 
14行   K3  う 
 :  :  : 
20行   K9  け 

となってしまいます。これを正確にK1,K2,K3〜の順番でソートしたいのです。

よろしくお願いいたします。


 ◆このままでは、無理と思いますので、作業列を
 ◆作業列に、Kを除いた数値にして
 =MID(A1,2,50)*1
 ★この列をキーにして並べ替えをします
 (Maron)

またまた説明不足がありました。
(すいません)

アルファベットは1文字じゃないときもあります。
例えば、K1、MN1、XYZ1という具合に。

アドバイスいただいた命令文では、アルファベット1文字の

場合のみ(2文字目以降から数字になっている時)に

限られているようなので、アルファベット2文字以上の

場合が問題になってきます。

アルファベットの文字数に関係なく正確にソートはできないものでしょうか?

アドバイスよろしくお願い致します。


 まだ、ご説明に不足が有るように思います。

 もう一度、A列にあるデータのサンプル
 (もっと沢山・色々なバリエーションの物)
 を使い、ソート後はどの様に並んで居れば良いのか
 希望結果図も載せてみられるのが良いと思いますよ。

 (HANA)

ソート前とソート後の図を記載してみます。

<ソート前>
アルファベットとしてはいろんなバージョンがありますが
ソートしたい対象は一種類のアルファベットに対してのみです。

例えば
アルファベットKに対しては、K1〜K20に対してソートしたい

      A列   B列
 1行   K19  ね
 2行    K3  う
 3行    K1    あ
 :  :  : 
19行  K20  の 
20行   K2  い 

アルファベットKに対しては、MN1〜MN20に対してソートしたい

      A列   B列
 1行   MN19  ね
 2行    MN3  う
 3行    MN1    あ
 :  :  : 
19行  MN20  の 
20行   MN2  い 

アルファベットKに対しては、XYZ1〜XYZ20に対してソートしたい

      A列   B列
 1行   XYZ19  ね
 2行    XYZ3  う
 3行    XYZ1    あ
 :  :  : 
19行  XYZ20  の 
20行   XYZ2  い 

これらを普通にソートすると、アルファベットKを例にとると、

      A列   B列
 1行    K1  あ
 2行   K10  こ
 3行   K11    さ
 :  :  : 
11行  K19   ね 
12行   K2   い 
13行  K20  の 
14行   K3  う 
 :  :  : 
20行   K9  け 
となってしまいます。

これらを正確にK1,K2,K3〜、MN1,MN2,MN3〜、XYZ1,XYZ2,XYZ3〜の順番でソートしたいのです。

アルファベットKなら

      A列   B列
 1行    K1  あ
 2行   K2   い 
 3行   K3  う 
 :  :  : 
 9行   K9  け 
10行   K10  こ
11行   K11    さ
 :  :  : 
19行  K19   ね 
20行  K20  の 

アルファベットMNなら

      A列   B列
 1行   MN1  あ
 2行  MN2   い 
 3行  MN3  う 
 :  :  : 
 9行  MN9  け 
10行  MN10  こ
11行  MN11    さ
 :  :  : 
19行  MN19   ね 
20行  MN20  の 

アルファベットXYZなら

      A列   B列
 1行   XYZ1  あ
 2行  XYZ2   い 
 3行  XYZ3  う 
 :  :  : 
 9行  XYZ9  け 
10行  XYZ10  こ
11行  XYZ11    さ
 :  :  : 
19行  XYZ19   ね 
20行  XYZ20  の 

という具合にしたいです。

よろしくお願い致します。


 ◆アルファベット+数字の場合
 =LOOKUP(10^10,RIGHT(A1,COLUMN(1:1))*1)
 (Maron)

 一回のA列に色んなアルファベットが存在しない

 ↓のような事はない
	[A]
[1]	K19
[2]	K3
[3]	K1
[4]	XYZ19
[5]	XYZ3
[6]	MN20
[7]	MN2

 ってんなら、その都度式を書き直しても
 良いように思いますが・・・。

 先頭にアルファベットが1文字あるから
=MID(A1,2,50)*1
        ~2文字目から。
 先頭にアルファベットが2文字有るなら
=MID(A1,3,50)*1
        ~3文字目から。

 ってな具合に。

 (HANA)


Maronさん、HANAさん、

早速のアドバイスありがとうございます。

アドバイス通りやってみると数字のみ抽出出来ました。

同じ行のこれらの数字を抽出しソートすれば、問題点は解決出来そうです。

助かりました。本当にありがとうございます。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.