質問です

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

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


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

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

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/02/07 11:43:09
  • 終了:2014/02/10 13:02:09

ベストアンサー

id:kaiton No.3

kaiton回答回数259ベストアンサー獲得回数342014/02/07 17:36:14

ポイント80pt

住所部分「あああああ」が全て同じなら
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
の複数条件の方法です。


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

他1件のコメントを見る
id:kaiton

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

2014/02/07 22:17:35
id:inosisi4141

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

2014/02/10 13:01:10

その他の回答(2件)

id:taknt No.1

きゃづみぃ回答回数13481ベストアンサー獲得回数11982014/02/07 13:31:37

ポイント10pt

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

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

他4件のコメントを見る
id:inosisi4141

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

2014/02/07 16:35:57
id:inosisi4141

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

2014/02/07 16:38:16
id:bg5551 No.2

bg5551回答回数1184ベストアンサー獲得回数802014/02/07 16:15:01

ポイント10pt

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

id:inosisi4141

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

2014/02/07 16:35:32
id:kaiton No.3

kaiton回答回数259ベストアンサー獲得回数342014/02/07 17:36:14ここでベストアンサー

ポイント80pt

住所部分「あああああ」が全て同じなら
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
の複数条件の方法です。


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

他1件のコメントを見る
id:kaiton

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

2014/02/07 22:17:35
id:inosisi4141

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

2014/02/10 13:01:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません