見出し画像

10.FIRST、LAST、LOOKUIP、INDEX、PREVIOUS_VALUE:表計算関数②

これ、どういう風に使うものなのか・・・
使えないので、使い方をメモ

①FIRST()

現在の行からパーティション内の最初の行までの行数を返します。

表計算関数 - Tableau

・最初の行0、次の行から-1ずつ減少
・最初の行から現在の行まで何行離れているかを返す関数
 ※離れている行数のことをオフセットと呼称
・この関数で行番号を振って他の表計算(LOOKUP等)に利用する

「次を使用して計算」が表(横)の場合

LOOKUP

LOOKUP(〇〇,オフセット)
・オフセット=-1 :去年度を参照
・オフセット=0 :翌年度を参照
・オフセット=FIRST() :初年度を参照
・オフセット=LAST() :最終年度を参照

使い方の例

LOOKUPとFISRT()を組み合わせて、初年度売上との差など出すことができる

②LAST()

現在の行からパーティション内の最後の行までの行数を返します。

表計算関数 - Tableau

・最後の行を0とし、前の行から+1ずつ増加

「次を使用して計算」が表(下)の場合

使い方の例

LOOKUPとLAST()を組み合わせて、最終年度売上との差など出すことができる

③INDEX()

値に関しては並べ替えをせずに、パーティション内の現在の行のインデックスを返します。最初の行のインデックスは 1 から始まります.。

表計算関数 - Tableau

・行に番号をつける関数
・ある枠の中で何番目の項目か
・数える順番は『次を使用して計算』の設定によって変わる

『次を使用して計算』

★表(横)
・各行は独立
・各行の一番左が1、列方向(左から右)に1ずつ増える

★表(下)
・各列は独立
・各列の一番上が1、行方向(上から下)に1ずつ増える

★表(横から下へ)
・各行は連続。
・一番上の行の一番左が1、列方向(左から右)に1ずつ増える
・最後の列まで来たら次の行の最初の列に行く

★表(下から横へ)
・各列は連続
・一番上の行の一番左が1、行方向(上から下)に1ずつ増える
・最後の行まで来たら次の列の最初の行に行く

使い方の例

行の「INDEX()」は『次を使用して計算』は「サブカテゴリ」を選択。「不連続」に設定。
マークの「INDEX()=1」は、1の時「真」それ以外は「偽」で色付け。

④PREVIOUS_VALUE

前の行のこの計算の値を返す。
現在の行がパーティション内の最初の行の場合は、指定された式を返す。

SUM([Profit]) * PREVIOUS_VALUE(1) は SUM(Profit) の累積積を計算

表計算関数 - Tableau

よくわからない、、、
DATA Saberの技術試練 9. HandsOn - Advanced IIのNo11の内容なので、
使い方がわりにメモ

★連続して500,000円を超えている最大週数

  1. 500,000円(閾値)を超えている週は1,そうでない場合0
    ⇒「閾値超え」= IIF(SUM([売上])>=500000,1,0)

  2. 閾値を連続で超えている数
    ⇒「閾値超え週数」= IIF([閾値超え]=1,PREVIOUS_VALUE(0)+1,0)

  3. 最大値のみ表示
    ⇒WINDOW_MAX([閾値超え週数])=[閾値超え週数] ⇒「真」の時表示

★連続して500,000円を超えている間の最大累計売上額

  1. 500,000円(閾値)を超えている週は1,そうでない場合0
    ⇒「閾値超え」= IIF(SUM([売上])>=500000,1,0)

  2. 閾値を連続で超えているときの累計売上額
    ⇒「連続売上額」= IIF([閾値超え]=1,PREVIOUS_VALUE(0)+SUM([売上]),0)

  3. 最大値のみ表示
    ⇒WINDOW_MAX([連続売上額])=[連続売上額] ⇒「真」の時表示

※PREVIOUS_VALUE(0) + SUM([数量]) = 前の数量+0+SUM([数量]) ⇒和
※PREVIOUS_VALUE(1) + SUM([数量]) = 前の数量+1+SUM([数量]) ww
※PREVIOUS_VALUE(0) * SUM([数量]) = 前の数量*0*SUM([数量]) = 0 ww
※PREVIOUS_VALUE(1) * SUM([数量]) = 前の数量*1*SUM([数量]) ⇒積

和の時は(0)、積の時は(1)

この記事が気に入ったらサポートをしてみませんか?