こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで途中の文字を基準に並び替えをしたい

エクセルで途中の文字を基準に並び替えをしたいのです。

たとえば、
セルA1に 2004-R0501
セルA2に 2003-E0403
セルA3に 2001-G0341
という文字が入力されています。
ハイフォンの次のアルファベットを基準に昇順したいのです。昇順するとA2→A3→A1となるようにです。
こんなことは可能でしょうか?
ちなみに、関数は少しなら理解できますが、
マクロはまったく理解できません。

よろしくお願いいたします。
ちなみにエクセル2000で、
OSは98です。

投稿日時 - 2004-06-08 14:13:49

QNo.884885

すぐに回答ほしいです

質問者が選んだベストアンサー

途中から指定して並べ替えの機能は無いので
B列にright(a1,5)といった形で
検索に必要な情報の列を作成して
検索を行ったらどうでしょうか。

投稿日時 - 2004-06-08 14:20:21

お礼

ありがとうございました。この方法でできました。

投稿日時 - 2004-06-09 12:15:23

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

エクセルでは、ソートは列単位です。
他のソートユテリィティソフトなどではソートキーの
開始桁と文字列長さを指定できるのは当たり前ですが、
エクセルはそうではない。
そこでソートキーが入った列を別に作る必要があります。
-で分ける方法(MID、LEFT関数を使う)の別方法を記します。
1列が2列に分離させるため列挿入します。
A列にソートキーを含むデータがあるとしてB列にカーソルを置いて挿入ー列
例えばA1:A3を範囲指定
データ
区切り位置
「カンマや・・・」がONであること確認して
次へ
(区切り位置)で「その他」にONにし、ボックスに「-」
をいれる。
次へ完了
(例データ)A1:A3
2-345
1-234
34-345
(結果)
2345
1234
34345
元のデータを残したい時は、2列挿入し、A列をB列に複写し、B列を上記操作でB、C列に分離する。

投稿日時 - 2004-06-08 15:33:20

お礼

なるほど、分離する方法ですね。この方法は知ってたのに思い出せませんでした。^^;
今回は#1・2さんの方法でやってしまいましたが、次回参考にさせていただきます。ありがとうございました。

投稿日時 - 2004-06-09 12:19:38

ANo.3

直接は無理なので並べ替えたい文字を抽出する必要があります。

位置が決まっているなら
=MID(A1,6,1)
で"R"が抽出できます。
位置が決まっていない場合は
=MID(A1,FIND("-",A1,1)+1,1)
で"R"が抽出できます。

この式を入力した列で並び返してください。

投稿日時 - 2004-06-08 14:24:01

お礼

ありがとうございました。♯1・2さんの方法で今回は試しました。教えていただいた関数は次回役立てたいと思います。

投稿日時 - 2004-06-09 12:17:30

ANo.2

右端の文字数が変わらないのであれば、B列に
B1=RIGHT(A1,5)
B2=RIGHT(A2,5)
・・・・・
とし、B列を昇順でソートします。

投稿日時 - 2004-06-08 14:20:59

お礼

ありがとうございました。#1さんと同じくこの方法で問題が解決しました。

投稿日時 - 2004-06-09 12:16:18

あなたにオススメの質問