はじめに
OAC(Oracle Analytics Cloud)でデータを分析する際に、過去のデータと比較をするというのは、よくあることだと思います。
そういった比較を実現するための方法はいくつかあり、これまでにも何度か紹介しました。
今回は、「FILTER USING」を使用する方法を紹介します。
サンプルデータ
日付型の列が含まれていれば何でもOKです。
Excelファイルをアップロードしたデータセットを使用します。
特定の月のデータを集計
準備したデータセットを使用して、新規ワークブックを作成します。
現在の日付から前月を計算する式を作成
計算を作成します。
TIMESTAMPADD(SQL_TSI_MONTH, -1, CURRENT_DATE)
これにより、システム日付を基準にして月を「-1」した日付(つまり前月同日)が計算されます。
2025/5/31の1ヶ月前がいつになるのかは、この式で確認できます。
TIMESTAMPADD(SQL_TSI_MONTH, -1, CAST('31-MAY-25' as DATE))
前月の売上計算する式を作成
FILTER USINGを使用します。
書式は
- FILTER(<メジャー列> USING <条件>)
です。
先に作成しておいた式「前月」を使用します。受注日は、もともと存在する日付型の列です。
FILTER(金額 USING YEAR(受注日) * 100 + MONTH(受注日) = YEAR(前月) * 100 + MONTH(前月))
受注日が「2025/09/30」だとしたら、「YEAR(受注日) * 100 + MONTH(受注日)」は「202509」になります。
この計算を実行した日が「2025/10/01」だとしたら、計算式「前月」の値は「2025/09/10」となり、「YEAR(前月) * 100 + MONTH(前月)」は「202509」となります。
これにより、その行は前月の売上と判定され集計の対象となります。
当月の売上を計算
同様の手順で、当月の売上を計算式で求めます。
現在の日付は「CURRENT_DATE」関数で取得できるので、計算式「当月」は作成せず、「当月売上」のみ作成します。
FILTER(金額 USING YEAR(受注日) * 100 + MONTH(受注日) = YEAR(CURRENT_DATE) * 100 + MONTH(CURRENT_DATE))
実行例
※ 2025/10/27 に実行しました
年月を含めた表の例
年月を含めない表の例
比率を求める
当月売上を前月売上で割って比率を求めます。
さらなるカスタマイズの可能性
今回は、システム日付に基づいた前月と当月を計算しましたが、前年同月を計算することも可能です。
TIMESTAMPADD(SQL_TSI_YEAR, -1, CURRENT_DATE)
基準となる日付をシステム日付ではなく、セッション編集やパラメータ値から取得することもできます。
関連情報








