- 計算フィールドとは
- よく使う関数一覧
- 1. ifelse — 条件分岐・カテゴリ分け
- 2. sumIf — 条件付き集計
- 3. periodOverPeriodLastValue — 前年同期比較
- 3-2. periodOverPeriodLastValue × 日付フィルター問題の回避
- 4. runningSum — 累積集計
計算フィールドとは


作成手順
- 分析画面を開く
- 左側メニューのデータセットを開く
- 「+ 計算フィールド」を押下
- 「名前」と「式」を入力して保存を押下
よく使う関数一覧
1. ifelse — 条件分岐・カテゴリ分け
値に応じてラベルを振り分けたいときに使います。
ifelse(
{担当者コード} = 10000, '営業企画',
{担当者コード} = 11002, '東京学校',
'その他'
)ポイント: 複数のカテゴリにまとめたい場合(例:商品名 → 大カテゴリ)は、データシート側の「列を追加」操作でも可能です。データシート側で対応しておくことでifelseをネストできない関数にも計算フィールド内でフィールドを渡すことができるようになります。
2. sumIf — 条件付き集計
特定の条件を満たす行だけを合計します。フィルターと異なり、条件外のデータもグラフに表示したまま集計できます。
sumIf( {在庫金額}, {在庫滞留月数} >= 13 )複数条件の場合(AND / OR)
sumIf( {在庫金額}, {在庫滞留月数} >= 13 AND {カテゴリ} = '自社品' )フィルターとの違い:
sumIfは条件外のデータを除外せずに合計するのに対し、フィルターは該当しない行をグラフから完全に除外します。
3. periodOverPeriodLastValue — 前年同期比較
前年の同じ期間の値を取得するテーブル計算関数です。
periodOverPeriodLastValue(
sum({金額}),
{発行日},
WEEK,
1
)⚠️ 注意: この関数は テーブル計算関数 のため、ビジュアルに「金額」または「日付」のフィールドが追加されていない場合にエラーが発生します。ビジュアルのフィールド設定を確認してください。
公式ドキュメント: https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/periodOverPeriodLastValue-function.html
3-2. periodOverPeriodLastValue × 日付フィルター問題の回避
periodOverPeriodLastValue を使ったビジュアルに日付フィルターを適用すると、フィルター後に前年値が取れなくなる問題があります。minOver を組み合わせることで回避できます。
// 日付フィールドに minOver を適用してフィルター後も前年値を維持する
minOver(min({日付型フィールド}), [{日付型フィールド}])仕組み: QuickSightは通常の集計関数を処理した後にウィンドウ関数(minOver等)を処理します。これを利用して
periodOverPeriodLastValueが先に計算された後に日付フィールドを処理させることで、フィルター適用後も前年値が正しく取得できます。
⚠️ 制約: ピボットテーブルで行を折り畳むと計算順序が変わるため値が空になる場合があります。この場合はデータソース(Snowflake等)側で計算しておくことを推奨します。
4. runningSum — 累積集計
X軸の順に沿って値を累積合計します。
runningSum(
sum({売上金額}),
[{月} ASC]
)