【Tableau】ファイル名にある、(数字+文字)で構成された都道府県名からマップを作る方法。#オープンデータの接続例
【こんな人におすすめ】
カラム名が結合されているデータをEXCELで加工している人
エクセルデータの上の行にタイトルや説明文が記載されていて、行を都度削除していいる人
分割したいが、数字+文字の羅列になっているため、カスタム分割が使えない人
【この記事を読むとできるようになること】
カラム名が結合されていても、エクセルデータの上に余分な行があっても加工せずに読み込めるようになる
数字+文字をカスタム分割できる
都道府県が掲載されているファイル名からマップが作成できる
この記事で紹介するのは「ワイルドカード」「データインタープリンター」「カスタム分割」「REGEXP_REPLACE関数」です。
はじめに
オープンデータを使ってみて感じたのが、
「可視化したいけど、そもそもデータの形がそろっていない!」でした。
下のエクセルみたいなデータがふつう。
※このエクセルデータが辛いところ
・表の上にあるタイトルや空白行などが邪魔
・表のカラム名が結合されている
・都道府県名の前に数字ついてる、そもそも文字と文字の間に空白がある(都道府県名をマップに使えない)
・移動後の住所情報はファイル名に掲載されていて、都道府県ごとにファイルが分かれている(都道府県ごとのデータを横比較できない)
ただ、こんなデータでも可視化できる方法があるんです!
このデータをもとに、2つ(「移動前の都道府県」「移動後の都道府県」)のマップで使えるディメンションを作成する方法を紹介します。
【作り方】
1.まずはデータの接続設定から
1-1.一括でデータ接続をするため「ワイルドカード」設定
データは移動後の都道府県別にファイルが分かれている状態なので、「ワイルドカード」を使用してフォルダ内のファイルをすべて接続できるように設定します。
①フォルダを新規で作成し、都道府県別のデータを入れます。
②フォルダの中から一つファイルを選び、Tableauへドラック&ドロップします。
③テーブル(画像の「01000北海道計」)の「▼」→「ユニオンの編集」→タブ「ワイルドカード」の順にクリック
④ワークブックの「01北海道_第4表_2023年.xlsx」を「*2023年.xlsx」に書き換え、「OK」をクリック
1-2.余分な行を削除する「データインタープリンター」の設定
⑤テーブル名の前にマーク(ユニオン)がつけばOKです。
ただ、このままでは表の上にあるタイトルや空白行などが邪魔で上手にデータが読み込めていません。(表もNULLばかり・・・)
余分な行を削除するために使うのが「データインタープリンター」です。
画面左側にある「データインタープリンターの使用」にチェックを付けます。
⑥余分な行が削除され、表になっていた箇所のみの読み込みに成功しました。
コードなど使わない列は非表示に設定します。
列を選択し「▼」→「非表示」の順にクリック
データの接続設定は以上です。
2.都道府県のディメンションを2つ作成
2-1.カスタム分割を使って余分な文字を排除
⑦「Path」をカスタム分割して都道府県名に設定します。
※「Path」はワイルドカードを設定したことで自動的に生成されるディメンションです。データの中身はフォルダ名とファイル名です。
例:「DATA2/01北海道_第4表_2023年.xlsx」
「Path」を選択し「▼」→「変換」→「カスタム分割」の順にクリック
⑧区切り文字の使用に「/」をいれ、分割を「最後」、「1」列に設定をしてOKをクリックします。
そうすると、「Path - 分割済み 1」が自動で生成されます。
「Path」と並べて比較すると、「Path」から、「DATA/」が除かれたデータが作成されました。
都道府県名の後ろについている「_ (アンダーバー)」も必要ないので分割をします。
「Path - 分割済み 1」を選択し「▼」→「変換」→「カスタム分割」の順にクリック
区切り文字の使用に「_」をいれ、分割を「最初」、「1」列に設定をしてOKをクリックします。
そうすると、「Path - 分割済み 1 - 分割済み 1」が自動で生成されます。
並べて比較すると、「Path - 分割済み 1」から、「_第4表_2023年.xlsx」が除かれたデータが作成されました。
この状態でも地理的役割を設定するとマップとしてつかえる(Tableauスゴイ)のですが、表示する時には気持ちが悪いので、都道府県名の前にある数字も分割します。
2-2.区切り文字が使用できないときは、REGEXP_REPLACEを使って余分な数字を排除
⑨新しく計算フィールド(「都道府県(移動前)」)を作成し、以下の関数を入力します。
並べてみてみると、きれいに都道府県名に変わりました!
(一つ目の都道府県クリア!)
2つ目の都道府県はエクセルデータから作成します。
⑩データの中身を見直してみると、1列目の「移動後の住所地」には都道府県と市町村/区が入っていることがわかります。
都道府県以外は不要なので削除します。
実施方法は、2列名の「移動後の住所地コード」を見ると規則性があることがわかるので、こちらを使ってフィルターを実施します。
※規則性
・末尾3桁「000」:都道府県名
・末尾2桁「00」:市町村名
・末尾1桁数字(1~9):区名
画面右上にある「追加」→ポップアップに出てくる「追加」→「移動後の住所地コード」→「OK」を順にクリック
フィルターの「ワイルドカード」で「000」を入力し、後方一致を選択。
(=末尾3桁「000」のみをフィルター)
そうすると、1列目「移動後の住所地」が都道府県のみになりました。
2-3.数字だけではなく「余白」もREGEXP_REPLACEを使えば排除可能
⑪ディメンション「移動後の住所地」を使って都道府県名を作成していきます。
手順⑨と同じく、新しく計算フィールド(「都道府県(移動後)」)を作成し、REGEXP_REPLACEの関数を使います。
分割前と並べてみると、こちらも都道府県名のみに並びました。
(2つめもクリア!)
おまけ:地図(マップ)の設定方法
⑫最後にマップを作っていきます。
先ほど作成した「都道府県(移動前)」「都道府県(移動後)」のディメンションに地理的役割を与えます。
「都道府県(移動後)」を選択し「ABC」→「地理的役割」→「都道府県」の順にクリック
⑬「ABC」が「地球儀マーク」になればOK。
「都道府県(移動後)」を新しいシートにドラック&ドロップすると、日本地図が完成しました!
手順は以上です。
2つのマップ情報があると、2つの地点をつないだダッシュボードも作成することができます。
作り方の解説は別の記事で書こうと思います。
https://public.tableau.com/shared/P5N6R96KP?:display_count=n&:origin=viz_share_link
ここまで読んでくださった方、ありがとうございました!
この記事が気に入ったらサポートをしてみませんか?