
こんにちはMJです!
Power BIで日次のスナップショットデータを持っている場合、「月末時点の値」だけを抽出して表示したいケースがよくあると思います。
特に、在庫、契約件数、利用者数といった「ある時点の状態」を示すスナップショットデータは、月末の値のみを集計するほうが分かりやすいです。
このとき、Power BIでは CLOSINGBALANCEMONTH 関数を使うことでシンプルに実現できる。
それでは関数の使い方とサンプルをご紹介します。
データ準備
スナップショットデータには、以下のような日付単位のレコードが格納されているとします。
| DATE | PRODUCT_ID | QTY_IN_STOCK |
|---|---|---|
| 2025-01-01 | P-001 | 204 |
| 2025-01-01 | P-002 | 46 |
| ... | ... | |
| 2025-01-31 | P-003 | 82 |
| 2025-02-01 | P-001 | 181 |
| ... | ... |
- DATE は日付型
- PRODUCT_IDは製品コード
- QTY_IN_STOCK はその日のスナップショット値
カレンダーとして使うテーブルを追加します。
| DATE |
|---|
| 2025-01-01 |
| 2025-01-02 |
| ... |
| 2025-01-31 |
| 2025-02-01 |
| ... |
・DATEはスナップショットデータと1:多関係を定義します。
CLOSINGBALANCEMONTH関数の使い方
この関数の構文は以下の通りです。
CLOSINGBALANCEMONTH(
<expression>,<dates>[,<filter>]
)
- expression : 出力する表現式を入力
- dates : 日付列、カレンダー参照
- filter(オプション) : 適用するフィルターを指定
CLOSINGBALANCEMONTH を使ったサンプル
月末時点の値を取得するためのメジャー定義は以下の通りです。
Last_Day_Of_Month =
CLOSINGBALANCEMONTH(
SUM(snapshot[QTY_IN_STOCK]),
'calendar'[DATE]
)
実際のレポートでの表示
このメジャーを、表(Table) で「日付」を軸に置いて表示すると、各月の最終日の値が出力される。

これにより、スナップショットテーブルから「月末の情報」を抽出することができる。
参考:四半期末・年末にも対応可能
類似関数を使えば、月末以外の期間でも取得可能です。
| 目的 | 関数 |
|---|---|
| 四半期末の値 | CLOSINGBALANCEQUARTER() |
| 年末の値 | CLOSINGBALANCEYEAR() |
まとめ
PowerBIでは時系列が含まれるスナップショットデータに対してCLOSINGBALANCE 系関数を活用することで、不要な加工を行わずに簡単に「特定時点のデータ」を取得することができます。是非皆さんも使ってみてください!
運営会社

