DAX>FILTER関数で商品購入時点の価格を取得する|IT小技5

目次

この記事で分かること

価格の改定履歴が保存された商品マスタから、購入時点の価格を取得する方法
DAX関数の実践的な使い方|FILTER関数を中心に、MAXX関数・AVERAGEX関数の組み合わせ

課題|DAX FILTER関数を使った売上計算

今回は購入月に応じた商品価格を基に売上を算出する方法を解説します。

以下の状況を想定します。

  • 売上履歴テーブルには「購入月・商品・売上個数」が保存されている
  • 商品マスタには「商品・価格・改定月」が保存されている
  • 商品価格は月単位で不定期に改定される
  • 購入時点の価格を売上履歴テーブルに取り込み、個数と掛け算して売上を計算する

<売上履歴テーブル>

購入月、商品名、売上個数が記載されたデータテーブル

<商品マスタ>

商品名、価格、価格改定月が記載されたデータテーブル

答え|DAX FILTER関数を使って価格を取得する

 売上履歴テーブルに、次の計算列(列名:[価格])を追加します。

価格 =
var currentMC=[商品名]
var currentMonth=[購入月]

//購入月における最新改定月を取得<<MAXX + FILTER>>
var selectedMonth=
MAXX(
FILTER(
‘商品マスタ’, 
‘商品マスタ'[商品名]=currentMC &&
‘商品マスタ'[改定月]<=currentMonth
),
‘商品マスタ'[改定月]
)

//取得した改定月に紐づく価格を抽出<<AVERAGEX + FILTER>>
RETURN
AVERAGEX(

FILTER(
‘商品マスタ’,
‘商品マスタ'[商品名]=currentMC &&
‘商品マスタ'[改定月]=selectedMonth
),
‘商品マスタ'[価格]
)

解説|DAX FILTER関数とMAXX・AVERAGEXの組み合わせ

変数定義

currentMC:現在の行の商品名を保持
currentMonth:現在の行の購入月を保持

改定月の選択(selectedMonth)

FILTERで「商品名が一致、かつ改定月が購入月以前」の行を抽出
その中からMAXXで最新の改定月を取得

価格の取得

FILTERで「商品名が一致、かつ改定月がselectedMonth」の行を抽出
その中からAVERAGEXで価格を戻り値として取得する
(同じ商品・月の重複行がある場合、平均を計算する)

まとめ

以上、FILTER関数を使って、商品購入時点での価格をマスタから取得する方法を説明しました。

  • FILTER関数を軸に、MAXXで最新の改定月を特定し、AVERAGEXで価格を取得するのがポイントです。
  • 変数を活用することで、読みやすく管理しやすいDAX式になります。
  • この方法で、購入月に応じた売上金額を算出できるようになります。

Power BIの実務に、ぜひ活用してみてください。(終わり)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

“ねこまご”は、猫の癒しと“孫の手”の実務サポートを合わせた造語です。
Power BI と IT 業務の“こまごま解決”に特化した、実務者向けブログを運営しています。

社内SEを約10年経験した後、2025年にブログ開設しました。
日々の現場で発生する"細かなIT課題"に向き合ってきた中で、
「専門用語なしで理解したい」
「実務でどう使うかを知りたい」
「時間がない中でも効率よく学びたい」
というニーズを強く感じてきました。

私自身、家事・育児・家族サービス・仕事の合間で学び続けている生活者です。限られた時間の中でスキルを磨いていく大変さや、思うように勉強が進まないもどかしさもよく分かります。

だからこそ、このブログでは、
1) Power BI などのITツールのTips(IT小技シリーズ)
2) 初心者でも挫折しないPower BI講座
3) リアルなブログ運営記録(将来的に配信予定)
を、できるだけシンプルに、すぐ実務で使える形にして発信しています。

難しい専門用語を避け、「すぐ役立つITスキル」を届けることを大切にしています。

ITは一気に習得するより、小さな疑問をひとつずつ解消していくことが近道だと考えます。

その“かゆいところに手が届く”存在として、実務力向上やキャリアアップに悩む読者の力になれるブログを目指しています。

コメント

コメントする

CAPTCHA


目次