![見出し画像](https://assets.st-note.com/production/uploads/images/130062757/rectangle_large_type_2_32ef573f3e25d2682d0ce8a9040b1b6a.jpeg?width=1200)
【基礎】Tableau 関数まとめ
自己紹介
初めましてSeitaroと申します。
<経験>
・Webサイトのアクセス解析業務を約1年ほど実務で経験
・Tableauを触ったことはほぼなし
そのためTableau知識が乏しいと考えて備忘録的にNoteを書いています。
Tableau Data Saberを通して学んでいることをTipsとして残していければと思います。
本記事について
Tableau Data Saberの技術試験(Ord1~10)を通して、使用頻度が高く理解しておくべきと考えた関数についてまとめました。
皆さんのお役に立てたら幸いです。
Tableau関数一覧
-数値関連の関数
MAX, MIN
MAX(式), MAX(式1, 式2)
全レコードにおける単一or二つの式の最大値を返す
ex) MAX([売上])
MIN(式), MIN(式1, 式2)
全レコードにおける単一or二つの式の最小値を返す
ex) MIN([売上])
INDEX
INDEX()
パーティション内の現在の行のインデックスを返す
ex)2行目以降:INDEX()>1
RUNNING_MAX
RUNNING_MAX(式)
パーティション内の最初の行から現在の行までの指定された式の累積最大値を返す
ex) 利益の最大値を返す:RUNNING_MAX(MAX([利益]))
LOOKUP
LOOKUP(式, ※)
現在の行から※で指定した位置の式の値を返す
※:現在の行からの相対的な位置:数字
最初or最後の行からの位置:FIRST()+数字 or LAST()-数字
ex) 3番目の行のSUM([利益を返す]):LOOKUP(SUM([利益]), FIRST()+2)
PREVIOUS_VALUE
PREVIOUS_VALUE(式)
ex) 売上の累計:PREVIOUS_VALUE (0)+ SUM (売上)
何をやっているかで言うと
初期値0にSUM(売上)の1行目を足す・・・a
→aの値にSUM(売上)の2行目を足す・・・b
→bの値にSUM(売上)の3行目を足す・・・c
→・・・
と言うことを実施している
WINDOW_MAX, WINDOW_MIN
WINDOW_MAX(式, 開始, 終了)
ウィンドウ内の式の最大値を返す
(開始、終了の値を入れることで行の指定も可能)
ex)前の2行から現在の行までの利益の最大値:
WINDOW_MAX(MAX([利益]), -2, 0)
WINDOW_MIN(式, 開始, 終了)
ウィンドウ内の式の最小値を返す
(開始、終了の値を入れることで行の指定も可能)
ex)前の2行から現在の行までの利益の最小値:
WINDOW_MIN(MAX([利益]), -2, 0)
WINDOW_AVG
WINDOW_AVG(式, 開始, 終了)
ウィンドウ内の式の平均を返す
(開始、終了の値を入れることで行の指定も可能)
ex) 前の2行から現在の行までのSUM([利益])の平均:
WINDOW_AVG(SUM([利益]), -2, 0)
WINDOW_STDEV
WINDOW_STDEV(式, 開始, 終了)
ウィンドウ内の式のデータの標準偏差を返す
(開始、終了の値を入れることで行の指定も可能)
ex)前の2行から現在の行までのSUM([利益])の標準偏差
WINDOW_STDEV(SUM([利益]), -2 ,0)
-日付関連の関数
DATEPART
DATEPART(暦の単位, 日付, 週の始まりの日付)
指定された日付の部分を暦の単位に基づき返す
ex)特定の日付の月を返す:DATEPART('month', #2024 -03-22#) = 3
DATEDIFF
DATEDIFF(暦の単位, 開始日, 終了日, 週の始まりの日付)
2つの日付の差を暦の単位に基づき返す
ex) DATEDIFF('month', #2004-0715#, #2004-04-03#, 'sunday') = -3
-文字列操作の関数
TRIM
TRIM(文字列)
先頭・末尾の空白を削除した文字列を返す。
ex)TRIM(" AAA ") = "AAA"
SPLIT
SPLIT(文字列, 区切り文字, トークン番号)
文字列の先頭・末尾から区切り文字とトークン番号をもとに文字を抽出する
ex) SPLIT('a-b-c', '-', 2) = 'b'
【補足】
こちらTRIMとSPLITに関しては計算フィールドを書くのではなく
データペインから操作できるものに関しては、
変換→分割・カスタム分割を扱う方が性能面でいいです。
参考:
最後に
振り返ってみると色々な関数を使っていることに驚愕しました。
IF文やSUMなどの基礎中の基礎や、Ord内で扱っていない関数については記述しておりませんがそれでも相当な量だと気がつきました。
こちら見てわかるのではなく、見なくても使えるレベルまでの習得を目指してチャレンジしていきますmm