• ベストアンサー

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

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

  • エクセルで全角と半角を分離する方法って?

    エクセル2000で、住所の管理をしているのですが、全角文字と半角文字(丁目、番地等)を分離したいのですが簡単な方法はあるのでしょうか。 例 セルA1 東京都千代田区千代田1-1-1 これを全角と半角で分離して セルA1 東京都千代田区千代田 セルB1 1-1-1 というように、1行に並ぶとうれしいのですが (質問時の見た目は縦に並んでいますが、横に並ばせたい)

  • セル内で漢字と共存している全角・半角数字の統一

    質問なんですが。 数百とデータが入力された住所録の中で下記の様に住所が入力されているセル列があるんですけど、 ○○市○○町1-2-3 ○○区○○町4-5-6 と丁目・番地・号が半角全角数字が各データ毎にバラバラに入力されている住所データ列のセル内の数字を全て半角に統一したいのですが、やはり各セルを修正していくしかないんでしょうか? 他に方法がありましたら教えてください>< よろしくお願いします。 Excel2003を使用しております。

  • 【エクセル】半角数字→全角数字

    エクセルですでに半角で入力されている数字を全角数字に一括変換する方法はありますか? (1)住所録で半角入力されている番地等の数字のみをを全角に変換する方法 (2)電話番号など、全て数字で入力しているセルを一括で全角に変換する方法

  • エクセルで1つのセル内に半角、全角数字を入力する方法を教えてください。

    エクセルで1つのセルに半角数字と全角数字の両方を入力したいのですができません。 入力方法を教えてください。例:12345

  • 全角文字と半角数字を分けるには?

    ひとつのセル内に、全角文字と半角数字が混ざっているシート(簡単な住所録)があります。 最終的には文字のみ残したいのですがどういう方法がありますか? たくさんあるデータの中で文字数がばらばらで、頭から何文字目を削除、等の手は使えません。 たぶん検索や置き換えで、半角数字を拾い出せると楽だと思うのですが、どうしたらいいかわからないので・・・宜しくお願いします。

  • Excel2003の文字列の並び替えで

    数字を含む文字列の並び替えで、下記のようになり数字部分が並びません。原因は何でしょうか?   1 11:14   2 300   3 1408   4 1941   5 007 カジノロワイヤル    6 007-01 ドクター・ノー   7 007-02 ロシアより愛をこめて   8 12モンキーズ   9 12人の怒れる男  10 2001年宇宙の旅  11 2010年  12 21グラム  13 28日後  14 34丁目の奇跡  15 60セカンズ これを、5,6,7,1,8,9,3,4,10,11,12,13,2,14,15 の順にしたいのですが、出来ません。文字サイズ、英数、全角半角等、統一しましたが不可です。 宜しくお願い致します。

  • エクセル 同一セル内の文字・数字を分けたい

    お世話になります。 セル内にある「11あいう」などを「11」と「あいう」といった感じで二つのセルに分けたいのですが、関数でいい方法ありませんか? 半角数字・全角文字です。 「10」~「99」の間にしか「あいう」は付いておらず、「あいう」以外の文字はありません。 宜しくお願いいたします。

  • 【VBA】文字列の場所入れ替え

    こちらの識者の方々にはいつもお世話になっています。 VBAの質問です。 環境は下記になります。 OS=windowsXP SP3 Office=Excel2003(11.8347.8403) SP3 A列に住所のデータがあるのですが、形式がちょっと特殊で、 A1 千代田区千代田1-1-1-301千代田マンション1号棟 A2 千代田区千代田2-3-4 というな形になっています。(A1,A2はセル番地表示で、その文字列がセルにあるわけではありません) 並び順が、市名(区名)・町名・丁目・番地・号地・部屋番号・物件名となっています。 データの定義は、丁目・番地・号地・部屋番号については半角数字・市名(区名)・町名・物件名は数字やアルファベットを含むものであっても全角であることは担保されております。 戸建てであればいいのですが、集合住宅の場合、物件名と部屋番号が入れ替わってしまっています。 これを、できればA列には住所、B列には物件名・(全角スペース)・部屋番号とわけたいのです。   A           B 1 千代田区千代田1-1-1  千代田マンション1号棟 301 2 千代田区千代田2-3-4 1.最後の文字列が全角か半角かで処理を分岐、(半角ならスルー、全角なら2.以降に) 2.セル内の最後の半角文字の次の文字から最後の文字までを抜き出す 3.最後のハイフン(-)の次の文字から全角文字の前の文字までを抜き出す 4.2と3で抜き出した文字列を合体 という流れでやろうと思い、まずは1のコードを、StrConv(Right(Range("A1"),1), vbNarrow) で検査してみたのですが、vbNarrowは半角に変換できる文字列のみ対応しているようで、漢字のものはスルーされてしまい、検査段階で既に頓挫しています。 上記のような場合、どのようなコードが適していますでしょうか。 質問に不備不足等ございましたらご指摘ください。 ご面倒お掛けしますがよろしくお願いします。

  • Excelでセルに入っている数字又は文字のうしろに決められた数のスペースを入れるようにするには?

    エクセルでセルに入っている数字又は文字のうしろに決められた数のスペースを入れるようにすることって出来ますか? 例えば、 A1セルに 123456 という数字が入っていた場合 123456 の後ろに半角スペースを6コつけて 「123456_ _ _ _ _ _ 」 いう風に。 B1セルに 山田太郎 という文字が入っていた場合 山田太郎のあとに全角スペースを5コ入れて 「山田太郎_ _ _ _ _ 」 セルの数字を入力すると半角又は全角スペースを決められている数だけ自動で入力されるようにしたいのですが 何かいい方法はないでしょうか? accessでマクロ使ったほうが簡単かもしれないんですが、accessあまり分からないので・・。 説明がわかりにくくて申し訳ないんですがよろしくお願いします!!

  • エクセルのセル内に全角数字を入力したいのにエンターを押すと自動で半角になってしまいます。

    お世話になっております。 エクセルのセルに「202」と全角で入力したいのですが、全角で入力してもエンターを押すと勝手に半角数字に切り替わってしまいます。 全角のまま入力する方法はありますか? アドバイス宜しくお願い致します。

専門家に質問してみよう