その他お問い合わせ先

lodestar@truestar.co.jp

運営会社

株式会社truestar
truestar activation株式会社

書式設定の仕様について(10.0)

10.0からワークブック全体で一括して書式設定できるようになりましたね。

書式設定1

今回は書式設定全般で何が優先されるかといった仕様について確認してみます。

まずはワークブック書式設定の機能を確認してみます。
書式設定2

・すべて
ワークブックの全書式設定の一括変更

・ワークシート
・ツールヒント
・ワークシートのタイトル
・ダッシュボードのタイトル
・ストーリーのタイトル
各オブジェクト単位の書式設定の一括変更

・既定にリセット
Tableau既定の値に変更される
※変更されたものは灰色のマークが表示され、マークをクリックすると個別にリセットできる

次に書式設定の優先順位を確認してみます。

1)設定変更時の優先順位
後から設定変更したものが優先される。
例)
1.ワークブックの書式設定>すべて
2.ダッシュボードの書式設定>ダッシュボードのタイトル
の順で設定変更した場合は2が優先
2.ダッシュボードの書式設定>ダッシュボードのタイトル
1.ワークブックの書式設定>すべて
の順で設定変更した場合は1が優先
※ワークブックの書式設定>すべて を指定すると、個別の設定がすべて変更される

2)「既定にリセット」「クリア」の優先順位
下記の階層に従い、ひとつ上の階層の設定に変更される
※下の階層で個別に設定していた場合はそのまま設定が残る
Tableau既定
└ ワークブック(すべて)
├ ワークシート
│ └ 個別のワークシート
├ ツールヒント
│ └ 個別のツールヒント
├ ワークシートのタイトル
│ └ 個別のワークシートのタイトル
├ ダッシュボードのタイトル
│ └ 個別のダッシュボードのタイトル
└ ストーリーのタイトル
│ └ 個別のストーリーのタイトル
└ 個別の設定(テキストオブジェクトなど)
例)
1.ワークブック(すべて)で「メイリオ」に設定
2.ダッシュボードの書式設定>ダッシュボードのタイトル で「MS明朝」に設定
3.個別のダッシュボードでタイトルを「MSゴシック」に設定
この場合、
・個別のダッシュボードで書式設定→「クリア」→「MS明朝」に戻る
・ワークブックの書式設定→ダッシュボードのタイトル で「既定にリセット」(灰色のマーク)→「メイリオ」に戻る
※この段階では個別のダッシュボードは「MSゴシック」のまま
・ワークブックの書式設定→ダッシュボードのタイトル で「既定にリセット」→個別のダッシュボードで書式設定→「クリア」→「メイリオ」に戻る

まとめ
初期設定としてデフォルト設定を行えるようになった点は便利ですね。
ワークシートやダッシュボードを新しく作成するたびに、設定を変更していたので効率化に繋がりそうです。
ただ、設定変更時の優先順位と「既定にリセット」「クリア」の優先順位の挙動が異なる点と、
個別にフォントサイズを指定していたりしてもワークブックの書式設定からサイズを変更すると全て変わってしまう点は注意が必要です。

Tableau_id執筆者:林 周作(Shuusaku Hayashi)

ハイライター(Highlighter)について

今回は今更ですが、Tableau10.0の新機能のハイライターの使い方について考えてみます。

私も模索中ですが、「どうやって使えるんだろう」「何に使えるんだろう」といったことを考える上での参考になれば幸いです。
使用するデータソースはいつも通りサンプルスーパーストアです。

 

使い方は簡単で、ビューの中でしようしたディメンションをクリックして「ハイライトを表示」を選択するだけです。
現れたハイライターから「文字列検索」「プルダウン選択」が使用可能です。
細かい機能を見てみましょう。

文字列検索
ワイルドカード検索になっていて、候補から一つに選択しない限りマッチするもの全てをハイライトします。
ハイライター2

プルダウン選択
項目にカーソルを当てた時点でハイライトされます。
そこからマウスを動かしたり、キーボードで上下させたりするとハイライト項目が変ります。
ハイライター1

これまでもダッシュボードのアクションフィルタや、色からのハイライトが可能でした。
それ以外にもパラメータで指定したものをハイライトするようなテクニック(参考)もありましたが、
・手軽に使える点
・色の指定が必要ない点
・フィルタより処理が軽い点
や上記で示したような機能が大きな特徴となっています。

また、既存の機能でハイライト時に処理を行うものがありますが、
ハイライターと組み合わせることでも色々と可能性が広がりそうです。

例えば、
・ラベル設定の「ハイライト時のみ」
・傾向線やリファレンスラインの「ハイライト時に再計算」
が挙げられます。

これらのギミックを入れながら簡単なダッシュボードを作成して見ました。

欲を言えばダッシュボード内にリストをスクロールする形で表示する場合にハイライトを当てたらそこまでスクロールしてくれると最高ですが・・・
複数にハイライトがあたっている時の処理が難しいのかもしれませんね。
ハイライト対象が単一行の場合にスクロール可能になるよう改善を期待したいところです。

Tableau_id執筆者:林 周作(Shuusaku Hayashi)

細分化されたAlteryxワークフローを一度に回してくれるRunnerマクロを使ってみた #Alteryx #20 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第六弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

20日目のエントリとして細分化されたAlteryxワークフローを一度に回してくれるRunnerマクロを使ってみたいと思います。

14日目16日目のエントリにて、調査データをAlteryxで加工してみましたが、調査データをAlteryxで加工すると時に、たとえば、特定質問でYesと答えた回答者で回答率を算出したり、移動平均を算出したりするという加工を入れると、Alteryxワークフローが非常に大きくなってしまうことがあります。

そうなってしまうと、たとえばロジックの改修を行う際に、毎回大きなワークフローを回す必要が出たり、またエラーが出た際に原因を特定するために、大きなワークフローを回す必要が出たりと、ワークフローが回るまでの待機時間が長くなってしまいます。

また、複雑な集計処理をしていなくても、データ量が膨大な場合、ワークフローが完全に回ってからでないと加工状況が見えないため、集計処理が正しいかを確認しようとするたびに、ワークフローを回すことになり、ワークフローが回るまでの待機時間が長くなってしまいます。

上記のような状況の場合、ワークフローを細分化するとワークフローが回るまでの待機時間が短縮されます。

しかし、定期運用をする必要があるデータの場合、毎回細分化されたワークフローをすべて回す必要があるため、更新に時間を費やしてしまうことになります。

これを解決するのが、今回紹介しますRunnerというツールとなります。

このツールは、Alteryxにデフォルトで入ってるツールではなく、Alteryxの社員であるAdam Rileyさんが任意で作成したマクロとなります。

※Alteryxユーザーであれば、任意でマクロを作って、それをネット上で共有することができます。

以下でAdam Rileyさん作成したマクロのパッケージを一括ダウンロードできます。

Adam Rileyさんマクロパッケージ

 

実際にRunnerを使ってみようかと思います。

まずは細分化した2つのAlteryxを用意しました。

1つ目はAlteryxで調査データをTableau用データに加工してみた-Part 1で使ったワークフローです。

survey_runner

2つ目はAlteryxで調査データをTableau用データに加工してみた-Part 2 #Alteryx #16 | Alteryx Advent Calendar 2016で使ったワークフローにさらに加工を加えたものです。

survey_runner2

次に、Runnerを使って、Alteryxワークフローを作成します。

Runnerで1つ目のワークフローを指定して、Conditional Runnerで2つ目のワークフローを指定します。

Conditional Runnerは何個もつなぐことができるので、細分化さらたワークフローがいくつあっても問題ありません。

runner

runner_explanation

上記のように設定して、ワークフローを回せば、細分化されたワークフローを順番に回してくれます。

Runnerを使う上で注意すべき点は、ワークフロー名、Inputデータ名、Outputデータ名に日本語が入っていると、エラーが出てしまい、正常に作動しない点です。

 

明日21日目はクラスメソッドさんのエントリです。乞うご期待!

Kazuki Koebisawa

 

Alteryxで調査データをTableau用データに加工してみた-Part 2 #Alteryx #16 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第五弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

16日目のエントリとして14日目のエントリのPart 2として、大量の調査データをAlteryxでTableau用データに加工してみたいと思います。

ちなみに14日目のPart 1エントリは以下です。

 

様々な国の調査データを比較したかったり、調査データをトラッキングしたいとなると大量の調査データを取り扱うことになります。

Part 1の形のデータベースとなると、データ粒度が回答者IDごとであり、尚且つTableau上では、表計算で回答率を算出するため、データが大きいとTableauのスピードが著しく悪くなります。

そのため、以下のAlteryxワークフローで大量の調査データにも対応できるTableau用データベースを作成してみました。

part2

 

以下でPart 2で追加したツールの詳細を説明します。

summary

 

このSummarizeを入れるだけで、25003行だったデータが、9008行まで収縮できました。約40%の収縮です。

完成したデータはこれです。

datapart2

 

明日17日目はクラスメソッドさんの『Communityの使い方 』です。乞うご期待!

Kazuki Koebisawa

Alteryxで調査データをTableau用データに加工してみた-Part 1 #Alteryx #14 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第四弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

14日目のエントリとしてクラスメソッドの川崎さんが以下のエントリでもご説明してくださっていますが、調査データをAlteryxで実際に加工してみようかと思います。

Tableau Conference 2016 at Austin [レポート]調査データを可視化する 2.0 – Data Revelations #data16

 

活用するデータは以下になります。

まずは、数値形式で格納されているデータです。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a35

 

次に、文字形式で格納されているデータです。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a32

上記、データがない場合もあるかもしれません。

その場合は、以下のようなマスターを作成することをおすすめします。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a34

 

最後に、質問の補足情報が格納されたデータです。

Tableauで加工する際に、必要になる情報です。

「Wording」は、Tableauで、質問の内容を表示するために使い、また、「Question grouping」は、TableauのView毎の単位となります。

このデータは、ほとんどの場合、手元にないと思いますので、同じようなものを作成することをおすすめします。

ただし、「Question Type」については、必須ではありません。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a33

 

これらのデータを活用し、以下AlteryxワークフローでTableau用データを作成しました。

非常に簡単なロジックとなっています。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3alteryx

 

以下でAlteryxワークフローのロジックを説明していきます。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3transposeptt

上記のようにTranspose設定し、Alteryxを回すと、データの形が以下のようになります。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3transafter

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3selectppt

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3nullppt

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3joinppt

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3joinppt

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3join2ppt

 

完成したTableau用データが以下となります。

横長であったデータがTransposeにより、Tableauが得意な縦型のデータになっています。

また、このような形であれば、Tableauで、デモグラである「Gender」「Location」「Generation」のフィルターをそれぞれの質問のViewに入れることができたり、複数の切り口でデータを見ることができます。

%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3comp

 

明日15日目はクラスメソッドさんの『Alteryxをさわってみた 』です。乞うご期待!

Kazuki Koebisawa

ポイントデータ(緯度経度)データをポリゴンデータに紐付けてみる #Alteryx #09 | Alteryx

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第三弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

09日目のエントリとしてAlteryxを用いてポイントデータにポリゴンデータを紐付けてみます。

 

例によってデータは国土数値情報さんから取得します。

国土数値情報

 

今回は、医療機関データ(ポイントデータ)に

tableauid20161209-01

 

医療圏データ(ポリゴン)を使ってみましょう。

 

tableauid20161209-02

 

具体的には、医療機関データには病院などの施設名に住所と位置情報が含まれます。

一方、医療圏データには、病床の整備のために設定された地域領域が含まれます。

参考資料:wikipedia 医療計画

 

医療圏データは、3種類のポリゴン(一次医療圏、二次医療圏、三次医療圏)が含まれていますが、

今回は、医療機関に対して二次医療圏を紐付けてみましょう。

tableauid20161209-03

 

完成形のモジュールは以下の通りです。いたってシンプル。

tableauid20161209-04

 

左半分の設定内容です。

tableauid20161209-16

今回はシェープファイルの文字化けが発生しました。

シェープファイルの読み込み時は文字コードの指定ができないので、[ConvertFromCodePage]ツールでの変換を最初に行っています。

[Spatial Match]では、施設のデータに対して、施設の位置が含まれる医療圏ポリゴンを紐付けています。

紐づかなかったデータはU側にはじかれます。14件ほどはじかれてしまいました。

海に近い施設がポリゴンに含まれなかったり、ポイントデータにも不備がありそうです。

大分県の5施設は海上にプロットされました・・・

tableauid20161209-18

Alteryxの[Browse]ツールを使うだけで、エラーも簡単に可視化できます。

このあたりの異常値は本来メンテナンスが必要ですが、今回の趣旨とは外れるのでそこには触れずに進めます。

 

右半分の設定内容です。

tableauid20161209-17

こちらでは、Tableauでの可視化に向けた加工を行っています。

施設Pointは空間情報になり、いまのTableauでは読み込めません。(次のバージョンでは読み込める見込)

空間情報から緯度経度をそれぞれ取得して、Tableauで読めるようにします。

緯度経度を取得した後は、空間情報はカットします。(重いので)

また、所在地だけだと使いづらいので、都道府県のカラムも追加しておきます。

あとはTDEで吐き出して終了です。

 

約18万件の施設の位置情報に、約7万件の医療圏のポリゴン(元データにおいて、飛び地は別レコードになっているためレコードが多い模様)をマッチングさせていますが、わずか20秒弱で完了です。
(※私のラップトップPCには12GBのメモリが積まれているため、一般に使われるものと比べるとかなり高スペックな部類ですが・・・)

tableauid20161209-05

 

と言うわけで、Tableauでこんな感じになりました。


※2016/12/13 表示サイズがおかしくなっていたので修正
 

明日10日目はクラスメソッド大矢さんの『マーケット・バスケット分析をやってみた』です。乞うご期待!

 

T.Fuji

API経由で住所データをジオコーディングしてみる #Alteryx #08 | Alteryx Advent Calendar 2016

『Alteryx Advent Calendar 2016』スポット参戦シリーズ第二弾です。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

08日目のエントリとしてAlteryxを用いてYahooのAPIと連携し、ジオコーディングを行ってみます。

 

まず、YahooのAPIと連携するためには、Yahoo! デベロッパーネットワークでアプリケーションIDを取得する必要があります。

さすがはYahoo! Japanさん。分かりやすいヘルプがあるので、こちらのページを参考に簡単に取得可能です。

Yahoo!デベロッパーネットワークヘルプ

なお、ジオコーディングにはYahoo! ジオコーダAPIを用います。

Yahoo! ジオコーダAPI

 

今回、ジオコーディングの対象住所には、『住所一覧』でググったら上位に出てきた大阪府の公立小学校のデータを用いることにしました。

tableauid20161208-1

エクセルを開くとこんな感じです。データ取得上は不要となるタイトルがついています・・・。

tableauid20161208-2

しかも・・・実際には後で気づきましたが、下のほうにも別のテーブルがありました。

tableauid20161208-3

APIでジオコーディングする前に、これらの不要なデータをAlteryxで処理する必要がありそうです。

 

さて、実際のモジュールですが、結論から言うと最終形はこんな感じです。

tableauid20161208-4

意外と小さなモジュールで済みました。

 

上半分と下半分に分けて細かく見ていきます。

tableauid20161208-4-18

最初に元データとなるエクセルファイルを読み込み、不要なデータを順に取り除いています。
二連続となる[Filter]ツールでは、もう一つのテーブルとのカラム名の列と、テーブルとテーブルの間の空白をカットするために用いています。
右端にある[Formula]ツールで、APIに投げ込むURLデータを生成しています。

続いて下半分です。

tableauid20161208-4-19

API経由でのデータダウンロードに始まり、JSONデータを分解、縦持ちデータを横持ちに変更します。
次にJSON形式で取得した緯度経度はカンマ区切りで一つのカラムに入ってしまっているため、[Formula]ツールで切り分けます。

YahooのジオコーダAPIは番地レベルで厳密にヒットしないと変換されず、Nullで返ってきます。
今回は995レコード中27レコードがはじかれてしまいました。
それらがすぐに判別できるよう変換判定のフラグを立た上で、データのソートまでこのフローに組み込んでいます。

なお、今回は大阪府が発表している公共施設のデータなのでヒット率が高かったのですが、個人の住所データや手入力の住所情報等の場合、エラーが多く出力されることになります。
GoogleのAPIだと厳密にヒットしなくても近しい住所データにマッチングしたり、複数候補を挙げてくれたりするのですが、GoogleはAPIの制限が厳しく、無償で大量のデータを処理することも難しいため、ここではYahooのAPIを使用しました。

さて、今回はExcelでアウトプットしてみましたが、例によってTableauにつなげて可視化してみるとこんな感じです。

tableauid20161208-4-20

市区町村などのカラムがないので、ワイルドカード照合で絞り込みが効果的です。
ちなみに矢印のついている大阪市立友渕小学校は我が母校です。

 

明日9日目は『住所データを都道府県と市区郡町村に分割してみる』を連続投稿予定です。

明日9日目は『ポイントデータ(緯度経度)データをポリゴンデータに紐付けてみる』です。※2016/12/08 修正

 

T.Fuji

Polygon for Tableauを使ってみる #Alteryx #06 | Alteryx Advent Calendar 2016

今回、クラスメソッドさんの運営する技術ブログDevelopers.IOで展開されている『Alteryx Advent Calendar 2016』にスポット参戦させていただくことになりました。

Alteryx Advent Calendar 2016 | シリーズ | Developers.IO

Alteryx Advent Calendar 2016 – Qiita

 

06日目のエントリとしてAlteyrxの『Polygon for Tableau』ツールをご紹介します。

 

過去にもAlteryxのマクロを用いて似たような記事がTableau-idに掲載されています。

Alteryxを活用したShapeFileのTDE化

しかし、現在は『Polygon for Tableau』というツールが標準的に存在するため、もっと簡単にシェープファイルをTableau用に加工できるようになりました。

 

ではまず適当にシェープファイルを拾ってきましょう。

シェープファイルのオープンデータといえば国土交通省の運営する

国土数値情報

です。いつもお世話になっております。

tableauid20161206-1

今日は線路の情報を使ってみましょう。

 

 

tableauid20161206-2

全国のデータを一括でダウンロードできますが、中には二つのシェープファイルが含まれますが、ここでは線路データとなるRailroadSection.shpを使います。

ちなみに今回取り扱う空間データ(Spatial Object)は、Polygon(面)ではなくline(線)です。

『Polygon for Tableau』を使うとこんな簡単なモジュールでTableauデータソース化が可能です。

tableauid20161206-7

 

シェープファイルは下図のとおり、lineデータです。線路っぽいデータが見えています。

tableauid20161206-8

 

続いて元データの属性情報(カラム名)を[Select]ツールでRenameします。

tableauid20161206-9

 

空間データ(Spatial Object)に[Polygon for Tableau]ツールを接続するだけでTableau用のフォーマットに変換されます。

tableauid20161206-10

 

Optionsタブでポリゴンの間引きができますが、間引きの単位はマイル刻みだけです・・・
とはいえ、特に細かい粒度のポリゴンデータはデータ量が大きいため、適宜間引きをするほうが懸命です。

tableauid20161206-11

 

最後にTableau抽出形式(TDE)でアウトプットして、Tableau用データソースの完成です。

tableauid20161206-12

 

実際にTableauで可視化した結果が以下のとおりです。

tableauid20161206-14

今回はPolygonではなくLineなので、マークは線を使います。
予めAlteryxKeyとPointOrderはディメンションに変更した上で、パスにPointOrderを、詳細にAlteryxKeyを入れれば完成ですね。

とっても簡単。

 

ちなみに、以下の記事にもあるように、近日公開の機能として、Tableauでシェープファイルが読み込まれることが発表されています。

Tableau Conference 2016 at Austin [基調講演レポート] Keynote: Tableau Devs on Stage

 

つまり、[Polygon for Tableau]ツールは遠からず不要になるかもしれません。
とはいえ、Polygonの間引きをしたり、PolygonとPointのマッチングなどの空間情報処理をTableauでできる訳ではないため、Alteryxはまだまだ重宝しそうです。

 

なお、Tableau 10.2のベータ版を試してみたところ、PolygonとPointは読み込めましたが、現時点でLineは直接読めませんでした。このあたりは後日触れたいと思います。

 

明日7日目はクラスメソッド小澤さんの『線形回帰をしてみる』です。乞うご期待!

 

T.Fuji

時系列を付与した散布図の作り方

稀に使用される「時間を軸においていない散布図に折れ線で時系列を追加したグラフ」を作成してみます。

一見して判りにくいグラフとなる為汎用性は低いですが、2軸の指標に対して年を追った傾向を見る際に役立ちます。

 

サンプルデータソースの「世界指標」を使用して生産人口割合とGDPの関係をあらわしたダッシュボードを作成して見ました。
ポイントは折れ線のパスに「年」を入れる部分です。
%e6%95%a3%e5%b8%83
素直に実装すると年の進行方向が判りにくかったため、矢印を入れています。
if
last()=0 then “終点”
elseif
 lookup(AVG([人口(15~64歳)]),1)-AVG([人口(15~64歳)]) > 0
 and lookup(AVG([GDP]),1)-AVG([GDP]) > 0
then “右上”
elseif
lookup(AVG([人口(15~64歳)]),1)-AVG([人口(15~64歳)]) > 0
then “右下”
elseif
lookup(AVG([GDP]),1)-AVG([GDP]) > 0
then “左上”
else “左下”
END

非常にシンプルな実装となっていますので興味がある方はダウンロードして確認してみてください。

Tableau_id執筆者:林 周作(Shuusaku Hayashi)

フィルタを使用する際のシェアの算出方法について

製品やブランドのシェアを算出するケースは非常に多いと思います。

今回はフィルタを使用する際のシェアの算出方法についてお話します。

使用するデータソースは「スーパーストア」です。

 

シェアを算出する際は「sum([売上])/WINDOW_SUM(sum(売上))」といった形で「対象/全体」を計算しますね。

%e3%82%b7%e3%82%a7%e3%82%a2%ef%bc%91

全ての対象を表示している場合は問題ないですが、表示するメーカーは絞る(or一つにする)際のシェア算出方法が課題となります。

素直にフィルタで絞ってしまうと、絞った中でのシェアを表示してしまいます。

カテゴリごとのシェアを表示するといった際はいいのですが、メーカーを絞る際は問題となります。

%e3%82%b7%e3%82%a7%e3%82%a22

これはディメンションフィルタでフィルタされた後に表計算が行われるため発生します。

calculations_lod_filters(Tableau online Helpより)

詳しい内容はTableau online Helpを参照してください。(https://onlinehelp.tableau.com/current/pro/desktop/ja-jp/calculations_calculatedfields_lod_filters.html

解決策は以下の3種類が考えられます。

・個々のレコードにトータルの値を持たせる

・フィルタを表計算フィルタにする

・トータル計算にFixedを使用する

各々について見ていきましょう

 

・個々のレコードにトータルの値を持たせる

予めデータ側にトータルの値を持たせてしまって、フィルタが掛かっても算出できるようにします。

「sum([売上])/avg(トータル売上)」

メリット

・表計算なしで算出できる為、軽い

デメリット

・フィルタを掛けても一切トータルの値が動かない為、どの単位でトータルを持たせるかが問題となる

・単純にAVGで計算できなくなるケースもあり、データの準備、扱い共に難易度が高い

 

・フィルタを表計算フィルタにする

表計算フィルタは表計算が行われた後に実行されるため、フィルタを表計算を使用したものに変更すれば正しく表示されます。

lookup(min([メーカー]),0)

といった計算式を作成しフィルタに入れます。

メーカーをビューに入れないと動作しない点に注意が必要です。

メリット

・手軽

デメリット

・アクションフィルタには適用できない

・表計算フィルタは実際には非表示にしているだけであるため、重い

・表計算フィルタである為、フィルタを表示する為にも表計算が行われる(重くなる)

・フィルタ対象をビューに使用しなければならない

・複数ワークシートへの適用が出来ない

 

・トータル計算にFixedを使用する

Fixedはディメンションフィルタの前に計算される為、トータル計算にFixedを使用すれば正しく表示されます。

「sum([売上])/sum({fixed:sum(売上)})」

メリット

・Fixedの計算を調整することで要件に柔軟に対応可能

デメリット

・Fixedはビュー表示とは別に計算が行われるため、重い

・Fixedの計算の調整が必要

 

どの手法もメリット、デメリットがありますので状況に応じて使い分けてください。

他にフィルタをパラメーター化する方法もありますが、こちらは非常に使い道が限定されますので割愛いたします。

 

Tableau_id執筆者:林 周作(Shuusaku Hayashi)