• ベストアンサー

エクセル:文字列+全角数字が入力されたセルの並び替えについて

どうしたら良いでしょうか。教えてください。千代田区の住所が入力されているセルで、 並び替えをした場合、全角で入力されているせいで、 外神田1-1-1 外神田1-10-1 外神田1-2-1  となってしまいます。 これを 外神田1-1-1 外神田1-2-1 外神田1-10-1 というように、○丁目以降を順に並び替えるにはどうすれば簡単に出来るのでしょうか。全角数字を半角数字にしてもうまくいきません。 文字列と数字を分割させることは出来ますでしょうか? 住所の長さが外神田の場合(3文字)、神田佐久間町の場合(6文字)というように、決まった文字数でないので、LEFTやMIDやRIGHTでセルを別けることが容易にいきません。 ご回答いただければとても助かります。宜しくお願いいたします。

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

  • ベストアンサー
回答No.3

外神田1-1-1 外神田1-10-1 外神田1-2-1 これがA1:A3に入力されているとします。 1.A1:A3を選択する。 2.[データ]-[区切り位置]から表示されるボックスで、   「カンマやタブなどの…」を選択し[次へ]。 3.区切り文字として「その他」のみを選択し、右のボッ   クスに - を入力して完了します。 これで"-"で区切られたデータが分離されます。 あとはA,B,C列の優先順位で並べ替えしてから再結合させ ればよいわけです。  例)=A1&"-"&B1&"-"&C1 ただし、「外神田」の次の1以外は半角数字に変換されて いますので、全角への変換を望まれる場合は、JIS関数を 組合わせる必要があります。  例)=A1&"-"&JIS(B1)&"-"&JIS(C1)

garfield
質問者

お礼

すばらしいです! 完全に並び替わりました。ありがとうございました。

その他の回答 (4)

  • oresama
  • ベストアンサー率25% (45/179)
回答No.5

△丁目、○番地、◇号の間が、 全て-で統一(半角でもかまいませんが)されているのが前提ですが、 △丁目の抽出 =MID(A1,SEARCH("-",A1,1)-1,1) ○番地以降の抽出 =MID(A5,SEARCH("-",A5,1)+1,SEARCH("-",A5,SEARCH("-",A5,1)+1)-(SEARCH("-",A5,1)+1)) ◇号の抽出 =RIGHT(A1,LEN(A1)-SEARCH("-",A1,SEARCH("-",A1,1)+1)) これらの抽出結果を元に、 順番にソートしていけばいかがでしょう?

garfield
質問者

お礼

いろいろなやり方があるのですね。 一つの関数の中に、抽出条件を複合させていくことが苦手なので、これからいろいろと勉強していきたいと思います。ご回答ありがとうございました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

ソートできるように町名と番地の分離、桁揃えをします。 住所がB2にあるとします。  C2 =LEFT(B2,MIN(FIND({1,2,3,4,5,6,7,8,9,0},ASC(B2)&"1234567890"))-1)  D2 =ASC(SUBSTITUTE(B2,C2,""))  E2 =FIND("-",ASC(D2))  F2 =FIND("-",ASC(D2),E2+1)  G2 =LEFT(D2,1)&"-"&RIGHT("0"&MID(D2,E2+1,F2-E2-1),2)&"-"&RIGHT("0"&RIGHT(D2,LEN(D2)-F2),2) C2は 町名を取り出し D2は 町名を消去し半角に変換 E2は 最初の"-"の位置 F2は 2つ目の"-"の位置 G2は 丁目番地号の桁揃え を行っています。長くなるので作業用のセルを使ってみました。 C列、G列でソートすることになります。

garfield
質問者

お礼

深い関数をご教授いただきありがとうございます。 コピーペーストで作業してみました。 すばらしいです。ありがとうございました。

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.2

「外神田1-10-1」を『外神田』と『1-10-1』とにセルを分けるやり方ならあります。 ○住所の入った該当セル、またはいっぺんに行うなら列を選択 (複数列は出来ない) ○メニューバー「データ」→「区切り位置」を選択 ○「区切り位置指定ウィザード」の「元データの形式」を”スペースによって右または左に揃えられた固定長フィールドのデータ”へチェック→次へ ○「データのプレビュー」でどこで区切るか、ルーラーにカーソルでドラッグ→線で区切られる→次へ ○区切られて別々になった列の「G/標準」にカーソルをそれぞれ当てて黒く反転させる→「列のデータ形式」を”文字列”にチェック→完了 どうでしょうか。

  • ADEMU
  • ベストアンサー率31% (726/2280)
回答No.1

一番簡単な方法は1-1-1を1- 1-1とスペースをいれることです。 ただ、データベース量によります。少なければ簡単ですが、大量となると修正に時間がかかりますが、他の方法は無理だと思います。 文字と数字をいれていても所詮セル内は文字として認識していますので数字という概念はないと思います。

関連するQ&A