スプレッドシートに市区町村が含まれているが郵便番号が含まれていない住所の列がある場合、郵便番号を生成する数式を2番目の列に入力します。これを行う方法を知っていますか?
私は米国の住所を扱っていますが、他の国に関する回答も興味深いです。
更新:私は主にGoogleスプレッドシートでこれを行う方法があることを望んでいると思います。これを行うには膨大な郵便番号データベースにアクセスする必要があると思いますが、そのようなデータベースはすでにGoogleマップ内にあるようです。郵便番号なしで住所を入力すると、郵便番号付きの住所が返されます。マップがそのルックアップを実行できる場合、スプレッドシートでそれを実行する方法もあるかもしれません。
Googleスプレッドシートには、一連の 外部データ用の関数 があります。パラメータを渡してルックアップを行うサイトを見つける(または作成する)ことができる場合、これに似た式を次の場所に置くことができます。
Cell A1 (Address): 123 Main St
Cell B1 (City): Springfield
Cell C1 (State): MO
Cell D1 (combined address): =concatenate(A1,B1,C1)
Cell E1 (imported Zip code):
=importData(concatenate("http://zipfinder.com/search?addr=",D1))
これは架空のアイデアです。外部データの連結、インポートデータ、その他の関数は、Googleスプレッドシートにあります。 「zipfinder.com」は存在しません。 たくさんのサイト があり、アドレスから郵便番号を見つけるのに役立ちます。トリッキーな部分は、URLのアドレスデータを受け入れ、Googleスプレッドシートが使用するのに十分単純なものを返すものを見つけることです。
検証済みの住所データベースは非常に高価であるため、スプレッドシートには何も組み込まれません。
あなたのためにこれを行うオンラインサービスを見つけるかもしれません。たとえば、英国では Royal Mail Webサイトでは 郵便番号を検索 (英国の郵便番号に相当)を使用できますが、1日に15回の検索に制限されています。これは個人用です。企業はより多くを得るでしょう-しかし、あなたはサインアップしてそのために支払う必要があります。
他の国でも同様のサービスが提供されます。
this answer と同様のアプローチを使用して、Google MapsサービスでカスタムApps Script関数を記述できます。これを行うには、ツール...スクリプトエディタ...を開き、この関数を次の場所に貼り付けます。
function getZIP(address) {
var geo = Maps.newGeocoder().geocode(address);
var resultComponents = geo.results[0].address_components;
for (var i = 0; i < resultComponents.length; i++) {
if (resultComponents[i].types.indexOf('postal_code') > -1) {
return resultComponents[i].long_name;
}
}
}
次に、これをスプレッドシートのセルで呼び出すことができます。たとえば、ホワイトハウスに対して20500を正しく返します。
=getZIP("1600 Pennsylvania Ave. NW, Washington, DC")
他の一部のアプローチとは異なり、米国以外の場所でも機能します。エッフェル塔に対して正しく75007を返します。
=getZIP("Champ de Mars, 5 Avenue Anatole France, Paris, France")
何らかの外部アドレス検索ツールまたはサービスが必要です。多くの都市には複数の郵便番号があり、多くの都市には複数の郵便番号にまたがる通りがあるため、市/州だけでは、正しい郵便番号を決定する方法がないことがよくあります。/Zip式またはルックアップ。住所の郵便番号を見つける必要がある場合は、分解してサービスやツールの代金を支払う必要があります。それを回避する良い方法はありません。
はい-次のURLを使用して、Googleドキュメントシートで郵便番号を検索できるようになりました。
ステップ1:this landing page に、検索するアドレスを入力します。
ステップ2:ワシントンで「1245 5TH ST」アドレスを検索しましたDCで、URLは次のようになりました:
https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=1245+5TH+ST&address2=&city=Washington&state=DC&urbanCode=&postalCode=&Zip=
ステップ3:次の数式をコピーして貼り付け、CELL、CITY、STATEを置き換えます。
=Mid(importHTML(CONCATENATE("https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=",CELL,"&address2=&city=CITY&state=STATE&urbanCode=&postalCode=&Zip="),"list",15),Find("DC",importHTML(CONCATENATE("https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=",CELL,"&address2=&city=CITY&state=STATE&urbanCode=&postalCode=&Zip="),"list",15))+2,11)
ステップ3のURLはステップ2のURLと一致する必要があることに注意してください。セルは、ターゲットセル値に基づいて動的になります。
手順3の関数は、STATE値の後の11文字を抽出します。したがって、正しい値を取得できるようにMID関数を微調整する必要があります。これは私にとっては完璧に機能しました。
最後にもう1つ、Googleはシートごとに50のインポート関数のみを許可します。したがって、上記の方法では、一度に25の郵便番号しか見つけることができません。
Excelで行うのは難しいです。 SOAPツールキットを使用するか、Visual Studioを使用する必要があります。Microsoftが何を考えているのか不思議に思う必要があります。
Googleドキュメントスプレッドシートで行う方が簡単で、Excelにエクスポートできます。
GeoCoder.caのXML Webサービスを使用して、郵便番号をアドレスで検索できます。 Googleドキュメントでは、次の関数を使用します。
=importXML("http://geocoder.ca/?geoit=xml&showpostal=1&locate=" & A2,"//postal")
(A2は番地です)
この方法で緯度と経度を取得することもできます。
=importXML("http://geocoder.ca/?geoit=xml&showpostal=1&locate=" & A2,"//geodata")
GeoCoderは無料サービスの1日あたりのリクエストにスロットルがあることに注意してください。
カナダでは Canada Post web site は 郵便番号の検索 をアドレスで許可します(そして、私は毎日の制限に気づいていません)が、残念ながら、あなたのスプレッドシート。私もこれに対する潜在的な解決策を見ることに興味があります。私は、知らないものに対しては常に手動の郵便番号検索を使用してきました。
Excelスプレッドシート(またはCSV /タブ区切りファイル)を処理し、不足している郵便番号を追加するオンラインサービスがいくつかあります。価格は、サービスプロバイダーに応じて、数ドルから100ドル以上の範囲で変動します。サービスプロバイダーの中には、セットアップ料、処理料、および急ぎの注文料がかかるものもあります。
一部のサービスプロバイダーは、処理されたファイルを数分以内に返送できますが、「急ぎの処理」を要求するサービスプロバイダーは3営業日以上かかる場合があります。あなたの質問に基づいて、あなたはソフトウェアを購入し、オンサイトのソフトウェアソリューションのために何千ドルも落とすことに投資したくありません。その場合は、オンラインプロバイダーが最善の策です。
完全な開示のために、私はSmartyStreetsの創設者です。私たちは完全に自動化されたオンライン 住所確認 を提供しています。 Excelファイルを当社のWebサイトにドラッグアンドドロップすると、サイズに応じて約1〜2分で処理され、返送されます。
英国では、国内のすべての住所をリストした郵便番号住所ファイル(PAF)にアクセスする必要があります。 PAFへの直接アクセスには費用がかかりますが、少額ではありません。更新されたPAFデータへの無制限のアクセスに対して、1シートあたり年間200ポンドのような料金を支払いますが、毎月1万件以上のリクエストをスローします。
他のほとんどの地域はこの点で類似しているので、希望どおりにZipデータにアクセスするための正当な方法を見つけられないと思います。
データのRESTfulクエリでスプレッドシートにZipを直接挿入できるサイトを見つけたとしても、設定された期間に実行できるクエリの数に厳密な制限を実装していることは間違いありません。