OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

住所の並び替え

  • すぐに回答を!
  • 質問No.210161
  • 閲覧数1325
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 60% (21/35)

エクセルで住所録を作っています。住所の若い順に並び替えをしたいのですが、うまくいきません。
というのも、**1丁目1-1のあとに**1丁目2-1を並べたくても**1丁目11-1のように並んでしまいます。一桁が先に並ぶ方法がないでしょうか?とっても困ってます!!
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル9

ベストアンサー率 50% (37/73)

**1丁目01-01 **1丁目02-01 **1丁目11-01 という風に桁数をそろえたらどうでしょうか。
**1丁目01-01
**1丁目02-01
**1丁目11-01 という風に桁数をそろえたらどうでしょうか。

  • 回答No.2
レベル13

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

住所の数が多かったり、**1丁目02-01とかの入力にしたくない場合の対応例です。 住所の『番地、号』部分を2桁化するユーザー定義関数を作ってみました。これでソートします。 例えば、住所の列の横(C列として)に1列挿入(D列)して、D列に、=番地補正(C2) のようにします。 『番地、号』部分が2桁化されると思うので、この列を基準にソートします。 通常は、この列を非表示にしておけば気にならないでし ...続きを読む
住所の数が多かったり、**1丁目02-01とかの入力にしたくない場合の対応例です。
住所の『番地、号』部分を2桁化するユーザー定義関数を作ってみました。これでソートします。
例えば、住所の列の横(C列として)に1列挿入(D列)して、D列に、=番地補正(C2) のようにします。
『番地、号』部分が2桁化されると思うので、この列を基準にソートします。
通常は、この列を非表示にしておけば気にならないでしょう。
『丁目と-』を基準に考えています。入力具合が完全には分かりませんが、うまくいかない場合があれば補足して下さい。

ツール→マクロ→Visual Basic Editor でVBE画面に移り、 挿入→標準モジュールで標準モジュールを挿入します。出てきたコードウインドウに下記マクロを貼り付けます。

Public Function 番地補正(rg As Range)
  Dim Jyusyo As String '住所
  Dim pot1 As Integer '丁目の位置
  Dim pot2 As Integer '『-』の位置
  Dim wk1 As String '『-』以下の1文字のチェック用変数
  Dim wk2 As String '『-』以下の2文字のチェック用変数

  Jyusyo = rg.Text
  Jyusyo = Application.Substitute(Jyusyo, "-", "*") '号の後の『-』を無視するため
  Jyusyo = Application.Substitute(Jyusyo, " ", "*") '号の後の『 』を無視するため
  '番地の2桁化
  pot1 = InStr(Jyusyo, "丁目") + 1
  pot2 = InStr(pot1, Jyusyo, "*")
  If pot2 - pot1 = 2 Then
    Jyusyo = Left(Jyusyo, pot1) & "0" & Right(Jyusyo, Len(Jyusyo) - pot1)
  End If

  '号の2桁化
  pot2 = InStr(pot1, Jyusyo, "*")
  wk1 = Mid(Jyusyo, pot2 + 1, 1)
  wk2 = Mid(Jyusyo & "*", pot2 + 1, 2)
  If IsNumeric(wk1) = True And IsNumeric(wk2) = False Then
    Jyusyo = Left(Jyusyo, pot2) & "0" & Right(Jyusyo, Len(Jyusyo) - pot2)
  End If

  番地補正 = Jyusyo
End Function
お礼コメント
kimikimi

お礼率 60% (21/35)

とりあえずやってみたのですが、うまくいきませんでした。データが大量なので、この方法をもう少し研究してみたいと思います。ありがとうございました。
投稿日時 - 2002-02-19 18:55:49
  • 回答No.3
レベル14

ベストアンサー率 68% (2350/3407)

それでは,私はNo.1のgonta_gomaさんの方法をもう少しすっきりとさせたやつを・・・。 **1丁目 1- 1 **1丁目 2- 1 **1丁目11- 1 とスペースを入れるのはどうでしょう? 軒数が多い場合は,No.2のnishi6さんの方法で・・・。
それでは,私はNo.1のgonta_gomaさんの方法をもう少しすっきりとさせたやつを・・・。

**1丁目 1- 1
**1丁目 2- 1
**1丁目11- 1

とスペースを入れるのはどうでしょう?
軒数が多い場合は,No.2のnishi6さんの方法で・・・。
  • 回答No.4
レベル9

ベストアンサー率 18% (9/49)

住所データの入っているセルを指定して、 ツールバーの「データ」→「区切り位置」で 「カンマやタブなど・・・」を選択して次へ 区切り文字を「-」としてセルを分割して 並べ替えると上手くいくと思います。 同じような質問が他に出てますので、詳しくは そちらの回答を参考になさっては如何でしょう? ...続きを読む
住所データの入っているセルを指定して、
ツールバーの「データ」→「区切り位置」で
「カンマやタブなど・・・」を選択して次へ
区切り文字を「-」としてセルを分割して
並べ替えると上手くいくと思います。

同じような質問が他に出てますので、詳しくは
そちらの回答を参考になさっては如何でしょう?
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ