dポイントプレゼントキャンペーン実施中!

エクセルで、郵便番号を住所変換したいのですが、どうすればいいのでしょう?
windows10 を使用しています。初心者に分かりやすく教えていただけないでしょうか?

質問者からの補足コメント

  • うーん・・・

    ごめんなさい、怒らせてしまうかもですが、
    勉強不足なので、「WEBSERVICE という関数」が分かりません。
    A1/B1もどこの事か分からず、下部の数式を入れてくださったのに、使えません。
    すみません、以前には簡単にできたのに、はがき宛名ウイザードは、ワード上にありますが、
    それとは違いますよね?

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/12/20 11:07

A 回答 (4件)

ここに私が書いたものと同じもののサンプルがありますから、


列を再表示して、数式を見てみてください。
(C列~G列を選択して、右クリック-再表示)--> 隠してある数式が見られます。
http://degitekunote.com/blog/2015/01/23/excel201 …

なお、確かに、その関数は難しい部類に入ると思います。
1日中とは言いませんが、もっと分かりやすい別の方法を探してはみても、見つけられません。JavaScriptやXMLに詳しい人は、ここのカテゴリで数名いらっしゃいます。

いまの段階の部分だけを説明させていただきます。

Window10 でなくても十分に動きます。
以下は、VBAで解決する方法です。
URLは、"zipcloud.ibsnet.co.jp/api/search?zipcode=" & .....
これは、事業所番号は含まれていません。

'//標準モジュール
Function zip2address(ZipNumber As String)
 Dim objHTTP As Object
 Dim htlog As String
 Dim obj As Object
 Dim json As Object
 Dim objAdr As Object
 Dim adr As Variant
 Dim strURL As String
 On Error GoTo ErrHandler

 strURL = "http://zipcloud.ibsnet.co.jp/api/search?zipcode=" & Replace$(ZipNumber, "-", "", , , vbTextCompare)
 Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

 objHTTP.Open "GET", strURL, False
 objHTTP.Send

 If objHTTP.Status = 200 Then
  htlog = objHTTP.ResponseText
 Else
  Exit Function
 End If

 Set obj = CreateObject("ScriptControl")
 obj.Language = "JScript"
 obj.addcode "function jsonParse(s){ return eval('('+s+')');}"

 Set json = obj.CodeObject.jsonParse(htlog)

 Set objAdr = CallByName(CallByName(json, "results", VbGet), "0", VbGet)
 adr = CallByName(objAdr, "address1", VbGet)
 adr = adr & CallByName(objAdr, "address2", VbGet)
 adr = adr & CallByName(objAdr, "address3", VbGet)
 zip2address = adr
 Exit Function
ErrHandler:
 If Err() > 0 Then
  zip2address = "err..."
 End If
End Function

これは、=Zip2Address(A1) というように書きます。

さらに、関数の説明は、画像で分かると思います。数式は、No.2のものです。
注意点は、途中で改行を入れないことです。先に数式ボックスは大きく広げたほうが入れやすいです。なお、通信ができない状態のエラーは、CALC!と出てきます。これが出ると、しばらく元にもどるまで時間がかかります。

また、VlookUpを使った方法やデータベースオブジェクトを使ったものなど、様々ありますから、ひとつがダメだとしても、他のものがありますから、決して諦めないでください。
「エクセルで郵便番号から住所を」の回答画像4
    • good
    • 0
この回答へのお礼

たくさんの時間を使って教えて下さって、ほんとうにうれしいです。
ご推薦のURLからできそうです。おっしゃるように、時間をかけて
習得しますね? ありがとう (^▽^)/

ベストアンサーに選ばせていただきました。
よいお年をお迎えください。

お礼日時:2019/12/21 10:01

No.2の回答者です。



> 「WEBSERVICE という関数」が分かりません。
最初に、「Excel 2013以降」でないと、関数がありません。
WEBSERVICEという関数がないのでしょうか?
もし、そうだったら、同じ仕組みの自家製関数を、VBAのプログラムのソースで提示します。

> 以前には簡単にできたのに、はがき宛名ウイザードは、ワード上にありますが、
はがき宛名ウィザードで住所は出てくるのでしょうか、私はあまり覚えがありません。郵便番号ウィザードは違うだけでなく、専用郵便番号辞書が更新されていません。

IMEでも、郵便番号で変換はしますが、数が多いとちょっと面倒です。

ヘルプより。(使える条件として足らない部分はありますか)
--------------------------------------
WEBSERVICE 関数
WEBSERVICE関数は、インターネットまたはイントラネット上の web サービスからデータを返します。

注:
WEBSERVICE 関数は、Windows 版 Excel 2013 以降でのみ使用できます。

WEBSERVICE 関数は Excel for Mac の機能ギャラリーに表示されますが、Windows オペレーティングシステムの機能に依存しているため、Mac では結果が返されません。

書式

WEBSERVICE(URL)
--------------------------------------
    • good
    • 1
この回答へのお礼

たくさんの時間を使って教えて下さって、ほんとうにうれしいです。
ご推薦のURLからできそうです。おっしゃるように、時間をかけて
習得しますね? ありがとう (^▽^)/

ベストアンサーに選ばせていただきました。
よいお年をお迎えください。

お礼日時:2019/12/21 10:01

郵便番号ウィザードがなくなってからは、Excel 2013以降になりますが、関数を使って呼び出します。

WEBSERVICE という関数で、Web APIを呼び出してあげます。ですから、ネット環境が整わないところでは、呼び出せません。

例えば、
A1に、1000002

と入れましたら、長い式になりますが、
B1に、以下の数式を入れますと、東京都から表示することが可能です。

=FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn="&$A1),"/ZIP_ …[@state]/@state")&FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn="&$A1),"/ZIP_ …[@city]/@city")&FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn="&$A1),"/ZIP_ …[@address]/@address")
この回答への補足あり
    • good
    • 1
この回答へのお礼

とても丁寧に説明して下さっているのに、ダメダ~~
分からないんです。泣
多分、日本語を教えて、と言っているのに、五十音があることさえ分からない人なんでしょうね?

横に来て、手取足取りが必要な私の状況で、安易に質問してしまったようです。
ごめんなさいね。ご好意を無駄にして。
ありがとうございました。m(_ _ )m

補足に入力したのですが、確認ボタンが表示されず、ここに書きました。それもごめんなさい。

お礼日時:2019/12/20 16:31

こんにちは



一番簡単そうなのは、郵便番号辞書を利用する方法でしょうか?
https://support.microsoft.com/ja-jp/help/879115


そ例外ですと、外部の郵便番号一覧表を利用する方法になりそうですが、番号をきちんとメンテナンスしていそうなのは、(↓)ココでしょうか?
https://www.post.japanpost.jp/kt/zip/menu.cgi?p= …
こちらを利用するとしても、ネット環境になってしまうので、エクセルからの場合は、VBA等を利用して変換後の住所を取得するといったことになりそうです。
    • good
    • 1
この回答へのお礼

じつはこの一覧もやってみたのですが、説明がWindows10ではなかったのと、
ワードからの説明なので、途中であきらめたような訳です。

ごめんなさい。初心者中の初心者で、何を検索しても説明文さえ理解できない状態です。
ありがとうございました。

お礼日時:2019/12/20 16:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!