
【Tableau】るくおれのLOOKUPtips ②LOOKUPの基本(に見せかけてそこに潜む罠)
どうも、異端者るくおれことLOOKUP([俺],-1)です。
今回はTableauの表計算関数「LOOKUP」についての基本的な使い方を紹介します。みなさんのお役に立てましたら幸いです。
また、こちらはLOOKUP特集連載の第2回目となりますので、ぜひ第1回目の記事もご一読いただけますと嬉しいです。
LOOKUP([俺],-1)という名前に込めた思いも書いてあったりします。
基本テク「前年の値を取得」から表計算の考え方を知る
比べてみよう(この章はしょうもないので読み飛ばして問題ありません。)
私は大谷翔平選手と同い年なのですが、ド級の運動音痴なため彼と比べると野球が下手です。
一方で、サナダムシよりは野球ができると思います。一応、人間なので。
ただこれではあまりにも比較対象が極端です。

(しかもよく見ると軸を対数にしており大谷選手との差を小さく見せている小賢しさ)
それでは、「1年前の自分」と比較したらどうでしょうか?
大谷選手やサナダムシと比較するよりは、いくらか意味のある分析になりそうですよね。
そんな感じで、「前年の値」と比較するというやり方は非常にポピュラーというか、(それが本質的にいいのかはさておき)分析に迷ったら昨対比をみてみる!みたいな風潮があります。
そんなときに役立つのが我らがLOOKUP様でございます。
LOOKUP様大活躍
以下の棒グラフを作成しました。
利益を四半期ごとに集計したものを並べた、特段面白みのないグラフです。

列: SUM([利益])
それではこのグラフに「前年同四半期の値」を二重軸を利用してbar in barグラフで表してみましょう。簡易表計算でも作成できますが、今回は計算フィールドを作成します。すべてはLOOKUP様のために。
LOOKUP(SUM([利益]),-4)
以上を作成して、ビュー内に配置したものが以下です。

列: SUM([利益])、LOOKUP(SUM[利益],-4)を二重軸
※2021年は前年が無いのでnullになっている
-4でホントにいいのか?
いや~できたできた思っていた矢先、ここで1つ問題が起きました。
「…やっぱり四半期じゃなくて、月単位で見たいな。」
それならと日付の四半期を月に変更したところ、思った感じではなくなってしまいましたね。

それもそのはず、さっき作った計算フィールドで-4と指定しています。
これはあくまでも「4個前の値をとってね」という指示であり、何を基準に4個前とするかは、デフォルトではビューに配置されたフィールドにより変動します。
都度都度計算を修正したり作成しても、欲しい値は取れるでしょう。
一方で「前年売上(四半期用)」「前年売上(月用)」…のような形で計算フィールドが膨大になってしまうのも考え物ですよね。
るくおれ的にはちょっと美しくないなと思ってしまいます。
救世主 表計算の編集
ではどうしよう?どうにかして計算フィールドを使いまわせないだろうか?
やってみましょう。
以下のような計算フィールドを作成して、先程の計算と差し替えます。
LOOKUP(SUM([利益]),-1)
「おいおい待ってくれよ、るくおれはん。これじゃあ持ってくるのは一個前の値じゃないか」
そうなんです。1個前というのがポイントです。
この1個前が、「1年前」なのか、「四半期前」なのか、「1か月前」なのかをこちらから指定できれば解決できちゃうよってことです。
(るくおれ名前の由来にも関わりますね。伏線回収)
その名も「表計算の編集」です。そのまんまですね。
(そのまんまといえば「そのまんまガム」ってご存知ですか?駄菓子なんですけど、3個入りで。1個だけすっぱい味なんですよ。グレープ味とかソーダ味とかあって。すっぱいやつはハズレみたいな感じでロシアンルーレット的なコンセプトなんでしょうけど、るくおれ少年はむしろすっぱいやつが好きでした。「すっぱいぶどうにご用心」っていうガムもあったんですけど、完全に同じやり口だったんですよね。3個入りですっぱいのが1個っていう。今調べたらメーカーは別の会社らしい。どっちが先とかの詮索はやめときます。怖いから。)
表計算の編集はビュー内の対象のフィールドを右クリックして選択可能です。

選ぶとポップアップが表示されます。ビューにもよりますがこんな感じ。

「次を使用して計算」のなかにはよくわからないことがいろいろ書いてありますね。これほんとにここだけで記事書けるくらいわかりづらいとこなんですが、一旦ざっくり以下の感じで考えてください。
表:表全体
ペイン:一番粒度が細かいところから1個前
セル:一番粒度が細かいところ
特定のディメンション:どの粒度を基準にするか選ぶ
もうおわかりですね?今回は特定のディメンションを使います。
特定のディメンション⇒オーダー日の年 のみにチェックを入れると…
もう既にうしろのビューはいい感じにできてそうに見えますね。

どの順で計算してるか数字を振ってくれる機能です
これで、計算内の「-1」の定義づけができたのでめでたく完成できました。

というわけで、今回は「安易に-Xとせずにきちんと表計算の編集を意識してね」っていう記事でございました。
表計算って奥深いな~~~
おわりに
表計算はTableau初学者にとって大きなハードルだと思います。
私自身、実は表計算関数がニガテでTableauを始めてから1年くらい使おうとせず放置してました。
しかし、しくみを理解すれば心強い味方です。知は力なりってことですな。
ここまで読んでいただきありがとうございました!
今回ちょっとふざけすぎた気がするので次はもう少しちゃんとやろうと反省しています。
「あのすっぱいガムおいしいよね」って方はいいね&フォローをぜひお願いいたします。それでは!