• ベストアンサー

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

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

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

  • ベストアンサー
  • akio_myau
  • ベストアンサー率34% (515/1480)
回答No.1

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

ozon_ozon
質問者

お礼

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

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

エクセルでは、ソートは列単位です。 他のソートユテリィティソフトなどではソートキーの 開始桁と文字列長さを指定できるのは当たり前ですが、 エクセルはそうではない。 そこでソートキーが入った列を別に作る必要があります。 -で分ける方法(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列に分離する。

ozon_ozon
質問者

お礼

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

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

直接は無理なので並べ替えたい文字を抽出する必要があります。 位置が決まっているなら =MID(A1,6,1) で"R"が抽出できます。 位置が決まっていない場合は =MID(A1,FIND("-",A1,1)+1,1) で"R"が抽出できます。 この式を入力した列で並び返してください。

ozon_ozon
質問者

お礼

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

回答No.2

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

ozon_ozon
質問者

お礼

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

関連するQ&A