
【Tableau】るくおれのLOOKUPtips ①LOOKUPって何?
どうも、るくおれことLOOKUP([俺],-1)です。
今回よりTableauの表計算関数「LOOKUP」についてのtipsを数回に分け投稿していきます。みなさんのお役に立てましたら幸いです。
まえがき
LOOKUP([俺],-1)ってなんだよって話
気になっているかと思いますので代わりに自分で言いますね。
「どうしてそんな酔狂な名前をしているの?」
イベント等でお会いした方にもよく聞かれますし、自分でもそう思います。
この名前はDATA Saberに挑戦するにあたり名乗るようになった名前です。
個人的に好きな関数であるLOOKUPを用いて、「過去の自分より強くなってやる」という思いを込めて付けました。
(なんでそうなるの?は次の章で説明します。乞うご期待!)
そんなLOOKUPについて、みなさんにもっと知ってもらいたい、使ってもらいたい、という気持ちからこのNoteを投稿するに至ります。
あわよくば、使うたびに私のことを思い出してほしい(呪い)
本題
LOOKUP関数とは?
LOOKUP特集第1回ということで、今回はその性質と基本的な使い方について書いていこうと思います。
TableauにおけるLOOKUP関数とは、表計算関数に属する関数であり、主に別のセルからデータを参照する際に用いられます。
もう少し詳細に説明してみます。
Tableauではビュー内のディメンションに合わせて自動的に集計が行われますが、他のディメンションの領域内にお邪魔して、「ちょっとデータをお借りしますよー」ということができるということです。

ここで冒頭の私の名前の意味に立ち戻ります。
LOOKUP([俺],-1)は一個前の[俺]を参照しています。
つまり、「昨日あるいは先週・先月・去年の自分と比べて今の自分はそれに負けるな、常に成長し続けろ」といった意味が込められている感じです。
こう考えると再来年くらいには新生児の名前ランキング上位にランクインしてもおかしくない、すばらしい名前ですよね。
LOOKUPってVLOOKUPみたいなもん?
LOOKUPと聞くと、Excel関数の「VLOOKUP」「XLOOKUP」を連想する方も多いかもしれません。
「どこか別のセルからデータを引っ張ってくる」という意味では近いことをしていますが、あくまで集計粒度はビュー内のディメンションに準ずることを留意する必要があります。
VLOOKUPだとユーザーIDをもとに他のテーブルからデータを引っ張ってくる…的なことをすることも多いと思いますが、Tableauではそれはリレーションや結合を用いて実施すべき事項です。
LOOKUPを知ることは表計算を知ること也。
(完全に個人的な意見なので賛否はあるかもしれませんが)
LOOKUP関数とPREVIOUS_VALUE関数はTableauにおける表計算関数の根幹にあると考えています。
数多くある表計算関数の内、ほとんど(もしかしたら、全部?)がこの2つでも表現可能となるからです。
例を挙げます。
前月から次月までの売上の合計を計算すると、通常以下のような計算式になります。
WINDOW_SUM(SUM([売上]),-1,1)
これは、以下のようにLOOKUPを用いて書き換えることが可能です。
ZN(LOOKUP(SUM([売上]),-1))
+ZN(LOOKUP(SUM([売上]),0))
+ZN(LOOKUP(SUM([売上]),1))

※2021,2025は前後が欠けているので2ヶ月分
補足ですが、「なんでZNが要るの?」という方のためにZNが無いバージョンを加えてみました。

計算の一部がNULLの場合にはNULLを返してしまうので、先述の通り前後が欠けている(=NULLがある)月に関しては計算結果がNULLとなってしまうのです。
また、今回はLOOKUPが主役なので省きますが、RUNNING関数系はPREVIOUS_VALUE関数を用いることで置き換えられます。
結局何が言いたいのかというと、「表計算というTableau学習者の壁の1つを理解するためには、LOOKUP関数を知ることが近道なのではないか?」という説を提唱したいのです。
この説は地動説並みにTableau界隈を揺るがし、るくおれは異端とされるのですが後にその功績が評価される予定です。
おわりに
LOOKUPに興味湧きました?君も異端者にならないか?
さて、今回LOOKUP関数について基礎的な部分に触れてまいりました。
次回からは具体的な使い方を紹介していこうと思います。
異端者の仲間入りをしたい方、あるいは私を異端審問にかけたい方はいいね&フォローをぜひお願いいたします。