見出し画像

【Tableau】MAKELINE関数の「始点」を動かす方法。#パラメータ#IF関数

【こんな人におすすめ】

  • MAKELINE関数の地点を動かしてマップを動的に見せたい人

【この記事を読むとできるようになること】

  • 始点を動かしてマップを動的にみせることができる

  • 他のマップをクリックしたときに、始点を動かすことができる


この記事で使うのは「パラメータ」と「IF関数」、「アクションの設定」です。

※MAKELINE関数・MAKEPOINT関数はこの記事を参照ください。
【Tableau】マップで地点と地点を線でつなぐ方法。#MAKELINE関数#MAKEPOINT関数|ニワマユ (note.com)

【作り方】

こちらのデータを使用して説明します。
https://public.tableau.com/shared/R6WYQ7CZK?:display_count=n&:origin=viz_share_link

➀まずは、都道府県名のパラメーターを作成します。
画面左側の「▼」→「パラメーターの作成」を順にクリック。

計算フィールドを作成


②パラメーターを以下に設定する。
・名前:県名
・データ型:文字列
・許容値:リスト
・値の追加元:始点として利用する、都道府県名のディメンションを選択(「移動前都道府県」)

パラメータを都道府県名に設定

③次に、パラメーターで選択された都道府県の緯度経度を表示されるように、IF関数を使って「緯度(IF)」と「経度(IF)」を作成します。
画面左側「▼」→「計算フィールドの作成」をクリック

計算フィールドを作成

④計算フィールドの名前を「緯度(IF)」とし、以下を入力する

FLOAT(IF [県名]="和歌山県"	THEN "34.231"
ELSEIF [県名]="北海道"	THEN "43.064"
ELSEIF [県名]="愛知県"	THEN "35.181"
ELSEIF [県名]="愛媛県"	THEN "33.8392"
ELSEIF [県名]="茨城県"	THEN "36.3652"
ELSEIF [県名]="岡山県"	THEN "34.661"
ELSEIF [県名]="沖縄県"	THEN "26.2123"
ELSEIF [県名]="岩手県"	THEN "39.7021"
ELSEIF [県名]="岐阜県"	THEN "35.4233"
ELSEIF [県名]="宮崎県"	THEN "31.9077"
ELSEIF [県名]="宮城県"	THEN "38.2691"
ELSEIF [県名]="京都府"	THEN "35.021"
ELSEIF [県名]="熊本県"	THEN "32.789"
ELSEIF [県名]="群馬県"	THEN "36.3895"
ELSEIF [県名]="広島県"	THEN "34.396"
ELSEIF [県名]="香川県"	THEN "34.3428"
ELSEIF [県名]="高知県"	THEN "33.5596"
ELSEIF [県名]="佐賀県"	THEN "33.2636"
ELSEIF [県名]="埼玉県"	THEN "35.908"
ELSEIF [県名]="三重県"	THEN "34.7186"
ELSEIF [県名]="山形県"	THEN "38.2572"
ELSEIF [県名]="山口県"	THEN "34.1785"
ELSEIF [県名]="山梨県"	THEN "35.6621"
ELSEIF [県名]="滋賀県"	THEN "35.004"
ELSEIF [県名]="鹿児島県"	THEN "31.5967"
ELSEIF [県名]="秋田県"	THEN "39.72"
ELSEIF [県名]="新潟県"	THEN "37.902"
ELSEIF [県名]="神奈川県"	THEN "35.4447"
ELSEIF [県名]="青森県"	THEN "40.8222"
ELSEIF [県名]="静岡県"	THEN "34.9756"
ELSEIF [県名]="石川県"	THEN "36.5611"
ELSEIF [県名]="千葉県"	THEN "35.604"
ELSEIF [県名]="大阪府"	THEN "34.693"
ELSEIF [県名]="大分県"	THEN "33.2397"
ELSEIF [県名]="長崎県"	THEN "32.7463"
ELSEIF [県名]="長野県"	THEN "36.6486"
ELSEIF [県名]="鳥取県"	THEN "35.5011"
ELSEIF [県名]="島根県"	THEN "35.4682"
ELSEIF [県名]="東京都"	THEN "35.6938"
ELSEIF [県名]="徳島県"	THEN "34.0702"
ELSEIF [県名]="栃木県"	THEN "36.5551"
ELSEIF [県名]="奈良県"	THEN "34.6851"
ELSEIF [県名]="富山県"	THEN "36.6959"
ELSEIF [県名]="福井県"	THEN "36.0641"
ELSEIF [県名]="福岡県"	THEN "33.606"
ELSEIF [県名]="福島県"	THEN "37.7608"
ELSEIF [県名]="兵庫県"	THEN "34.691"
ELSEIF [県名]="北海道"	THEN "43.064"
ELSEIF [県名]="和歌山県"	THEN "34.2307"
END)
計算フィールドにIF関数を使って緯度情報を入力

⑤画面左側「▼」→「計算フィールドの作成」をクリック。(手順③同様)
名前を「経度(IF)」とし、以下を入力する

FLOAT(IF [県名]="和歌山県"THEN "135.1708"
ELSEIF [県名]="北海道"THEN "141.3460"
ELSEIF [県名]="愛知県"	THEN "136.906"
ELSEIF [県名]="愛媛県"	THEN "132.7656"
ELSEIF [県名]="茨城県"	THEN "140.4717"
ELSEIF [県名]="岡山県"	THEN "133.935"
ELSEIF [県名]="沖縄県"	THEN "127.6792"
ELSEIF [県名]="岩手県"	THEN "141.1544"
ELSEIF [県名]="岐阜県"	THEN "136.7606"
ELSEIF [県名]="宮崎県"	THEN "131.4202"
ELSEIF [県名]="宮城県"	THEN "140.8703"
ELSEIF [県名]="京都府"	THEN "135.753"
ELSEIF [県名]="熊本県"	THEN "130.741"
ELSEIF [県名]="群馬県"	THEN "139.0634"
ELSEIF [県名]="広島県"	THEN "132.459"
ELSEIF [県名]="香川県"	THEN "134.0466"
ELSEIF [県名]="高知県"	THEN "133.5291"
ELSEIF [県名]="佐賀県"	THEN "130.3008"
ELSEIF [県名]="埼玉県"	THEN "139.656"
ELSEIF [県名]="三重県"	THEN "136.5057"
ELSEIF [県名]="山形県"	THEN "140.3381"
ELSEIF [県名]="山口県"	THEN "131.4738"
ELSEIF [県名]="山梨県"	THEN "138.5683"
ELSEIF [県名]="滋賀県"	THEN "135.868"
ELSEIF [県名]="鹿児島県"	THEN "130.5574"
ELSEIF [県名]="秋田県"	THEN "140.1035"
ELSEIF [県名]="新潟県"	THEN "139.023"
ELSEIF [県名]="神奈川県"	THEN "139.6422"
ELSEIF [県名]="青森県"	THEN "140.7474"
ELSEIF [県名]="静岡県"	THEN "138.3827"
ELSEIF [県名]="石川県"	THEN "136.6565"
ELSEIF [県名]="千葉県"	THEN "140.123"
ELSEIF [県名]="大阪府"	THEN "135.502"
ELSEIF [県名]="大分県"	THEN "131.6091"
ELSEIF [県名]="長崎県"	THEN "129.8749"
ELSEIF [県名]="長野県"	THEN "138.1948"
ELSEIF [県名]="鳥取県"	THEN "134.2351"
ELSEIF [県名]="島根県"	THEN "133.0485"
ELSEIF [県名]="東京都"	THEN "139.7034"
ELSEIF [県名]="徳島県"	THEN "134.5548"
ELSEIF [県名]="栃木県"	THEN "139.8825"
ELSEIF [県名]="奈良県"	THEN "135.8048"
ELSEIF [県名]="富山県"	THEN "137.2137"
ELSEIF [県名]="福井県"	THEN "136.2196"
ELSEIF [県名]="福岡県"	THEN "130.418"
ELSEIF [県名]="福島県"	THEN "140.4748"
ELSEIF [県名]="兵庫県"	THEN "135.183"
ELSEIF [県名]="北海道"	THEN "141.346"
ELSEIF [県名]="和歌山県"	THEN "135.1708"

END)


計算フィールドにIF関数を使って経度情報を入力

⑥続いて、IF関数で作成した緯度経度情報を使って、始点を作成します。
画面左側「▼」→「計算フィールドの作成」をクリック(手順③参照)。
名前を「STARTPoint」とし、
「MAKEPOINT([緯度(IF) ],[経度(IF)])」を入力する。

IF文で作成した緯度経度情報を使って始点を作成

⑦終点を作成します。
画面左側「▼」→「計算フィールドの作成」をクリック(手順③参照)。
名前を「END Point」とし、
MAKEPOINT([緯度 (生成)1],[経度 (生成)1])を入力する。

※注意:MAKEPOINTでは、自動的に生成された緯度と経度のフィールドを使用できません。(データがない場合の解決策はこちらの記事を参照ください)

【Tableau】マップで地点と地点を線でつなぐ方法。#MAKELINE関数#MAKEPOINT関数|ニワマユ (note.com)

⑧手順⑥・⑦で作った始点終点を使ってMAKELINE関数を作成します。
画面左側「▼」→「計算フィールドの作成」をクリック(手順③参照)。
名前を「MAKELINE関数」とし、
MAKELINE([START Point],[END Point])を入力する。

⑥⑦で作った始点終点を使ってMAKELINE関数を作成

⑨⑧で作成したMAKELINE関数を新しいシートに追加します。

MAKELINE関数関数をシートに追加

⑩「県名」パラメータを表示し、都道府県名を選択して、始点が動けば完成。

パラメータを選択して始点が動けば完成

+αのご紹介

パラメータを選択するのではなく、他のマップをクリックしたときに、MAKELINE関数を入れたマップも動く方法を紹介します。

左のマップで「栃木県」をクリックすると右のマップで始点が「栃木県」になるダッシュボード

①選択するマップ「検索用のマップ」を作成します。
パラメータで使用した都道府県のディメンション(「移動前都道府県」)をシートに追加する。

パラメータで使用したディメンションをシートに追加

②パラメータで選択した都道府県が色でわかるように計算フィールドを作成します。
画面左側「▼」→「計算フィールドの作成」をクリック(手順③参照)。
名前を「都道府県(検索)」とし、
[県名]=[移動前都道府県]を入力する。

「パラメータ=検索用マップに追加した都道府県」に設定

③②で作成した「都道府県(検索)」をマークの「色」にいれます。

パラメータで選択した都道府県だけが色が付く

④新しいダッシュボードを作成し、
検索用のマップとMAKELINE関数のマップを横に並べます。

新しいダッシュボードにマップを並べる

⑤このままでは検索用のマップ(左)をクリックしてもMAKELINE関数のマップ(右)が動かないので、アクションの設定をします。
タブ「ダッシュボード」→「アクション」を順にクリック

⑥「このワークブック」→「アクションの追加」→「パラメーターの変更」を順にクリック

⑦名前を「県名検索用」とし、以下を設定して「OK」をクリック
・ソースシート:検索用マップ
・ターゲットパラメーター:県名
・ソースフィールド:移動前都道府県(パラメーターで設定した都道府県)

以上で完成です!

検索用のマップ(左)で「福井県」クリックするとMAKELINE関数のマップ(右)の始点が「福井県」に移動する


普段、マップを使う機会がないので、いろんな使い方ができて楽しかったです!手順数が多いですが、ぜひ使ってみてください~~

この記事が気に入ったらサポートをしてみませんか?