0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TableauのLookUp関数とPreviousValue関数の違いを体感した件

Posted at

TableauのLookUp関数とPreviousValue関数の違いを体感した件

背景

仕事で人工管理用のGSSをTableauで可視化する機会があり、その中で LookUp関数PreviousValue関数 の特性を体感しました。この経験を在庫管理など他の分野にも転用できると考え、備忘録として記事にまとめます。


実現したかったこと

以下の4つの要素を 縦軸 に、年月を 横軸 にしたクロス表およびグラフを作成したいと考えました。

  1. 前月繰越工数
  2. 当月供給(supply)工数
  3. 当月需要(demand)工数
  4. 空き工数

計算式は以下の通りです:

前月繰越工数 + 当月supply工数 - 当月demand工数 = 空き工数

ただし、以下の条件を考慮する必要がありました:
・1ヶ月目 には「前月繰越工数」は存在しない。
・前月が赤字の場合、「前月繰越工数」は0とする。


試行錯誤

1. LookUp関数での挑戦

初めに、LookUp関数 を使い「前月繰越工数」を取得しようとしました。

LOOKUP(SUM([工数]), -1)

この関数は、前月の値を取得できるものの、循環参照 が発生し、計算が成立しませんでした。

2. 表計算機能での挑戦

さらに、表計算を使い前月の値を計算に含めようとしましたが、赤字時は0にする条件 を設定できず断念しました。

3. PreviousValue関数の発見

そこで、PreviousValue関数 を試すことにしました。この関数を使うと以下が実現できます:

1ヶ月目 は指定した初期値を返す。

2ヶ月目以降 は1ヶ月前の計算結果を利用する。

具体的には以下のような計算フィールドを作成しました:

IF FIRST() = 0 THEN 0 
ELSE 
    PREVIOUS_VALUE(0) + [当月supply工数] - [当月demand工数] 
END

これにより、条件を満たした「空き工数」の計算が可能となりました。

4. LookUp関数の表示への有用性必要性

一方、「前月繰越工数」そのものの表示には LookUp関数 が必要でした。
PreviousValue関数 では、1ヶ月目の値を2ヶ月目以降も保持してしまうため、前月の値を正しく取得するには以下のような LookUp関数 が適しています:

LOOKUP([空き工数], -1)

まとめ

Tableauで「前月データの取得と計算」を行う際には、用途に応じて関数を使い分ける 必要性を体感しました:

LookUp関数:特定の月の値を表示する際に便利。

PreviousValue関数:ループ処理のような累積計算に適している。

これらの関数を適切に組み合わせることで、複雑な計算ロジックを実現できます。同じ課題に直面している方の参考になれば幸いです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?