住所や座標が入ったExcelデータ、地図に表示できます。
ExcelデータをGISで地図化する方法【初心者向け完全ガイド】
この記事では、ExcelデータをQGISで地図化する方法を、ステップバイステップで解説します。
ExcelをGISで使うための準備
必要なもの
準備するもの
- Excel(またはCSVファイル)
- QGIS(無料GISソフト)
- 位置情報(座標 or 住所)
データの形式
座標データがある場合:
| 名称 | 緯度 | 経度 | 売上 |
|---|---|---|---|
| 店舗A | 35.6812 | 139.7671 | 100 |
| 店舗B | 35.6894 | 139.6917 | 150 |
住所データのみの場合:
| 名称 | 住所 | 売上 |
|---|---|---|
| 店舗A | 東京都千代田区丸の内1-1 | 100 |
| 店舗B | 東京都渋谷区神宮前1-1 | 150 |
CSVへの変換
Excel → CSV
- ファイル → 名前を付けて保存
- ファイルの種類 → CSV(コンマ区切り)
- 保存
注意点
- 文字コードは UTF-8 推奨
- Excel 2016以降なら「CSV UTF-8」を選択
座標データがある場合
手順概要
1. CSVファイルを準備 2. QGISで読み込み 3. 座標系を指定 4. 地図に表示
ステップ1: CSVファイルの準備
必要な列
- 緯度(Y座標)
- 経度(X座標)
- その他の属性(任意)
座標の形式例:
| 形式 | 緯度 | 経度 |
|---|---|---|
| 度(推奨) | 35.6812 | 139.7671 |
| 度分秒 | 35°40’52” | 139°46’02” |
ステップ2: QGISで読み込み
1. レイヤ → レイヤを追加 → CSVテキストレイヤを追加 2. ファイル名:CSVファイルを選択 3. ジオメトリ定義: - ポイント座標 - Xフィールド:経度の列 - Yフィールド:緯度の列 - ジオメトリCRS:EPSG:4326(WGS84) 4. 追加 をクリック
ステップ3: 表示確認
確認事項
- 背景地図(地理院タイル等)を追加して位置を確認
- 正しい場所に表示されているか
地理院タイルの追加
ブラウザパネル → XYZ Tiles → 右クリック → 新規接続
- 名前:地理院タイル
- URL:https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png
住所データしかない場合
ジオコーディングとは
住所 → 座標 に変換する処理を ジオコーディング と呼びます。
方法1: 国土地理院API(無料)
Pythonスクリプト例:
python
import requests
import csv
def geocode(address):
"""国土地理院APIでジオコーディング"""
url = "https://msearch.gsi.go.jp/address-search/AddressSearch"
params = {"q": address}
response = requests.get(url, params=params)
data = response.json()
if data:
coords = data[0]["geometry"]["coordinates"]
return coords[1], coords[0] # 緯度, 経度
return None, None
# CSVを処理
with open('input.csv', 'r', encoding='utf-8') as infile:
reader = csv.DictReader(infile)
results = []
for row in reader:
lat, lon = geocode(row['住所'])
row['緯度'] = lat
row['経度'] = lon
results.append(row)
# 結果を出力
with open('output.csv', 'w', encoding='utf-8', newline='') as outfile:
writer = csv.DictWriter(outfile, fieldnames=results[0].keys())
writer.writeheader()
writer.writerows(results)
注意点
- APIの利用規約を確認
- 大量データは時間がかかる
- 一部の住所は変換できない場合あり
方法2: QGISプラグイン
【GeoCoding プラグイン】 1. プラグイン → プラグインの管理とインストール 2. "geocoding" で検索 3. インストール 4. プラグインの指示に従って住所変換
方法3: オンラインサービス
| 種類 | サービス |
|---|---|
| 無料サービス | 国土地理院 地理院地図(少量なら手動可)、CSV Address Matching |
| 有料サービス | Google Maps Platform、Yahoo!ジオコーダAPI |
よくあるトラブルと解決策
トラブル1: 何も表示されない
| 原因 | 対処 |
|---|---|
| 座標系が違う | EPSG:4326を確認 |
| X/Yが逆 | 経度=X、緯度=Y |
| データが空 | CSVの中身を確認 |
トラブル2: 位置がずれる
原因
- 座標系の不一致
- 経度/緯度の取り違え
- 座標の形式が違う(度分秒など)
対処
- 元データの座標系を確認
- QGISで正しいCRSを設定
- 経度/緯度の列を再確認
トラブル3: 文字化け
原因
文字コードの不一致
対処
- Excel保存時: CSV UTF-8(コンマ区切り)で保存
- QGIS読み込み時: エンコーディング:UTF-8 を指定
- 日本語の場合 Shift_JIS も試す
トラブル4: 一部のデータが欠損
確認ポイント
- 空白セルがないか
- 数値が文字として入力されていないか
- 特殊文字が含まれていないか
応用テクニック
数値による色分け表示
【売上データで色分け】 1. レイヤをダブルクリック → シンボロジ 2. 単一シンボル → 段階分類 に変更 3. カラム:売上 4. 分類 をクリック 5. OK
ラベル表示
1. レイヤをダブルクリック → ラベル 2. 単一ラベル を選択 3. ラベル:表示したい列を選択 4. フォント等を調整 5. OK
属性テーブルの編集
1. レイヤを右クリック → 属性テーブルを開く 2. 編集モード(鉛筆アイコン)をON 3. 値を編集 4. 編集モードをOFF → 保存
ヒートマップの作成
1. レイヤをダブルクリック → シンボロジ 2. 単一シンボル → ヒートマップ に変更 3. 半径を調整 4. OK
実践例:店舗データの地図化
サンプルデータ
csv
店舗名,住所,売上,従業員数
本店,東京都千代田区丸の内1-1-1,1000,50
渋谷店,東京都渋谷区道玄坂1-1-1,800,30
新宿店,東京都新宿区西新宿1-1-1,1200,40
完成イメージ
地図上に表示
- 各店舗をポイントで表示
- 売上に応じて円の大きさを変更
- 店舗名をラベル表示
- 背景に地理院タイル
手順
6ステップ
- 住所をジオコーディング
- QGISにCSV読み込み
- 背景地図を追加
- シンボロジで売上に応じた表示
- ラベルで店舗名を表示
- 印刷レイアウトで出力
まとめ
ExcelをGISで使う手順
【座標がある場合】 Excel → CSV → QGISで読み込み → 地図表示 【住所しかない場合】 Excel → ジオコーディング → CSV → QGISで読み込み → 地図表示
ポイント
3つのポイント
- データ準備が大事
UTF-8で保存、座標の形式を確認 - 座標系を理解する
緯度経度はEPSG:4326、経度=X、緯度=Y - トラブルは原因を特定
表示されない→座標系、文字化け→エンコーディング
関連記事
