大字・町・丁目レベルの人口・世帯数データ + マップデータ + エクセル3D Maps
本稿は「大字・町・丁目レベルの人口・世帯数データを活用する (エクセル編)」の続編です。
データについて
境界データ
境界データは
政府統計の総合窓口 e-Stat
地図で見る統計(統計GIS)>小地域>国勢調査>2015年>小地域(町丁・字等別)>世界測地系平面直角座標系・Shapefile >兵庫県>28101 神戸市東灘区
こちらを使用させていただきました。
世帯数・人口のデータ
神戸市ホームページ
>住民基本台帳に基づく人口(町丁目別・年齢別)
https://www.city.kobe.lg.jp/a89138/shise/toke/toukei/jinkou/juukijinkou.html
令和2年(2020年) 11月のエクセルファイルを使用させていただきました。
注意点
・境界データは2015年の国勢調査によるもの
・世帯数・人口データは2020年11月の住民基本台帳によるものです。
調査の時間軸が異なるため、境界データの「町名・丁目」と世帯数・人口データの「町名・丁目」が完全に一致しないことがあります。
その理由として考えられることは、「町名・丁目」の名称変更、統廃合、新規創設などがあるのだろうと思います。
エクセル編集
データ保存
境界データはzipファイルへ入っています。ダウンロードしてパソコンのフォルダーへ展開します。
zipファイルにはファイル形式が異なる4データが格納されています。
・エクセルを起動します。
・「開く」
・「参照」
・ファイルを保存したディレクトリ
・「すべてのファイル」
・拡張子「.dbf」を選択して開きます。
「大字・町・丁目レベルの人口・世帯数データを活用する (エクセル編)」で作成したブックへシートを移動します。コピーする必要はありません。
ダブり行をチェック
「列G」のダブり行をチェックします。後ほど、この表を結合で使用するのでダブり行があれば削除する(または統合する)必要があります。
ダブり行があるパタンは「飛び地」です。同一の「町名丁目」が境界を接することなく2か所以上に分かれて存在しているときには、それぞれの境界データが掲載されるのでダブり行になっていることが多いように思います。沖合の島とかも飛び地の一種になっていることもあります。。
ダブり行があるときは「列H」へ記号が入っているので、そこをチェックすることでも判断できます。
・列G「S_NAME」の列を選択
・「ホーム」タブ
・「条件付き書式」をクリック
・「セルの強調表示ツール」を選択
・「重複する値」をクリックします。
目的は重複するデータを発見することなので、色が付けばよいわけですから、そのままOKです。
今回のデータにダブり行はありませんでした。
「重複の削除」を使用してサクサクと削除すると危険です。飛び地の無人島の行が残ったりすると、マップへ無人島がプロットされます。
ダブり行を発見したら、もとデータ表はコピーを保存しておいてから、内容を確認してから削除、または、統合します。
クエリを作成
・カーソルをA1へあわせて
・「データ」タブ
・「テーブル」からをクリックします。
パワークエリエディターが開きます。
・「名前」の窓へタイプして
・「ファイル」タブ
・「閉じて読み込む」をクリックします。
パワークエリエディターを閉じるとデータテーブル化されたシートが新規作成されます。
画像の「年齢・人口」のクエリは「大字・町・丁目レベルの人口・世帯数データを活用する (エクセル編)」で作成したものです。
前回の手順で作成したデータテーブル「世帯・人口」も同様の手順になります。
・カーソルを「A1」へあわせて
・「データ」タブ
・「テーブル」からをクリックします。
・「名前」の窓へタイプして
・「ファイル」タブ
・「閉じて読み込む」をクリックします。
ここまでの手順で3個のクエリを作成しました。
クエリの結合
・「クエリ」タブ
・「結合」をクリックします。
画像のように「マージ」の窓が開きます。
・上のテーブルは「世帯・人口」
・下のテーブルは「Map」です。
ドロップダウンのなかから選択してください。
「結合の種類」は
・「左外部」(デフォルトの状態)です。
列をクリックします。
・「世帯・人口」のテーブルは「町コード」
・「Map」のテーブルは「KEYCODE1」(よく似た列名があるので間違えないように!)
・OKです。
パソコンの「shift」キーや「ctrl」を押しながら列をクリックする必要はありません。
パワークエリエディターが開きます。いちばん右側の列が「世帯数・人口」へ結合した「Map」のデータです。
・列名の右にあるボタンをクリックします。
フィルターのような窓が開きます。
・いったんすべてのチェックを外して
・「X_CODE」「Y_CODE」だけにチェックします。
・OKです。
画像のように一部の「町名」がNullになりました。「世帯・人口」にあって「Map」にない町名の座標を得ることはできません。
・「名前」の窓へタイピング
・「閉じて読み込む」をクリックします。
データテーブル化されたシートが新規作成されます。
クエリ「年齢・人口」も同じ手順で「Map」と結合します。
「世帯数_人口_Map」と「年齢_人口_Map」を使用してマッピングします。
リレーションシップ
・「データ」タブ
・「リレーションシップ」をクリックします。
前回作成したリレーションシップが2個あります。
・「新規作成」をクリックします。
リレーションシップするテーブルは
・「年齢_人口_Map」と「「年齢2分割」です。
列は
・「年齢 (値)」です。
・OKです。
・閉じます。
3D Maps
3D Mapsを開く
・「挿入」タブ
・「3Dマップ」をクリック
・「3D Maps を開く」を選択します。
地球儀が出現します。フィールドリストへ、ここまで作成してきたデータテーブルが表示されていれば成功です。
「世帯数_人口_Map」のデータです。
・「Map.X_CODE」、「Map.Y_CODE」を順番に「場所」の窓へドラッグ&ドロップします。(「フィールドの選択からも選べます」)
・「Map.X_CODE」の右側の窓は「経度」を選択
・「Map.Y_CODE」の右側の窓は「緯度」を選択します。
場所のラジオボタンは「Map.X_CODE」、「Map.Y_CODE」のどちらでもOKです。
マップの右下にある矢印とかプラス・マイナスとか、マウスをグリグリして目的地へ接近します。
・「マップラベル」をクリックすると地名とかを表示できます。
棒を立てる
・「高さ」の窓の「+」をクリック
・「世帯数_人口_Map」の「合計」を選択します。
「Map.X_CODE」、「Map.Y_CODE」は「世帯数_人口_Map」のものなので「世帯数_人口_Map」のデータしか対応しません。
棒グラフになりました。
「レイヤーのオプション」で調整しましょう。
バブル
棒からバブルへ切り替えます。
オモロイことになりました。これはこれで何かに使えそうですが・・・
「レイヤーのオプション」を編集します
・「サイズ」でバブルの大きさ
・「太さ」で円柱の高さ
・「不透明度」「色」を編集できます。
人口が多い町名、少ない町名がなんとなく見えてきました。
メジャーフィルター
「年齢_人口_Map」のデータをプロットします。
・「場所」へ設定する「X_CODE」「Y_CODE」は「年齢_人口_Map」のものへ変更します。
・「フィールドの追加」をクリック
・「年齢_人口_Map」の「人口」を選択します。
・「フィルターの追加」をクリック
・「年齢_人口_Map」の「年齢 (値)」を選択します。
「年齢 (値)」は数値なのでメジャーフィルターになります。つまり値の合計値ごとのフィルターに設定されます。これを値ごとのフィルターへ変更します。
・「Σ」をクリック
・「集約なし」を選択します。(はじめは「合計」になっていると思います)
スライダー型フィルターを操作します。
20歳未満、65歳以上、あるいは10歳~19歳のような絞り込みが可能です。
マップのプロットへポインタをあてると値が表示されます。表示内容を変更しましょう。
データカード
・データカード「カスタマイズ」をクリックします。
最下段にあると思います。
・表示しないフィールドを削除します。
・表示したいフィールドを追加します。
「年齢_人口_Map」のデータを使用しているので、そのなかから選択してください。
リレーションしたデータのフィールド
「年齢_人口_Map」と「年齢2分割」のデータはあらかじめリレーションシップしました。
・「年齢」のフィルターはすべてです
・「分類」へ「年齢2分割」の「65歳」を追加します。
円グラフになります。65歳以上か未満かの全体を俯瞰するには少し煩雑なように感じます。
・「年齢_人口_Map」の「町名」をフィルターへ設定します。
・いくつかの町名を選択してマップを拡大します。
・サイズ・高さを調整します。
この見え方はアリだと思います。
3D Mapsを終了する
マップを終了するときは
・「ファイル」から「閉じる」をクリックするか
・右上の「×」をクリックします。
「上書き保存」のような機能はありません。というのか、最終の状態が自動で保存されます。
再開するときは
・3D マップをクリック
・前回のマップが現れます。クリックします。
・「新しいツアー」で新規作成が可能です。