階層フィルタで地域項目を動的に変更してみたい

【ある日】育児環境が整っている地域に住みたい

私は結婚を機に新しい土地へと越してきたが、新居を選ぶ際に、その地域の育児環境が整っているかどうかを評価軸の一つとして置いていた。
色々と探した後に、「ここは待機児童数がずっと0人!」と言われている通り、公園では元気なキッズが駆け回っているような素敵な土地に巡り合えた。
そんな話をマスターとしていたら・・・

私「今住んでいる地域は待機児童数0が魅力のようなんです。待機児童数を地図に載せたら家選びの時に役に立ちませんか?」

マスター「実は待機児童が少なくても生活の導線上に保育所がなかったりしてお迎えが大変ということもあるんだよねー」

私「確かに。スーパーでもなんでも、地図上では近くにあっても通勤経路から外れてると結果的に遠くなってしまいますよね。(さすがマスター)」

ということで、自身の生活圏内にどれくらいの保育所があるのか、普段の導線上に一か所ぐらいはあるのか、それを調べられるようなマップをTableauで作成したいと思う。

【どうして】地理情報を持つデータをいじっていたら・・・

保育所データベースというものがあったので、それを使ってTableauで東京都と神奈川県にある保育所の場所をマッピングしてみた。
そしてユーザが都道府県や市区町村等で特定のエリアにある保育所のみを表示できるようにするため、関連項目をフィルタに追加していった。

あれ?

都道府県と地区町村フィルタ

都道府県で「神奈川県」を選択しているのに市区町村の選択肢に「港区」が出てきてしまう。
神奈川には港区はない。ちょっと、恥ずかしい。どうしよう。
地理的役割を持つカラムを全てフィルタに入れたら勝手に連動して、それぞれの指定した範囲に存在する値しか出てこないんじゃないの?

実は、階層フィルタを設定せずに地理関連のカラムをフィルタに追加しても、それぞれが独立しているため、都道府県>市区町村の順にフィルタをかけたとしても市区町村の選択肢には東京都・神奈川県両方に所属する値が全て表示されてしまう。でも、「神奈川県」を選択したら神奈川にある市区町村や町名などを表示させるようにしたい。

【なんそれ】階層フィルタというものがあった

Tableauではデータに階層構造を持たせることで、上位層のフィルタに従い下位層の値が動的に変更させることができる。これを利用したものが階層フィルタと呼ばれるそうだ。

下記の手順に従って設定および実装してみた:

最上位層に指定したいカラムを右クリックし、[階層]>[階層の作成]をクリック。階層名を入力。

最初に選択したカラムが新規作成した階層の配下の一番上に表示される。

他の関連カラムを階層内にドラッグアンドドロップしていく。

ちなみに、カラムを並べる順番には意味がある。上から下に順に絞りこまれる範囲が決まっていくため、順番を間違えると、必要以上に選択肢が出てきてしまったり、その逆もあり得る。

たとえば本来、都道府県>市区町村という順番にするべきところを、市区町村>都道府県の順に並べてしまうと、ユーザが「神奈川県」を選択しても「港区」を含む東京都の市区町村が表示されてしまい、逆に市区町村を「港区」と選択すれば都道府県は「東京都」しか表示されないことになる。

UIを考慮すると、(郵便番号)>都道府県>市区町村>町名・番地の順に範囲を絞っていけるようにすると親切な気がするので、階層内のカラムもそのように上から順に並べていくと良い。
フィルタも同様に、(郵便番号)>都道府県>市区町村>町名・番地の順に表示すると良いだろう。

階層内のカラムを一つずつフィルタに追加する。

フィルタのプルダウンを見て「階層内のすべての値」が選択されていることを確認。これによって、上の階層のフィルタ結果が下層と連動し、動的に変更されるようになる。

ちなみに、フィルタの選択肢にはデフォルトで「すべて」という値が付け加えられているが、「すべて」を非表示にしたい場合は、プルダウン>[カスタマイズ] >["すべて"の値を表示] のチェックを外すと既存の値のみが選択肢として表示されるようになる。

では、実際に使ってみよう。都道府県 =「神奈川県」の市区町村を見てみる。

うぉおおおおおおお!!!

「神奈川県」を選択しても「港区」が出てこない!
神奈川県の市区町村しか表示されていない!
町名・番地も同様に、その上位階層の都道府県と市区町村で指定された範囲内の地域しか出てこない!

【学び】階層構造を作成することで指定した階層順にフィルタをかけることができる

複数のカラムをフィルタに追加しただけでは、それぞれの値の選択肢を絞ることはできないため、今回は階層構造を作成し、その中での並び順によって上位・下位層を定義した。
この階層構造の項目をフィルタとして使用することで、上位層で指定した値に従って下位層の選択肢が動的に変化する。

これで私が住む地域周辺の保育所を調べる際に、徐々に範囲を狭めながら見ていくことができる。



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