エクセル2013で郵便番号から住所を表示する方法

このQ&Aのポイント
  • エクセル2013から搭載されたWEBSERVICEという関数を使って郵便番号→住所の変換をしたいと思っています。具体的には、FILTERXML関数を使用して簡単に住所変換できるのですが、都道府県~市までの情報が表記されません。どのようにすればよいか教えてください。
  • エクセル2013で郵便番号から住所を表示する方法が知りたいです。WEBSERVICEという関数を使用して簡単に住所変換できるのですが、都道府県~市までの情報が表記されません。具体的な手順や方法を教えてください。
  • エクセル2013を使って郵便番号から住所を表示したいです。WEBSERVICEという関数を使用して住所変換を行うことができるのですが、都道府県~市までの情報が表記されません。どのようにすれば正確な住所を表示することができるでしょうか。お知恵をお貸しください。
回答を見る
  • ベストアンサー

エクセル2013で 郵便番号から住所を表示する

いつもお世話になります。 エクセル2013から搭載された WEBSERVICEという関数を使って 郵便番号→住所の変換をしたいと思っています。 《参考にしたサイト》 http://www.ka-net.org/blog/?p=1933 ↑こちらに紹介されていた =FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" & $A2),"/ZIP_result/ADDRESS_value/value[@address]/@address") を使うと、簡単に住所変換できるのですが 都道府県~市までの情報が 表記されません。 ●●県●●市 も表記できるようにしたいのですが どのようにすればよいか ご存じの方いらしたら教えてください。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

お示しの > 《参考にしたサイト》 > http://www.ka-net.org/blog/?p=1933 からリンクをたどって「xmlサンプル」まで確認されましたか? (もっとも、確認していればこの質問には陥らなかったのでしょうけれど。) さて、リンクをたどって http://zip.cgis.biz/xml/zip.php?zn=0600000 にたどり着けたとして話を進めます。 郵便局が発行している郵便番号データは通常の場合、 ・都道府県名 ・市区町村名 ・町域名 ・(事業所固有) の4欄に分かれています。 で、上記サンプルと照らし合わせたとき、 ・都道府県名=state ・市区町村名=city ・町域名=address ・(事業所=company) であることが読み取れます。 これを踏まえてお示しの「式」 > =FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" & $A2),"/ZIP_result/ADDRESS_value/value[@address]/@address") を見てみると、きっと末尾の「value[@address]/@address」が何やら怪しいと思いませんか? ここを例えば「value[@state]/@state」などとしたら、何が返ってくるでしょう? 市区町村に関しても同様だと思われます。 あとは「&」でも使って結合してやればどうとでもなりますね。 ※当然ながら2010以前のバージョンでは正しく機能しません。  ほかのPCでの閲覧・他所への配布を考えるならコレはオススメできません。  ということだけ、付記しておきます。

Hisagon
質問者

お礼

ご回答ありがとうございます♪ 実は、質問したあとに [@address]/@addressの部分に気がついて stateとcityに変えればよいのだとわかったのですが 現状、別々の列に情報を出しているような状態です>< (A列に郵便番号、B列に府県、C列に市区郡、D列にアドレスみたいな~) 回答者様のおっしゃってる >あとは「&」でも使って結合してやればどうとでもなりますね。 のやり方を、良かったら教えていただけないでしょうか? 関数は既存のものしか使ったことがなく 自分で組み立てる方法(基礎)を知りません。 どうぞ、よろしくお願いします。

その他の回答 (2)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

ん? > >あとは「&」でも使って結合してやればどうとでもなりますね。 > のやり方を ん?エクセルの基礎ですが?   ="A"&"B" です。 詳細まで説明するつもりはありませんので APIを探し当てたんですから、 「エクセル 文字列を結合」辺りで検索して 基礎をじっくり学習なさってくださいませ。

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.1

> =FILTERXML(WEBSERVICE("http://zip.cgis.biz/xml/zip.php?zn=" & $A2),"/ZIP_result/ADDRESS_value/value[@address]/@address") > を使うと、簡単に住所変換できるのですが > 都道府県~市までの情報が 表記されません。 WEBSERVICE関数ではありませんが、 従来と同様Excel2013でも「郵便番号変換ウィザード」は使用できるようです。 ご参考まで。 「Excel2013(エクセル2013)基本講座:Excel2013で郵便番号変換ウィザードは使えるのか?」 http://www4.synapse.ne.jp/yone/excel2013/excel2013_yubin.html

関連するQ&A

  • phpの用語

    phpの用語について。 郵便番号で住所を特定するapiを試してみたのですが、 以下のようなエラーになってしまいます。(エラーの意味はわかります。 allow_url_fopen=0だからfopen出来ない。ですよね?)(xfreeサーバーです。 http:// wrapper(ラッパー?) この、ラッパーってなんですか?また、このような用語について覚えていきたいのですが、やりながらリファレンスを見つつわからなかったことを調べていくって感じで大丈夫ですか? Warning: fopen(): http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/hoge/public_html/zip_serach_xml.php on line 218 Warning: fopen(http://zip.cgis.biz/xml/zip.php?zn=7392115): failed to open stream: no suitable wrapper could be found in /home/hoge/public_html/zip_serach_xml.php on line 218 could not open XML

    • ベストアンサー
    • PHP
  • PHPで郵便番号を検索し、住所を表示したい

    テキストボックスに郵便番号を入れ、検索ボタンを押すと、テキストボックス内に住所が入ってくるようにプログラムを作っています。 例えば郵便番号「640941」で検索すると、Stateには「北海道」、Cityには「札幌市」、Addressには、「中央区旭ケ丘」が入ってくるようにしたいのですが、Stateに「北海道札幌市中央区旭ヶ丘」と入ってきてしまいます。 以下に実際のソースを載せます。どのように修正すればよいでしょうか? 参考url:http://webcake.no003.info/webdesign/jquery-ajax-php-post-sample.html ファイル名「postal.html」 <!DOCTYPE html> <html> <head> <title>新規登録</title> <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ /** * 送信ボタンクリック */ $('#send').click(function(){ //POSTメソッドで送るデータを定義します var data = {パラメータ名 : 値}; var data = {Zip : $('#Zip').val()}; /** * Ajax通信メソッド * @param type : HTTP通信の種類 * @param url : リクエスト送信先のURL * @param data : サーバに送信する値 */ $.ajax({ type: "POST", url: "postal.php", data: data, /** * Ajax通信が成功した場合に呼び出されるメソッド */ success: function(data, dataType) { //successのブロック内は、Ajax通信が成功した場合に呼び出される //PHPから返ってきたデータの表示 $("#State").val(data); }, /** * Ajax通信が失敗した場合に呼び出されるメソッド */ error: function(XMLHttpRequest, textStatus, errorThrown){ //エラーメッセージの表示 alert('Error : ' + errorThrown); } }); //サブミット後、ページをリロードしないようにする return false; }); }); </script> </head> <body> <h1>ZIPCODE</h1> <form method="post" > <table> <tr> <th>Zip</th> <td><input type="text" name="Zip" id="Zip" size="8"/> <input type="button" id="send" name="send" value="send" ></td> </tr> <tr><th>State</th><td><input type="text" id="State" name="State" size="10"/></td></tr> <tr><th>City</th><td><input type="text" id="City" name="City" size="10"/></td></tr> <tr><th>Address</th><td><input type="text" id="Address" name="City" size="10"/></td></tr> </table> </form> </body> </html> ファイル名「postal」 <?php $Zip=$_POST['Zip']; $State=""; $City=""; $Address=""; get_state($Zip); /* 郵便番号(zipcode)を入れると住所を表示する関数 */ function get_state($Zip) { //接続文字列 $dsn='mysql:dbname=stuff;host=localhost'; $user='user'; $password='password'; $dbh= new PDO($dsn,$user,$password); $dbh->query('SET NAMES UTF-8'); $sql='SELECT * FROM zip WHERE Zip_Code='.$Zip; $stmt=$dbh->prepare($sql); $stmt->execute(); while(1) { $rec=$stmt->fetch(PDO::FETCH_ASSOC); if($rec==false) { break; } echo $rec['State']; echo $rec['City']; echo $rec['Address']; } } $dbh=null; ?> SQL文は以下の通りです。 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; CREATE TABLE IF NOT EXISTS `zip` ( `Jis_Code` int(5) NOT NULL, `Old_Zip_Code` int(5) NOT NULL, `Zip_Code` int(7) NOT NULL, `State_Kana` varchar(60) NOT NULL, `City_Kana` varchar(100) NOT NULL, `Address_Kana` varchar(200) NOT NULL, `State` varchar(60) NOT NULL, `City` varchar(100) NOT NULL, `Address` varchar(200) NOT NULL, `AUX1` tinyint(1) NOT NULL, `AUX2` tinyint(1) NOT NULL, `AUX3` tinyint(1) NOT NULL, `AUX4` tinyint(1) NOT NULL, `AUX5` tinyint(1) NOT NULL, `AUX6` tinyint(1) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='郵便番号リスト'; INSERT INTO `zip` (`Jis_Code`, `Old_Zip_Code`, `Zip_Code`, `State_Kana`, `City_Kana`, `Address_Kana`, `State`, `City`, `Address`, `AUX1`, `AUX2`, `AUX3`, `AUX4`, `AUX5`, `AUX6`) VALUES (1101, 60, 600000, 'ホッカイドウ', 'サッポロシチュウオウク', 'イカニケイサイガナイバアイ', '北海道', '札幌市中央区', '以下に掲載がない場合', 0, 0, 0, 0, 0, 0), (1101, 64, 640941, 'ホッカイドウ', 'サッポロシチュウオウク', 'アサヒガオカ', '北海道', '札幌市中央区', '旭ケ丘', 0, 0, 1, 0, 0, 0), (1101, 60, 600041, 'ホッカイドウ', 'サッポロシチュウオウク', 'オオドオリヒガシ', '北海道', '札幌市中央区', '大通東', 0, 0, 1, 0, 0, 0);

    • ベストアンサー
    • PHP
  • 郵便番号を入れると住所が出るマクロを組みたい

    A列に郵便番号を入れると、(例:123-4567)B列に住所が出るマクロを組みたいのですが なかなかできません。例えばA1セルに入力するとB1セルに。A4セルに入力するとB4セルに 出るといった感じです。インターネットで調べながら、 Option Explicit ' ワークシートのChangeイベント記述 Private Sub Worksheet_Change(ByVal Target As Range) Dim xlAPP As Application ' 郵便番号セル以外では動作させない If Target.Address <> "$A$1" Then Exit Sub ' (1) ' 3桁以上の郵便番号があり、住所がブランクの場合のみ住所を変換させる If ((Len(Cells(1, 1).Value) >= 3) And (Cells(1, 2).Value = "")) Then ' (2) Set xlAPP = Application xlAPP.EnableEvents = False ' (3) ' 郵便番号を全角変換し住所に転記 Cells(1, 2).Value = StrConv(Target.Value, vbWide) ' (4) ' 住所のセルを選択 Cells(1, 2).Select ' (5) ' F2 → Shift+Home → F13 を擬装入力する SendKeys "{F2}", True ' 編集モード ' (6) SendKeys "+{HOME}", True ' 文字列全体を選択 ' (7) SendKeys "{F13}", True ' 再変換(MS-IME) ' (8) xlAPP.EnableEvents = True End If End Sub というコードを作ったのですが、これはA1セルしか対応しておらず、A列全体で対応できません。 何か方法があればご教授いただけたら幸いです。

  • 横着者の住所録...

    住所録を作成してるのですが、変換モードを人名・地名にして郵便番号を入力して、住所に変換しますよね。とっても便利なんですが、都道府県から出てしまうのって、どうしようもないのでしょうか? 作成した後、××市となるように消してるので、何か設定で変えられたらと思うんですが...。すごく常識的なことなら、スミマセン!

  • 英語での住所の書き方教えて下さい

    ##県**市!!区++町1-2-3-456 変なかき方ですみません。このような住所の場合 どの様に書けばいいのでしょうか?英語だと前後が逆になるのは知っているのですが・・ 分かりにくい表記をしてますが よろしくお願いします。 それとよく海外サイトで ’Zip Code'入力とありますが何の事ですか?ご存知ならこれもお願いします。

  • PayPal 住所について

    PayPalの住所登録について教えて下さい。 Postal code  :郵便番号 Prefecture   :県 City       :町+市 Address Line1 :町域+番地 Address Line2 :アパート名 こんな感じで書いたんですが、登録住所の確認を英語表記で見ると 名前 町域+番地 アパート名 町+市、県、郵便番号 の並びになっています。 これは表記がバグってるだけなのでしょうか? それとも、正しくなるよう登録の修正が必要なのでしょうか? よろしくお願いします。

  • 英語での住所記載

    アメリカビザ申請の際の住所記載方法についての質問です。 私の住所は〇〇県××郡△△町□□123のように表記するのですが、××郡はどこに記載すれば良いでしょうか? ちなみに住所は下記のように記載しなければなりません。 Address 1 Address 2( optional) City State Country Zip code 字数オーバーの為、city欄に××郡△△町は一緒に記載出来ませんでした。友人には××郡は記載しない、もしくはaddress 2に記載してはどうかとアドバイスを受けました。わかる方がいらっしゃいましたら、アドバイスをお願いします。

  • MYSQLのクエリのデータをテキストエリアにセットしたい。

    いつも拝見し、勉強させていただいております。 MYSQLを使用してメールフォームの入力支援に郵便番号から それぞれ都道府県、市区郡、住所、住所1とテキストエリア内に表示させたいのですがうまく表示されません。 ソースは以下の通りです。 //フォームの箇所のソース <input type="text" name="addNo" value="<?= $inpadd ?>" size="15"> <input type="text" name="address" value = "<?= $ken ?>" size="20"> <input type="text" name="city"value = "<?= $city ?>" size="40"> <input type="text" name="address" value = "<?= $address ?>"size="40"> MYSQLの結果表示のソース //データベースに問い合わせ $query ="select * from ZIP_T where CODE_C='{$addNo}'"; //クエリの結果を返す $result_id = doquery($query,$conn_id); // 結果セットからキー配列(連想配列)へ $ZipCode = mysql_fetch_assoc($result_id); //結果セットを返す。 $inpadd = $ZipCode["CODE_C"]; $ken = $ZipCode["KEN_C"]; $city = $ZipCode["ADD1_C"]; $address = $ZipCode["ADD2_C"]; 以上です。データベースのカラムは郵便番号が”CODE_C” 都道府県が”KEN_C”市町村が"ADD1_C"その他の住所を ”ADD2_C”としています。 何かいいお知恵がございましたらお貸しください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • onBlur→検索→結果の表示

    ●現在:onBlur→サブウインドウ→検索→ラジオクリック→親ウインドウのフォームに結果表示 ●やりたいこと:onBlur→検索→フォームに結果表示 (サブウインドウなしで同じ結果にしたい) 【以下は親ウインドウ】zip.asp 郵便番号を入れるとサブウインドウに住所を表示します。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.zip.value; subWin = window.open('zip2.asp?zip=' + n) } // --> </script> <form name="myFORM"> 郵便番号<input type="text" name="zip" onBlur="set()"><BR> 住所<INPUT TYPE="TEXT" NAME="address" SIZE="50"> </form> 【以下はサブウインドウ】zip2.asp ボタンをクリックして親ウインドウに検索結果を渡しています。 <INPUT TYPE="radio" NAME="myRB" onClick="window.opener.document.myFORM.address.value='<%= GetAddress(Request("zip")) %>';window.close()"><%= GetAddress(Request("zip")) %> #GetAddressでaspにて郵便番号から住所を検索しています。

  • simplexmlでアクセス頻度を自制する方法

    大量の住所データから緯度経度を取得してデータベースに格納したいです。 そこで、以下のAPIを利用することにしました。 http://www.geocoding.jp/api/ 「XML出力までに3~5秒かかりますので、5秒間に1回以上のアクセスは避けてください」とあるため、これに従いたいのですが、どうすればよいでしょうか? 以下のような感じのスクリプトを組むつもりですが、このままだと5秒間に複数回のアクセスが行ってしまうと思われるため。 <?php $pdo=new PDO("mysql:host=localhost;dbname=dbname","username","password"); foreach($pdo->query("select address from tablebamel")as $value){ $address[]=$value['address']; } for($i=0;isset($address[$i]);$i++){ $xml=simplexml_load_file("http://www.geocoding.jp/api/?v=1.1&q=$address[$i]"); $latitude=$xml->coordinate->lat; $longitude=$xml->coordinate->lng; $sth=$pdo->query("select*from branches where address='$address[$i]'"); $result=$sth->fetch(PDO::FETCH_ASSOC); $pdo->query("replace into tablename values($result[id],'$address[$i]',$latitude,$longitude)"); } ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう