解決済み

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

  • 暇なときにでも
  • 質問No.260031
  • 閲覧数1103
  • ありがとう数4
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 66% (26/39)

どうしたら良いでしょうか。教えてください。千代田区の住所が入力されているセルで、
並び替えをした場合、全角で入力されているせいで、
外神田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

ベストアンサー率 58% (515/877)

外神田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

お礼率 66% (26/39)

すばらしいです!
完全に並び替わりました。ありがとうございました。
投稿日時 - 2002-04-26 17:15:18
Be MORE 7・12 OK-チップでイイコトはじまる

その他の回答 (全4件)

  • 回答No.5

ベストアンサー率 25% (45/179)

△丁目、○番地、◇号の間が、
全て-で統一(半角でもかまいませんが)されているのが前提ですが、
△丁目の抽出
=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

お礼率 66% (26/39)

いろいろなやり方があるのですね。
一つの関数の中に、抽出条件を複合させていくことが苦手なので、これからいろいろと勉強していきたいと思います。ご回答ありがとうございました。
投稿日時 - 2002-04-26 17:50:01
  • 回答No.4

ベストアンサー率 68% (791/1163)

ソートできるように町名と番地の分離、桁揃えをします。

住所が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

お礼率 66% (26/39)

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

すばらしいです。ありがとうございました。
投稿日時 - 2002-04-26 17:45:44
  • 回答No.2

ベストアンサー率 34% (664/1947)

「外神田1-10-1」を『外神田』と『1-10-1』とにセルを分けるやり方ならあります。

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

どうでしょうか。
  • 回答No.1

ベストアンサー率 31% (726/2280)

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

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ