人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

質問です
エクセルで文字列に番地が全角で含まれています
数字の若い順にならべたいのですが関数かマクロを教えてください。

あああああ1丁目1
あああああ1丁目10
あああああ1丁目11
あああああ1丁目2
あああああ1丁目3
あああああ1丁目4


あああああ1丁目1
あああああ1丁目2
あああああ1丁目3
あああああ1丁目4
あああああ1丁目10
あああああ1丁目11

のようになるようにお願いします


●質問者: inosisi
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● きゃづみぃ
●10ポイント

http://daredemopc.blog51.fc2.com/blog-entry-667.html

別の列に 「あああああ1丁目1」の列をコピーします。
区切り文字を使って
「あああああ1丁目」と「1」を区切ります。
それで 区切った方は 半角数値にして 「あああああ1丁目」と「1」の列でソートしたらいいでしょう。


inosisiさんのコメント
すみません ああ1 もあるんですが 数字と区切る方法はありますか

inosisiさんのコメント
ああと1も区切りたいのです

inosisiさんのコメント
文字列の右から1つと10の2つの数字を右列へ取り出したいのですが

きゃづみぃさんのコメント
区切り方は それぞれ 個別にやらないと難しいですね。

inosisiさんのコメント
ありがとうございます 関数(=RIGHT(A1,2)) 関数(=RIGHT(A1,1)) を2回やりましたが1度で済む方法はありますか

inosisiさんのコメント
1から99までの全角数字に限定してマクロで一度ですむマクロはできますか? B列1行目からとします

2 ● bg5551
●10ポイント

あああああ1丁目10
が、A1のセルにあるとすれば
関数(=RIGHT(A1,2))を入れれば、結果10が出ます。
それをソートしてあげれば順番に並びます。


inosisiさんのコメント
ありがとうございます 関数(=RIGHT(A1,2)) 関数(=RIGHT(A1,1)) を2回やりましたが1度で済む方法はありますか

3 ● kaiton
●80ポイント ベストアンサー

住所部分「あああああ」が全て同じなら
B1 =MID(A1,6,999) これを下にコピーして
その後、B列をコピーして、値で貼り付け
http://www.becoolusers.com/excel/paste-values01.html
B列で並び替えする。
ただし「1丁目1番地」が「1?1」とか「1丁目1」とか統一された表記でないと並び替えは思ったとおりになりません。
それと、1丁目10が1丁目2より前にきますが、この方法では実際のデータを見ないと、どのような解決方法があるか詳細はわかりません。


なので、番地表記がバラバラ又は住所がバラバラで番地だけ並び替えたい場合
あああああ1丁目2
あああああ1?20
あああああ1?1
いいいい1丁目1

http://www.becoolusers.com/excel/wizard-postcode.html
を参考に郵便番号変換ウィザードで住所から郵便番号で「バーコードデータ」をB列に変換します。
これで、B列に郵便番号7桁(例100-0001)と番地が8桁以降が「10000011-1」のように変換されます。
C列に =MID(B1,8,99) これを下にコピー
そして、上記と同様にコピーして値の貼り付け C列で並び替えします。

ただし、1-1,1-10,1-2,1-3のように並び替えになるので、既に回答のある区切り文字で「-」を指定して、複数列に分割して複数列で並び替える必要があるでしょう。
http://www.becoolusers.com/excel/text-to-columns.html
A1=東京都千代田区千代田1丁目2?3 を郵便番号変換で B1=10000011-2-3
B1=10000011-2-3 をMID関数で C1=1-2-3
C1=1-2-3 区切り位置で C1=1 D1=2 E1=3 になるので
複数列(E,D,C)で並び替えします。
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-sort.html
の複数条件の方法です。


全角のままの並び替えでないですが、上記の方法で可能なはずです。


kaitonさんのコメント
並び順の訂正 誤>複数列(E,D,C)で並び替えします。 正>複数列(C,D,E)で並び替えします。

kaitonさんのコメント
ご質問とその後のコメントの内容から、マクロで1回での操作&全角数字を数字順での並び替えをご希望のようですが、エクセルの仕様上(たぶんほとんどのソフトも同じ)全角数字の並び順は数字ではなく文字として処理するため、どうしても 1<10<11<2<20<21<3<30<31<4<40.. のような並び順になると思います。 なので、ご希望の動作をしようとすると丁目、番地、番、号などを分けて数字として並び替えする必要と判断しました。

inosisiさんのコメント
ありがとうございました。 郵便番号変換ウィザードのバーコードデータ変換を利用して上手くいきました 郵便番号も必要でしたので助かりました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ