No.4ベストアンサー
- 回答日時:
>正確に並び変えるには 丁目、番、号をそれぞれ別のセルに 分解して数字で入力しないと駄目です。
#3のご回答。これに対し、VBAですが、考えて見ました。
A列に住所があるとして、A、B列の間に4列列挿入してください。そして下記を実行してください。
ツール-マクロ-VBE
挿入-標準モジュールで出てくる画面にコピーペースト。
カーソルを途中行において、F5キーを押すと実行します。
Sub test01()
n = "0123456789"
d = Range("A1").CurrentRegion.Rows.Count
For r = 1 To d
s = Cells(r, 1)
m = ""
found = "n"
k = 2
hiphn = 0
moji = 0
For i = 1 To Len(s)
For j = 1 To 10
If Mid(s, i, 1) = Mid(n, j, 1) Then
m = m & Mid(n, j, 1)
found = "y"
GoTo p01
Else
End If
Next j
If Mid(s, i, 1) = "-" Then
hiphn = hiphn + 1
' MsgBox hiphn
Else
If found = "y" Then Exit For
End If
If found = "y" Then
If k <= hiphn + 2 Then
Cells(r, k) = m
k = k + 1
found = "n"
m = ""
Else
End If
Else
End If
p01:
Next i
If found = "y" Then
If k <= hiphn + 2 Then
Cells(r, k) = m
Else
End If
End If
Next r
End Sub
(テスト例)
新町2-23-4AIマンション305
新町2-23-5
新町2マンション1-2
新町2-3
新町2-3マンション1-4
新町2
新町3マンション3-34
に対し
B、C、D、E列は
新町2234
新町2235
新町2
新町23
新町23
新町2
新町3
になりました。
E列でソート。
BCD列でソートでどうでしょうか。
この回答への補足
ご回答大変ありがたく思います。
とても役に立つと思いましたのでやってみましたが、どういう訳か判らないのですが、実行されませんでした。
No.5
- 回答日時:
#4の補足について
動かない理由についての推測
(1)プログラムロジックが不適切。
(1)’プログラムが入力済の住所に対して不適切。
(2)VBEの利用の不慣れ
が考えられます。
(2)について
(A)VBEの標準モジュールにプログラムコード(#4のSUBからEnd SUBまで)をコピー・貼りつけ出来ましたか。
(B)カーソルを、SUBからEnd SUBまでの、どこかの行に置いてクリックし、実行-Subユーザーフォームの実行をクリック(F5キーを押しても良い)をしましたか。
(1)(1)’ですが
この種の問題は、住所データの表現(入力済み)内容と密接にかかわってくるので(住所文字列の表現状態の「規則性を頼りに」プログラムを組んでいるので)、住所データが目の前にない、小生にとっては、完全を期すのが難しいタイプの問題です。
貴殿の既に入力済の住所の表記状態について、私のプログラムで都合が悪くなりそうなケース=困るケースを述べますので、該当・非該当をチェックして見てください。
(A)住所はA列にあること。県市からマンション名まで
1セルに入っていること。
またA1セルから、第1人目が始まっていること。BCDE列を列挿入で空白列を増やすこと。
(B)「全体が空白セル(行)」(なにも住所入力のない行)が混じってないこと。
(C)住所の文字列は「全角」文字ばかりであること。文字列途中に「空白(半角や全角)」が混じってないこと。
(D)町字までの部分に「数字がない」こと。例、1本松町、4日市などは困る。町字のあとに空白がないこと。
(E)全角ハイフンで町・番・号の間は区切りがあり、半角のハイフンでないこと。
(F)住所録のあるワークシートがアクチブになっていますか。別のシートがアクチブになっていませんか。
新しいブックのシートに住所をコピーしてやって見てください。
○「実行されません」とはどういう状態でしょうか。
この回答への補足
元のデータは地名が書かれた後のセルに(1-2-3-1101セントラルビル)というかたちで書かれていますが、漢字以外は全て半角です(カッコ、数字、ハイフォン、カタカナ)。
データが全部で約1000件分ありますので何件かをピックアップして全角に書き換えることで実行する事ができ、並べ替が確認出来ました。
感謝いたします。
#4で回答して頂いたデータの一部分(数字とハイフォン)を半角に修正する事によって、問題なく対応し解決することが出来ました。
本当にありがとうございました。
No.3
- 回答日時:
問題は表示桁数があっていないからです。
正確に並び返るには 丁目、番、号をそれぞれ別のセルに
分解して数字で入力しないと駄目です。
現状のままでするなら、0を加えて桁数を同じにします。
「1-02-03」という具合です。
これだと住所印刷には使えませから隣の使わない列、
3列に入れる方法が一番です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Excel(エクセル) エクセルの並び替えについて 5 2022/07/11 00:49
- Excel(エクセル) オフィスをLibreOfficeからmicrosoft 2013に変えました。 1 2022/05/09 00:28
- その他(Microsoft Office) 逆順 3 2023/08/24 09:30
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Excel(エクセル) Excelのソート(並べ替え) 2 2022/05/15 22:54
- その他(ソフトウェア) Googleスプレッドシートについて 5 2022/05/07 11:46
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) エクセルでの色付け 5 2022/10/09 18:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
数式が入ったセルを含めて、数...
-
SUMに含まれる範囲から特定のセ...
-
別のセルに値が入力されたら、...
-
列の数字に100をかけたい
-
エクセルでセルの値分の個数の...
-
Excel上でのデータ数字が連番で...
-
エクセル:横長の表を改行して...
-
エクセルで表示されている数字...
-
エクセルで曜日に応じた文字を...
-
HYPERLINKとADDRESSとMATCHの組...
-
【EXCEL】IPアドレス範囲に該当...
-
【EXCEL】指定したセルの値を他...
-
エクセルで公平にチーム分けす...
-
EXCELの特定セルを編集不可・コ...
-
EXCELでA列とB列の文字が合わせ...
-
【エクセル】同じ文字を文頭に...
-
C列にF列の担当者(A〜)を順番...
-
スペースとスペースの間の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excel上でのデータ数字が連番で...
-
列の数字に100をかけたい
-
スペースとスペースの間の文字...
-
別のセルに値が入力されたら、...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
エクセル:横長の表を改行して...
-
[関数について]わかる方教えて...
-
エクセル関数に詳しい方教えて...
-
エクセルで、毎日の走行距離(...
-
エクセルのsumifでかけ算してか...
-
HYPERLINKとADDRESSとMATCHの組...
-
エクセルで曜日に応じた文字を...
-
入退社日より各月末の在籍者数...
-
エクセルで1列全部10倍したい
-
エクセルで小数を含む数値の抽出
おすすめ情報