Anaplanでモデリングをしていて、こんな悩みはありませんか?
- 「過去数年分のデータが入っているせいで、入力したい『当月』まで横スクロールするのが大変」
- 「将来の予測画面なのに、過去の実績期間まで表示されてしまっている」
- 「ダッシュボード(UX)の表示が遅い気がする」
これらはすべて、「Timeフィルター(Time Filter)」を適切に設定することで解決できます。
今回は、Anaplanの導入経験を複数社経験して分かった、Anaplanのベストプラクティス(DISCOモデル)に基づいた、管理しやすくパフォーマンスにも優しいTimeフィルターの作り方を解説します。
1. なぜTimeフィルターが必要なのか?
Anaplanのデフォルト設定では、Time設定で定義された「すべての期間」が表示されます。しかし、ユーザーが一度に見たい情報は経験上、「今年度だけ」や「今月以降(予測期間)」など、特定の期間に限られることがほとんどです。
Timeフィルターを使うメリットは以下の3点です。
- UXの向上: 必要な期間だけを表示し、ユーザーのスクロール手間を省く。
- 誤入力の防止: 入力すべきでない過去の期間などを非表示にできる。
- パフォーマンス(描画)の最適化: 不要なセルをレンダリングしないため、画面表示がスムーズになる。
2. 【実践】Timeフィルターの作り方 3ステップ
Timeフィルターは、各モジュールで個別に作成するのではなく、「システムモジュール」で一元管理するのが鉄則です。
ステップ①:Time Systemモジュールの用意
まず、時間軸に関連する設定を一元管理するためのモジュールを用意します(一般的に SYS00 Time Settings や SYS01 Time と命名されます)。
- Dimension: Time (時間)
- Blueprint設定: Time Scaleはモデルの要件に合わせます(基本はMonth)。
ステップ②:Boolean(真偽値)ラインアイテムの作成
フィルターの正体は、**「表示したい期間に『TRUE』が入っているBoolean形式のラインアイテム」**です。
以下のようなラインアイテムを作成し、数式を設定しましょう。
| ラインアイテム名 | Format | Formula (数式) | 説明 |
| Filter: Current Period? | Boolean | ITEM(Time) = Current Period | 現在の期間(今月)のみTRUE |
| Filter: Actuals? | Boolean | Start() < Current Period | 過去(実績期間)のみTRUE |
| Filter: Forecast? | Boolean | Start() >= Current Period | 未来(予測期間を含む)のみTRUE |
| Filter: Current FY? | Boolean | YEAR(ITEM(Time)) = YEAR(Current Period) | 今年度の期間すべてTRUE |
| Filter: Last 6 Months? | Boolean | MOVINGSUM(1, -5, 0) > 0 ※工夫が必要 | 直近6ヶ月を表示したい場合 |
ポイント:
Current Periodは、Model Settings > Time で設定されている「現在の期間」を参照します。これにより、モデルのカレンダーを更新するだけで、フィルターの適用範囲も自動的に更新されます(メンテナンスフリー!)。
ステップ③:Saved View(保存されたビュー)への適用
フィルター用のラインアイテムができたら、実際にユーザーが見るモジュールに適用します。
- 対象のモジュールを開きます。
- ツールバーの Filter(漏斗マーク) をクリックします。
- Time タブを選択します。
- 以下の通り設定します。
- Select line item to filter by: ステップ①で作ったシステムモジュールを選択
- Line item: ステップ②で作ったBooleanアイテム(例:
Filter: Forecast?)を選択 - Show items that match: Checked (TRUE)
- Apply をクリックし、最後に Viewを保存(Save as) します。
3. よく使う応用テクニック
Q. 「実績」と「見込み」の境目を動的にしたい場合は?
Current Period を基準に数式を組んでおけば、月次更新(Rollover)の作業で Current Period を1ヶ月進めるだけで、自動的に「実績表示期間」が1ヶ月増え、「予測入力期間」が1ヶ月減ります。数式を書き換える必要はありません。
Q. 四半期や年計(Summary)も表示したい場合は?
Booleanラインアイテムの 「Summary」設定 に注意してください。
- Formula:
AnyまたはAllなど適切に設定します。 - Time Summary: 月次レベルでフィルタリングしても、親階層(Q1, FY24など)を表示させたい場合は、Booleanの集計方法を考慮するか、あるいはフィルター設定画面で「親階層を表示するかどうか」のチェックボックスを確認してください。
Q. 特定の「フラグが立った月」だけ表示したい
例えば「キャンペーンがある月だけ入力させたい」場合。
キャンペーン管理モジュールからLookupでTime Systemモジュールにフラグを引き込み、それをフィルター条件にします。これにより、ビジネスロジックに基づいた動的な画面制御が可能になります。
まとめ:Timeフィルターは「システムモジュール」で管理せよ!
今回のポイントを振り返ります。
- TimeフィルターはUXとパフォーマンスの要。
- 各モジュールで個別に日付指定をするのはNG(メンテナンスが大変)。
- Time SystemモジュールにBooleanの数式を作り、それを参照させる。
Current Period関数を活用して、自動更新される仕組みを作る。
この「Time Systemモジュール方式」を採用すれば、モデルのメンテナンス性は劇的に向上します。ぜひ、あなたのモデルにも取り入れてみてください!
