Google Sheetsで住所をジオコーディングする方法:確実に使える4つの方法

Google Sheetsでジオコーディングする方法:CSV、=GEOCODE()関数、Apps Scriptバッチ処理、逆ジオコーディング。1日100行無料。

| April 16, 2026
Google Sheetsで住所をジオコーディングする方法:確実に使える4つの方法

Google Sheetsに住所データがあり、緯度・経度の座標が必要な方は、まさに適切な場所に来ました。顧客の所在地をマッピングしたり、配送ルートを計画したり、店舗検索機能を構築する場合でも、Google Sheetsでのジオコーディングは、正しいやり方を誰も教えてくれない最も一般的なデータ作業の一つです。

問題は?Google Sheetsにはジオコーディング機能が組み込まれていないことです。=GEOCODE()のような関数は存在しません。しかし、4つの実用的な方法があり、コード不要の方法から完全自動のバッチ処理まで対応できます。

このガイドでは、Google Sheetsで住所をジオコーディングする各アプローチを紹介します。シンプルなコピー&ペーストのワークフローからカスタムApps Script関数まで。すべてのコード例は実際に動作し、CSV2GEOプラットフォームですぐに使えます。

それでは始めましょう。

Google Sheetsで住所をジオコーディングする必要があるのは誰か?

方法を詳しく説明する前に、一般的にジオコーディングが必要な方を紹介します:

📍

マーケティングチーム

地域ターゲティングキャンペーンのための顧客所在地マッピング。

🚚

配送オペレーション

ルート計画のための配送先住所の座標変換。

🏢

不動産会社

インタラクティブな物件検索マップのための物件情報のジオコーディング。

📊

研究者

アンケートや公的記録からの地理データ分析。

🛒

Eコマース

店舗検索機能の構築と配送エリアの計算。

🏥

医療

アクセス分析と施設計画のための患者所在地マッピング。

共通点は?スプレッドシートに住所があること。座標が必要なこと。そして1,000件の検索に500円も払いたくないこと。

方法1:コード不要 — CSVエクスポート、CSV2GEOにアップロード、貼り付け

最適な用途:コードを一切書かずに座標を取得したい方。

これはスプレッドシートをジオコーディングする最もシンプルなアプローチです。APIキー不要、スクリプト不要、技術的な設定不要。

ステップ1:Google SheetsをCSVにエクスポート

住所が入ったGoogle Sheetsを開きます。ファイル > ダウンロード > カンマ区切り値(.csv)を選択します。

住所データがきれいであることを確認してください。通り、市区町村、都道府県、郵便番号、国などの列、または最低限、完全な住所が1つの列に含まれている必要があります。

ステップ2:CSV2GEOにアップロード

CSV2GEOにアクセスし、CSVファイルをドロップゾーンにドラッグします。プラットフォームが自動的に列を検出します:

  • 通り — 住所の列
  • 市区町村 — 市町村名
  • 都道府県 — 県名や地域名
  • 郵便番号
  • 国 — 国名またはISOコード

処理をクリックすると、CSV2GEOが200以上の国の4億6,100万以上の住所データベースを使って各行をジオコーディングします。

ステップ3:結果をダウンロード

処理後、ジオコーディングされたファイルをダウンロードします。元のすべての列に加えて、緯度、経度、フォーマット済み住所、精度スコアが含まれます。

ステップ4:Google Sheetsに貼り付け

ダウンロードしたCSVをGoogle Sheetsで開くか(ファイル > インポート)、緯度と経度の列を元のシートにコピーするだけです。

以上です。コード不要、APIキー不要、設定不要無料ジオコーディングでは1日100行が無料で利用できます。

方法2:カスタムApps Script関数 — =GEOCODE(A2)

最適な用途:シート内で数式のような体験を求めるユーザー。

この方法はGoogle Apps ScriptとCSV2GEOジオコーディングAPIを使って、カスタム=GEOCODE()関数を作成します。

ステップ1:APIキーを取得

CSV2GEO APIキーにアクセスし、無料キーを生成します。無料プランには1日1,000 APIリクエストが含まれます。

ステップ2:Apps Scriptエディタを開く

Google Sheetsで、拡張機能 > Apps Scriptに移動します。

ステップ3:ジオコーディング関数を追加

既存のコードを削除し、以下を貼り付けます:

/**
 * 住所をジオコーディングしてlat, lngを返す
 * @param {string} address ジオコーディングする住所
 * @param {string} country ISOの国コード(任意、例:"JP")
 * @return {string} "latitude, longitude"
 * @customfunction
 */
function GEOCODE(address, country) {
  if (!address) return "";
  const API_KEY = "APIキーをここに入力";
  const url = "https://api.csv2geo.com/v1/geocode"
    + "?q=" + encodeURIComponent(address)
    + (country ? "&country=" + country : "")
    + "&api_key=" + API_KEY;

  const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
  const data = JSON.parse(response.getContentText());

  if (data.results && data.results.length > 0) {
    const loc = data.results[0].location;
    return loc.lat + ", " + loc.lng;
  }
  return "見つかりません";
}

ステップ4:シートで使用する

スクリプトを保存(Ctrl+S)し、シートに戻ります:

=GEOCODE("東京都千代田区丸の内1-1", "JP")

結果:35.6812, 139.7671

セル参照も使用できます:

=GEOCODE(A2, B2)

A列に住所、B列に国コードが入っている場合です。

重要な注意:カスタム関数は1つずつ実行されます。500行の場合、それぞれが個別のAPIコールを行います。大量データには方法3を使用してください。

方法3:Apps Scriptメニューによるバッチジオコーディング

最適な用途:数百から数千の住所を効率的に処理する場合。

この方法はシートに「ジオコーディング」メニューを追加し、列全体をワンクリックでジオコーディングします。

ステップ1:スクリプトを追加

拡張機能 > Apps Scriptを開き、以下を貼り付けます:

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('ジオコーディング')
    .addItem('すべての住所をジオコーディング', 'geocodeAll')
    .addItem('逆ジオコーディング(選択範囲)', 'reverseGeocodeSelected')
    .addToUi();
}

function geocodeAll() {
  const API_KEY = "APIキーをここに入力";
  const sheet = SpreadsheetApp.getActiveSheet();
  const lastRow = sheet.getLastRow();

  for (let row = 2; row <= lastRow; row++) {
    if (sheet.getRange(row, 6).getValue()) continue;
    const address = sheet.getRange(row, 1).getValue();
    const country = sheet.getRange(row, 5).getValue();
    if (!address) continue;

    const url = "https://api.csv2geo.com/v1/geocode"
      + "?q=" + encodeURIComponent(address)
      + (country ? "&country=" + country : "")
      + "&api_key=" + API_KEY;

    try {
      const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
      const data = JSON.parse(response.getContentText());
      if (data.results && data.results.length > 0) {
        const r = data.results[0];
        sheet.getRange(row, 6).setValue(r.location.lat);
        sheet.getRange(row, 7).setValue(r.location.lng);
        sheet.getRange(row, 8).setValue(r.accuracy_score);
      }
    } catch (e) {
      sheet.getRange(row, 6).setValue("エラー: " + e.message);
    }
    Utilities.sleep(200);
    if (row % 50 === 0) {
      SpreadsheetApp.getActiveSpreadsheet().toast(
        "処理済み " + row + " / " + lastRow, "ジオコーディング", 3);
    }
  }
  SpreadsheetApp.getActiveSpreadsheet().toast("完了!", "ジオコーディング");
}

ステップ2:シートを整理する

A(住所)B(市区町村)C(都道府県)D(郵便番号)E(国)F(緯度)G(経度)H(信頼度)
東京都千代田区丸の内1-1千代田区東京都100-0005JP自動自動自動

ステップ3:ジオコーダーを実行

シートをリロードします。「ジオコーディング」メニューが表示されます。ジオコーディング > すべての住所をジオコーディングをクリックします。

スクリプトは200msの間隔で行を処理します。500件の住所で約2分かかります。

ヒント:1,000件以上の住所の場合は、数日に分散するか、CSVにエクスポートしてバッチジオコーディングを使用してください。

方法4:Google Sheetsでの逆ジオコーディング

最適な用途:すでに緯度・経度があり、住所が必要な場合。

これは正方向のジオコーディングの逆です。GPS座標があり、対応する住所が必要な場合。これが逆ジオコーディングです。

逆ジオコーディング関数

function REVERSE_GEOCODE(lat, lng) {
  if (!lat || !lng) return "";
  const API_KEY = "APIキーをここに入力";
  const url = "https://api.csv2geo.com/v1/reverse"
    + "?lat=" + lat + "&lng=" + lng + "&api_key=" + API_KEY;
  const response = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
  const data = JSON.parse(response.getContentText());
  if (data.results && data.results.length > 0) return data.results[0].formatted_address;
  return "見つかりません";
}

使い方:

=REVERSE_GEOCODE(35.6812, 139.7671)

結果:東京都千代田区丸の内1-1, 100-0005, JP

APIレスポンスの理解

CSV2GEO APIを呼び出すと、以下のようなレスポンスが返ります:

{
  "results": [{
    "formatted_address": "東京都千代田区丸の内1-1, 100-0005, JP",
    "location": { "lat": 35.6812, "lng": 139.7671 },
    "accuracy": "rooftop",
    "accuracy_score": 0.98,
    "components": {
      "house_number": "1-1",
      "street": "丸の内",
      "city": "千代田区",
      "state": "東京都",
      "postcode": "100-0005",
      "country": "JP"
    }
  }]
}

accuracy_scoreフィールドが重要です。0.95以上 = 建物レベルの精度。0.7〜0.95 = 通りレベル。0.7未満 = 市区町村または郵便番号レベルのみ。

比較:どの方法を選ぶべきか?

方法難易度速度最適な用途無料プラン
1. CSV + CSV2GEOなし⭐⭐⭐⭐⭐単発の作業100行/日
2. =GEOCODE()基本⭐⭐10〜50行1,000リクエスト/日
3. バッチメニュー基本⭐⭐⭐⭐100〜5,000行1,000リクエスト/日
4. 逆ジオコーディング基本⭐⭐⭐座標 → 住所1,000リクエスト/日

おすすめ方法1は単発の作業に。方法3は定期的な使用に。10,000行を超える場合は、バッチジオコーディングを直接使用してください。

ヒントとベストプラクティス

1. 住所をクリーンにする

入力がゴミなら出力もゴミ。ジオコーディング前に:

  • 空白を削除:=TRIM(A2)
  • 略語を統一:「丁目」vs「-」、「番地」vs「-」
  • 国コードを含める:JP、US、DEなどで精度が向上
  • 住所を結合:=A2 & ", " & B2 & ", " & C2 & " " & D2

2. 必ず国を含める

精度を最も改善するのは国を指定することです。「丸の内1-1」は世界中の複数の場所に存在し得ます。「JP」を追加すれば即座に曖昧さが解消されます。

3. 大量データにはバッチ処理

=GEOCODE()は10〜50行に適しています。それ以上はバッチメニュー(方法3)を使うか、CSVにエクスポートしてCSV2GEOバッチジオコーディングを使用してください。ファイルインポートは大量データに対して10倍高速です。

4. キャッシュを活用する

同じ住所を2回ジオコーディングするのは無駄です。座標が既に存在するか確認しましょう:

if (sheet.getRange(row, 6).getValue()) continue;

5. エラーを処理する

一部の住所はジオコーディングできません — タイプミス、不完全なデータ。スクリプトは「見つかりません」または「エラー」を返すので、それらを特定できます。

6. API使用量を監視する

無料プランでは1日1,000リクエストを提供しています。5,000行の場合は5日に分散するか、上位プランにアップグレードしてください。

7. 自動化にはAPIを活用

定期的なジオコーディングには、フル機能のジオコーディングAPIで自動ワークフローを構築してください。CSV2GEOは正方向ジオコーディング、逆ジオコーディング、バッチ処理、場所検索、行政境界を網羅する19のエンドポイントを提供しています。

よくある質問

Google Sheetsでのジオコーディングは無料ですか?

はい。コード不要のCSV方法では1日100行が無料。API方法では1日1,000リクエストが利用可能です。

何件の住所をジオコーディングできますか?

無料で1日1,000件。50,000件以上の場合はCSVにエクスポートしてバッチジオコーディングを使用してください。

APIキーは必要ですか?

方法2、3、4のみ必要です。方法1は何も不要 — CSV2GEOにアップロードするだけです。

海外の住所にも対応していますか?

はい。CSV2GEOは200以上の国4億6,100万以上の住所をカバーしています。ISOコード(JP、DE、FR)を含めてください。オーストラリアブラジルのガイドもご覧ください。

精度はどのくらいですか?

きちんとフォーマットされた住所の場合、結果の90%以上が建物レベルの精度です。accuracy_score(0〜1)が信頼度を示します。詳しくは住所を緯度・経度に変換する方法ガイドをご覧ください。

逆ジオコーディングは可能ですか?

はい。上記の方法4をご覧ください。コード不要の逆ジオコーディングツールもご利用いただけます。

データは自動的に更新されますか?

いいえ。座標は静的な値です。住所を変更した場合は、関数またはスクリプトを再実行してください。

Google SheetsとExcelの違いは?

Google SheetsはApps Script(JavaScript)を使い、ExcelはVBAを使います。基本的なロジックは同じです。Google Sheetsはクラウドネイティブです。Excelは非常に大きなファイル(100万行以上)に適しています。専用ガイド:Excelでジオコーディング

ジオコーディングを始めましょう

住所を無料バッチジオコーディングツールにアップロードするか、上記のスクリプトをGoogle Sheetsで使用してください。1日100行無料、登録不要です。

I.A. / CSV2GEO Creator

関連記事

More in Guides →
Ready to geocode your addresses?

Use our batch geocoding tool to convert thousands of addresses to coordinates in minutes. Start with 100 free addresses.

Try Batch Geocoding Free →