- ベストアンサー
エクセルで途中の文字を基準に並び替えをしたい
エクセルで途中の文字を基準に並び替えをしたいのです。 たとえば、 セルA1に 2004-R0501 セルA2に 2003-E0403 セルA3に 2001-G0341 という文字が入力されています。 ハイフォンの次のアルファベットを基準に昇順したいのです。昇順するとA2→A3→A1となるようにです。 こんなことは可能でしょうか? ちなみに、関数は少しなら理解できますが、 マクロはまったく理解できません。 よろしくお願いいたします。 ちなみにエクセル2000で、 OSは98です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
途中から指定して並べ替えの機能は無いので B列にright(a1,5)といった形で 検索に必要な情報の列を作成して 検索を行ったらどうでしょうか。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルでは、ソートは列単位です。 他のソートユテリィティソフトなどではソートキーの 開始桁と文字列長さを指定できるのは当たり前ですが、 エクセルはそうではない。 そこでソートキーが入った列を別に作る必要があります。 -で分ける方法(MID、LEFT関数を使う)の別方法を記します。 1列が2列に分離させるため列挿入します。 A列にソートキーを含むデータがあるとしてB列にカーソルを置いて挿入ー列 例えばA1:A3を範囲指定 データ 区切り位置 「カンマや・・・」がONであること確認して 次へ (区切り位置)で「その他」にONにし、ボックスに「-」 をいれる。 次へ完了 (例データ)A1:A3 2-345 1-234 34-345 (結果) 2 345 1 234 34 345 元のデータを残したい時は、2列挿入し、A列をB列に複写し、B列を上記操作でB、C列に分離する。
お礼
なるほど、分離する方法ですね。この方法は知ってたのに思い出せませんでした。^^; 今回は#1・2さんの方法でやってしまいましたが、次回参考にさせていただきます。ありがとうございました。
- mshr1962
- ベストアンサー率39% (7417/18945)
直接は無理なので並べ替えたい文字を抽出する必要があります。 位置が決まっているなら =MID(A1,6,1) で"R"が抽出できます。 位置が決まっていない場合は =MID(A1,FIND("-",A1,1)+1,1) で"R"が抽出できます。 この式を入力した列で並び返してください。
お礼
ありがとうございました。♯1・2さんの方法で今回は試しました。教えていただいた関数は次回役立てたいと思います。
- SAKURAMYLOVE
- ベストアンサー率30% (162/533)
右端の文字数が変わらないのであれば、B列に B1=RIGHT(A1,5) B2=RIGHT(A2,5) ・・・・・ とし、B列を昇順でソートします。
お礼
ありがとうございました。#1さんと同じくこの方法で問題が解決しました。
お礼
ありがとうございました。この方法でできました。