• ベストアンサー

郵便番号変換で表示した住所を省略する方法

たびたびお世話になっています。 エクセルで住所録を作っています。 ≪住所≫人名・地名変換で郵便番号→住所の変換 ≪郵便番号≫関数’=ASC(LEFT(PHONETIC(△),8))で郵便番号を表示 しています。 住所の「県名」が不要なのですが、表示しないようにする方法はありますか? 検索してみたのですが、要領が悪いのか、見つけられませんでした。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

変換された住所はすでに単なる文字列なので その一部を都合のいい部分で非表示にはできないと思います。 先頭から、都道府県までの文字を取り除く処理はできると思いますが、別にセルが必要だったり、置換する行為が必要だったりします。 例えばAの列に住所が入っているとして 適当な列に「県名」を取り除いた部分を入れるとすると =RIGHT(A1,LEN(A1)-IF(OR(MID(A1,3,1)="府",MID(A1,3,1)="道",MID(A1,3,1)="都",MID(A1,3,1)="県"),3,IF(MID(A1,4,1)="県",4,0))) といれてコピーすればいいです。 これと元の住所を値で置き換えたりするとふりがな情報が取り出せなくなるので、 住所の隣のセルに一列挿入し上記を式を入れた後 元の住所の列を非表示にすればいいかと思います。

noname#13352
質問者

お礼

やはり別のセルが必要となりますね。 “都”は必要ないのでもう少し短くできそうです。あ、神奈川と和歌山と鹿児島がいなければもっと簡単にできる!・・・むりでした。おりました。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

ユーザー関数を作りました。 ツール-マクロ-VBE-挿入-標準モジュールで出てくる画面に下記をコピーして貼りつける。 Function bbb(a) f = Array("県", "府", "都", "道") For i = 0 To 3 p = InStr(a, f(i)) If p <> 0 Then bbb = Mid(a, p + 1, Len(a) - p) Exit Function End If Next i End Function A列に住所があるとして、B1に=bbb(A1)といれ、下に複写します。 サンプル例 (A列)     (B列)関数の結果値 愛知県豊田市 豊田市 徳島県鳴門市 鳴門市 京都府城陽市 城陽市 東京都青梅市 青梅市 北海道室蘭市 室蘭市 神奈川県相模原市 相模原市 IF文で、ネストが深くなりそうな時は、ユーザー関数を考えるのも一法です。

noname#13352
質問者

お礼

マクロですか!! マクロのページから参考書は開いておらず… でも最近ようやくエクセルの楽しさがわかり始めたので、調べながらやってみたいと思います。 目から鱗、発想の転換をありがとうございました!

関連するQ&A

専門家に質問してみよう