[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『半角数字が一桁からある場合に正確にソートする方法』(こもこも)
お世話になります。
下記のように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)
早速のアドバイスありがとうございます。
アドバイス通りやってみると数字のみ抽出出来ました。
同じ行のこれらの数字を抽出しソートすれば、問題点は解決出来そうです。
助かりました。本当にありがとうございます。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.