![見出し画像](https://assets.st-note.com/production/uploads/images/147296213/rectangle_large_type_2_5d890cc3700fa846e3d922317854f1ce.jpeg?width=1200)
10.FIRST、LAST、LOOKUIP、INDEX、PREVIOUS_VALUE:表計算関数②
これ、どういう風に使うものなのか・・・
使えないので、使い方をメモ
①FIRST()
現在の行からパーティション内の最初の行までの行数を返します。
・最初の行0、次の行から-1ずつ減少
・最初の行から現在の行まで何行離れているかを返す関数
※離れている行数のことをオフセットと呼称
・この関数で行番号を振って他の表計算(LOOKUP等)に利用する
![](https://assets.st-note.com/img/1720964520021-A8fOt9t57G.png)
LOOKUP
LOOKUP(〇〇,オフセット)
・オフセット=-1 :去年度を参照
・オフセット=0 :翌年度を参照
・オフセット=FIRST() :初年度を参照
・オフセット=LAST() :最終年度を参照
使い方の例
![](https://assets.st-note.com/img/1720970519160-1Viis6LvGt.png?width=1200)
②LAST()
現在の行からパーティション内の最後の行までの行数を返します。
・最後の行を0とし、前の行から+1ずつ増加
![](https://assets.st-note.com/img/1720964639738-R2ujXg1FhZ.png)
使い方の例
![](https://assets.st-note.com/img/1720970797537-BE4sxY46jz.png?width=1200)
③INDEX()
値に関しては並べ替えをせずに、パーティション内の現在の行のインデックスを返します。最初の行のインデックスは 1 から始まります.。
・行に番号をつける関数
・ある枠の中で何番目の項目か
・数える順番は『次を使用して計算』の設定によって変わる
『次を使用して計算』
★表(横)
・各行は独立
・各行の一番左が1、列方向(左から右)に1ずつ増える
![](https://assets.st-note.com/img/1720963999565-XQ2QyKQkfl.png?width=1200)
★表(下)
・各列は独立
・各列の一番上が1、行方向(上から下)に1ずつ増える
![](https://assets.st-note.com/img/1720964108684-Rvo2wowwz7.png)
★表(横から下へ)
・各行は連続。
・一番上の行の一番左が1、列方向(左から右)に1ずつ増える
・最後の列まで来たら次の行の最初の列に行く
![](https://assets.st-note.com/img/1720964207067-BkoNSmu1bF.png)
★表(下から横へ)
・各列は連続
・一番上の行の一番左が1、行方向(上から下)に1ずつ増える
・最後の行まで来たら次の列の最初の行に行く
![](https://assets.st-note.com/img/1720964268567-EN9I8iH1zp.png)
使い方の例
![](https://assets.st-note.com/img/1720965341127-WoqfZxrgDu.png?width=1200)
マークの「INDEX()=1」は、1の時「真」それ以外は「偽」で色付け。
④PREVIOUS_VALUE
前の行のこの計算の値を返す。
現在の行がパーティション内の最初の行の場合は、指定された式を返す。
例
SUM([Profit]) * PREVIOUS_VALUE(1) は SUM(Profit) の累積積を計算
よくわからない、、、
DATA Saberの技術試練 9. HandsOn - Advanced IIのNo11の内容なので、
使い方がわりにメモ
★連続して500,000円を超えている最大週数
500,000円(閾値)を超えている週は1,そうでない場合0
⇒「閾値超え」= IIF(SUM([売上])>=500000,1,0)閾値を連続で超えている数
⇒「閾値超え週数」= IIF([閾値超え]=1,PREVIOUS_VALUE(0)+1,0)最大値のみ表示
⇒WINDOW_MAX([閾値超え週数])=[閾値超え週数] ⇒「真」の時表示
★連続して500,000円を超えている間の最大累計売上額
500,000円(閾値)を超えている週は1,そうでない場合0
⇒「閾値超え」= IIF(SUM([売上])>=500000,1,0)閾値を連続で超えているときの累計売上額
⇒「連続売上額」= IIF([閾値超え]=1,PREVIOUS_VALUE(0)+SUM([売上]),0)最大値のみ表示
⇒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([数量]) ⇒積
![](https://assets.st-note.com/img/1721036180793-k9CIjQQaKb.png)