標準棒グラフと積み重ね棒グラフを並べて表示する
ブログの継続って、やっぱり大変ですね。。。ある程度は恐れていたとはいえ、4ヶ月も空いてしまいました。
気を取り直して、再開です。
今日は、違うタイプの棒グラフを並べて表示する方法です。
めっちゃ簡単なのですが、同僚からいくつか問い合わせがあったので上げてみました。
データは、タブローのSample File を使いました。
Sample - Superstore Sales (Excel).xls |Tableau Support Community
こんな感じのビューからスタートです。
ゴールは、
背の低いアイテムを、ひとまとめにしたい。
でも、ひとまとめにしたアイテムだけ、積み上げグラフにしたい というものです。
まず、背の高い順番に並べます。
こうなりました。
Sales 500k 以下のアイテムをひとまとめにします。
いろいろ方法はあります(Group とか、Set とか)が、今回は、LODの計算式を使います。
[Province 2]
if {fixed [Province]:sum([Sales])} > 500000 then [Province] else "Small Sales" END
Fixed + Sum は、エクセルでいうと、「SUMIF」と同じ感じです。
{fixed [Province]:sum([Sales])} で、『他のDimensionの値に関わらず、[Province]で合計しなさい』という意味になります。
さて、
Columnに、[Province] の代わりに、[Province 2]を持ってきます。
すると、こうなりました。
違うDimensionを持ち込んだので、Sortはやり直しです。
ここで、[Province2]をColor Shelfに持ってくると、以下のようになります。
タブローの機能の中では、ColumnとLabel やColor は、必ずしも一致させる必要はありません。
ですので、[Province2]の代わりに、[Province]をColorに持ってきます。
すると、"Small Sales" の項目だけが、色分けされました。
なんのことはない、通常グラフの中身を色分けしただけで、物理的に通常グラフと積み重ねグラフを並べたわけではありません。
が、まあ、そのように見えるということです。
Color LegendのOrderが、Viewと異なっているので、Legendもソートします。
出来上がりはこのようになります。
では、自分でトライして、楽しんでください。
あれれっ?!軸を同期できない?
昨日の続きで、2軸のグラフの話を続けます。
課題は、違う会社同士を比較するグラフを作るです。
まずは、A 社のみのSalesを表すCalculated Fieldを作成します。If を使用して簡単にできます。
[Sales (=Company A)]
sum(if[Company]="A" then [Sales] end)
ついでに言っておくと、例えば、続けてB社の分も作るときは下記の様にして時間を短縮してください。
これで、A社のみのSalesを表すFieldとB社のみのSalesを表すFieldができました。
さて、A社をメイン軸、比較対象のB社を第2軸にしてみます。
続いて、比較対象のB社を折れ線にします。
さらに、第2軸を同期します。軸の編集で、同期を選択するだけです。
Label を入替えて、書式を合わせます。
できました~。
では次、A社と、他社平均を比べます。A社は棒グラフ、他社平均は折れ線です。
まずは、他社平均の計算Fieldを作成。
[Sales (<>Company A)]
sum(if[Company]<>"A" then [Sales] end)/2
Duplicateを使うと早いです。
さて、第2軸に持って行ってみます。
この場合は、既存のピルを上書きします。
第2軸を同期します。
あれれっ!!??
明らかに同期できてないのに、クリックするところがグレイアウトされています。
仕方ないので、マニュアルでってのはエレガントではないので、考えてみます。
さっきはできたのに、急にできなくなりました。さっきとの違いは。。。
そう、小数点です。
タブローでは、Field形式の種類をいくつかのカテゴリーに分けて判断しており、整数は
"Integer"、小数点を含むものは "float" とカテゴライズされています。これは表示形式ではなく、Fieldの中身の問題です。なので、Fieldの形式を揃えるには、計算式そのものを変更してあげる必要があります。
[Sales (<>Company A)]
int(sum(if[Company]<>"A" then [Sales] end)/2)
INTはIntegerの略で、整数で表すという意味です。
小数点は切捨になります。
さて、再度チャレンジしてみましょう。
計算式を変更したら、勝手に同期されてました。チェックボックスも復活しています。
できあがりです。
流れ作業をしていて、第2軸が同期できないって時には、Fieldの形式が違っているので、会わせるようにしましょう。というお話でした。
では、自分でトライして、楽しんでください。
思ったとおりに描けない :2軸のグラフの同期について
さて、更新が滞っておりました。
今日は、棒グラフと折れ線グラフを同時に描いてみます。
と、これ自体はさして難しくはないのですが、併せ技でいくつかおさらい。
まず、このグラフから。
先月との差を、今度はパーセンテージで表したいと思います。
テーブル計算を使います。簡単です。
これを、Rows に持って行くと、下のグラフが得られますが、イマイチです。
重ねて折れ線で表示したいと思います。
グラフの右端にドラッグすると、点線が現れます。これが、「2軸目に表示できますよ」のサインです。
取り合えず、重なりましたが、ちょっとダメですね。
折れ線グラフにしてみましょう。
できました~。が、なんかちょっとイヤですよね。
何かというと、棒グラフのY軸のマイナス部分はいらないんです。
折れ線だけ、マイナスがあれば良いです、この場合は。
さて、軸は、マニュアルでも設定できるので、メインのY軸の最小値を「0」にすることで、解決できます。。
が、そのやり方はエクセレントではありません。
で、そのエクセレントなやり方はこうです。
"Include zero" をCheck なしにします。
すると、
できました~。
Lavelの表示だけ、直しておきます。CTRLキーを押しながら、テーブル計算のピルを
折れ線グラフのラベルに持ってきます。
(一部、ラベルの重なりがありますが、まあ、パワーポイントで見せるなら修正が必要かもって内容ですね。タブロー使いなら、あんまり気にする必要ないレベルです。)
ひとつ注意があって、この「"Including zero" をCheckしない」をメイン軸でやると、こうなります。
一瞬、できたように見えますが、これは大きな間違いです。
Zeroを含まないので、底の数値が12800 あたりから始まっています。
これは、棒グラフでは絶対にやってはいけない表し方です。
ので、注意してください。
では、ご自分でトライして楽しんでください。
エクセルだと無理(たぶん)- 先月との差を表示する
友人から、「エクセルとの違いを教えておくれ」と言われました。
まぁ、随分違うのですが、角度を変えて、なぜタブローぢゃないといけないのか、一つの例を出します。
先日のデータを使って説明します。
まずは、タブローのグラフ
続いて、エクセルのピボットグラフ
忘れてた! エクセルって、Label 貼り付けるの、一つ一つかよ~。またこれで時間かかるがな。
それに、この前やったように、合計数値を表示するって方法
は、エクセルでは分からずじまいでした。どなたかご存知であれば、教えてください。
ともかく、ここまでは、大きな差はないです。
ここで、先月との差をこのグラフに合わせて表示させたいと思います。
両方の作業を再現してみましょう。
まずはエクセル
エクセルのできあがりはこれです。
まあ、使えたもんではないですね。工夫の余地はあるかも知れないですが、省略します。
あんまり時間ないんで 。
次にタブロー
タブローのできあがりはこれ ↓ 見れますね。
となりにおいてみます。
これだけでも、十分差は示せているのですが、
さらに、Companyごとのグラフを表示させたいとします。
え~っと、エクセルの分は省略させてください。あしからず。。。
だって、きちんと見れるグラフにしようと思ったら、
Company の 数 (3通り) x (通常+先月との差)の6種類のグラフを準備して、
それぞれにラベルと色を整えて、、、
すみません。先を急ぎますもので。。
タブローくん、ちょっと代わりにやってみて。
できちゃいました。
早いね~。
これで、月々のSales、先月との差を会社ごとに一覧で表示できました。
加えて、Y-軸のスケールが自動で同期されているので、一つのCompanyが少なめのSalesでも、だまされる事はありません。
軸の同期ってすごく重要で、会社内でも、
「絶対量が少ないのに差が大きいグラフと、絶対量が大きくて差がそこそこのグラフを同時に並べられて、無駄な議論に時間を費やす」
って結構あったんですよね。
かと言って、そうならないようにグラフを作るのは、それはそれで結構大変だったんです。
さて、グラフに戻ると、いくつかの目に付く点をすぐに指摘することができます。
Company A:製品ごとには比較的安定したセールスですが、いくつかのポイントで大きな差があります。
Company B:Prod.3 に関して、触れが大きいです。
Company C:Prod.4 に関して、触れが大きいです。
それに、例えば、特定の製品の結果を強調して見せたい(見てみたい)時には、
カラー凡例のところで、例えば "Prod.5" を選択すれば、それだけハイライトして見せてくれます。
上記はほんの一例ですが、私が、エクセルでこれ以上消耗したくない理由の一部です。
そして、タブローは私の救世主になりましたとさ。
<<タブロー パブリック へのリンク>
では、自分で試して、楽しんでください。
フィルターをかけた後も合計値を残す
昨日のグラフをちょっと変えて、製品ごとの色分けをしてみました。
今日の課題は、製品ごとに色分けした棒グラフを、会社ごとに見せる。
※ ただ~し、会社ごとに見るときも、全体の合計は残したい です。
ゴールを先に示します。こういうことです。↓
意図はお分かり頂けると思います。全体合計の中における、A社の割合と各製品ごとの内訳を視覚的に見たいということです。
ちょ~っと難しいですよ。(知ってれば簡単です)
3社とも表示されている場合は、グラフに問題ありません。
A 社だけフィルターをかけます。
いい感じ。でも、リファレンスラインを見てください。
A社のみの合計になっています。親切に、リファレンスラインも変えてくれたんですね。普通はこれでOKです。
でも、課題は、3社合計も示すです。
今のリファレンスラインをキープしたまま、全体合計を追加します。
でも、そのままでは、できません。Tableauのフィルターはかなり強力で、計算や表示で、自動で他の数字を除いてしまいます。
なので、「これは除いちゃダメよ」ということを特別に指示してあげる必要があります。
Tableauでも最もよく使う計算機能「LOD」(Level of Detail)の出番です。
「LOD」について話し出すと、100ページくらいになると思うので、今の目的に沿った使い方にフォーカスします。このブログでも、今後「LOD」様には再三、ご登場頂く予定です。
[LOD_Sales]
{fixed[Date]:sum([Sales])}
記号 {} が出てきました。これは、LOD の計算のしるしで、計算式入力画面では、紫色で表示されます。
これは、「[Date] が合ってたら、他の項目無視して、全部足してきてね。」って言ってます。
早速、これをDetailに入れて、リファレンスラインを追加してみます。
今回は、"Line" の表示も残すことにします。
すげー、今日は早い。
って思ったんですよ。
そしたら、やっぱりワナがあったんですよね。
やめてほしいわ~。
フィルターをALL にしてみたんですよ。
間違ってま~す。3社あるんで 3倍になってま~す。 orz
これね、解消方法見つけるのに数時間 格闘しました。
分かると簡単。(そんなん、全部そうやけどな!)
ALL
と、A社のみ
できあがり~。
慌ててALL の場合を確認せんと公開して恥ずかしい思いせんで良かったわ~。
では、自分で試して、楽しんでください。
ワークブックのリンク(Tableau Public)
積み重ね棒グラフに合計を表示する
こんなグラフを作ります。
だいたい、必要なことは表示できているのですが、よくある追加の要望があります。
それは、各月の、3社合計の数字を表示したいというものです。
まず、追加の計算式フィールドを追加してみます。
[Total Sales]
total(sum([Sales]))
エラーは出ないので、行けそうですよ。
そのまま、Lavel に持っていて見ましょう。
まあ、いろいろと間違ってくれてます。
まず、横に合計したらダメですね。直します。
よさそうです。
変わりました~。数字も合ってそうです。
って、あかんやん。3つもいらんやん。
これは、別のアプローチが必要そうです。
さて、正解
Y軸で、右クリックして、Add Reference Line を選択。
表示されました。(Totalフィールドは取り除きます)
ひとつのポイントは、リファレンスラインを追加するのですが、「ライン」は表示させないことです。
このように、何かの機能を、「見えない形で追加する」というのは、タブローでのワザの極意のひとつです。
桁が全部表示できてないので、
こんなもんでしょうか。
では、自分でトライして、楽しんでください。
超簡単!日付表示形式を一発で指定する
こんな表を作りたいとしましょう。
最初は、こうなります。
初期設定が、"year" に なってるんですよね。
で、'+' を開いていくと、
このケースでは一月分しかDataがないので、”Day" に辿りつくまで意味ないし、"Day"のビューもイマイチです。
月の真ん中あたりの日付に、それぞれの表示がありますが、最初と最後のほうでは見えません。
”Exact Date” にすれば、元のデータの形式にしてくれるので、やってみます。
何か間違ったことをした、ということを知らされます。
が、ここはこれでOK。
"Discrete" にしてあげます。
ありゃりゃ、元のデータは余分な時間情報を持ってたみたいです。
しょうがないので、
ようやく、見れる形にできました。
いちばん、短いステップで、
Date ==> More ==> Custom ==> MDY 選択 で結構手間がかかってます。。
で、簡単ワザ、誰もここまで読んでない気もしますが。
マウスの右側を押さえたまま、ドラッグします。(普段は左ですよね)
一覧、出してくれま~す。
では、自分で試して、楽しんでください。
データ接続は要りません
さて、最初の小技。
って言っても簡単すぎて、「そんなん誰でも知っとるやろ」ってなるかも知れませんが、秘奥義は後々ということで。。
タブローは、いろんなデータベースに直接接続が可能で、そのバラエティはすばらしいです。
でも、ちょちょっとグラフだけみたいっていうときに(もともとエクセルで作業中だと仮定)、いちいちエクセルをどっかに保存して、データ接続でフォルダから検索して、バイナリファイルだったらタイプをALLにして、シート名選んで。。
って、結構手間なんですよね。
こんなとき、コピペだけで、簡単にタブロー側にデータを再現できます。
以下、通常 (簡単な方法は下のほうです)
画像コピペだけで疲れました。。改めて、
こりゃ、面倒くさいわ。。。
さて、簡単な方法
なお、タブロー側の新しいファイルは、先に開いておかないと、クリップボードのコピーが消えてしまいます。もう一回コピーすれば良いだけですけど、念のため。
はい、できました。
では、自分で試して、楽しんでください。
タブローとの出会い
多くの私の世代のビジネスマンがそうであるように、長らく(おおかた20年以上も)エクセル依存症でした。エクセルのスキルそのものは、会社では重宝しています。途中何度かアクセスを学ぼうとしましたが、スキルの向上とテクニカルな要請がマッチせず、断念しました。
そんな中、2年くらい前に「タブロー」を知り、ファンになりました。
最初に、タブローを知ったのは、アメリカの急成長中の会社の情報としてでした。クチコミでユーザーを増やしながら急成長していると知り、どんなソフト?と、サービス自体にも興味を持った次第です。
そしたら、なんとこれが、めっちゃイケてるんですよ。これが。
僕は、エクセルのマクロがきらいだったんですよね。
バージョンアップの度にトラブるし、途中経過が分からないので、計算が回ったまま終わらなかったりとか。。で、計算式でとことん「チカラワザ」で対応するという、やり方をやってました。で、巨大なサイズのファイルを作りまくってた訳です。。まあ会社の周りもそうな訳ですが。
ピボットも便利なんですけど、イマイチ、イケてないんですよね。ピボット作った後の計算に連携しにくいところがあって。。
で、タブローです。イメージ的には、とりあえずピボット作って、話はそこから。ピボットからピボット作って、さらにそれを小分けにして。。で、望むグラフがすぐに、きれいに書けると。複数のグラフを同時に書いて、軸の同期が取れている。コードじゃないので、計算結果が正しいかどうかも同時に見れる。
今までエクセルで不便だったことをものの見事に解消してくれてます。
これやでこれ。欲しかったんは。 って感じで、今はもう、タブロー LOVE ですよ。
使用頻度は、
昔:エクセル100%
今:エクセル20% タブロー 80%
ってとこでしょうか。
まだまだタブローのスキルをアップするのに苦労していますが、試行錯誤そのものが非常に楽しいです。
さて、ある程度、タブローの知識がついてきたので、備忘録として、小技集を残しておこうかと思い、ここに記録することにしました。
ちょっとずつ集めていこうと思います。
こちらで、英語も書くことにしました。ちょっと無謀かも知れませんが。。