前年同期数値の取得について

ホーム フォーラム Power BI Power BI Desktop 前年同期数値の取得について

  • このトピックには3件の返信、2人の参加者があり、最後にUmeにより2年、 5ヶ月前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #5999
    小林 由和
    参加者
    Up
    0
    Down
    ::

    前年同期の何等かの数値(例えば、売上)をPowerBIで取得する場合以下のようなメジャーを作るのはよくあることかと思います。

    前年同期売上 = CALCULATE(‘カレンダー'[日付],-1,YEAR)

    問題は、このメジャーの計算において、当年(前年をとるための基準の年)のデータが年末ではなく
    例えば6月までしかない状態で、上記のメジャーを動作させた場合、
    以下のような様態になることです。

    Calender
    Date
    ——
    2020/1/1

    2021/6/30

    Fact data MonthlySales
    year-month Sales
    (type date)
    ——————-
    2020-01 1
    2020-02 2
    2020-03 3
    2020-04 4
    2020-05 5
    2020-06 6
    2020-07 7
    2020-08 8
    2020-09 9
    2020-10 10
    2020-11 11
    2020-12 12
    2021-01 13
    2021-02 14
    2021-03 15

    ‘MonthlySales'[year-month] はリレーションシップを’Calender'[Date]との間に持っています。

    また、前年同期のSalesを取得する以下のメジャーも定義してあります。
    Mesure LastYearSales = CALCULATE(SUM(‘MonthlySales'[Sales]),DATEADD(‘Calender'[Date],-1,YEAR))

    これを、2021年を基準年(選択年)として一覧表を表示すると
    以下のように表示されます。
    Table Visual

    ‘Calender'[Date] ‘Monthly'[Sales] LastYearSales
    ————————————————-
    2021/1/1 13 1
    2021/2/1 14 2
    2021/3/1 15 3
    2021/4/1 4
    2021/5/1 5
    2021/6/1 6
    ————————————————-
    TOTAL 42 21

    どうも、PowerBIは
    Step1:カレンダーマスター(Calender)の日付を1年マイナスした日付列のようなものを生成
    Step2:上記で作った1年前の日付にあった、MonthlySalesのSales項目を取得して並べる
    という動作をしているように見えます。

    前年同期という言葉の定義にもよりますが、
    私の顧客の解釈では、
    上記の状態であれば、2021/4から2021/6までは、当年の実績がないのだから
    前年同期数値(上記の例では4,5,6)は取得できるのはおかしい。
    というもので、これは、私も同意見です。
    現在、上記の2021/4から2021/6までを表示させないメジャーを作る方法を探していますが
    インターネットで探しても解決策が見つからず、カレンダーマスターを
    Factデータ(MonthlySales)の最終日、この場合では20201/3/1となるように
    カレンダーマスター(Calender)を調整することで何とかしのいでいます。
    何か解決策はあるのでしょうか?

    #6000
    Ume
    参加者
    Up
    0
    Down
    ::

    小林さん
    私も最初同様に考えましたが、今はDAXの正しい挙動として納得しています。

    今回の場合ですが。
    私なら日付マスタに同期の対象とすべき
    ファクトの最終日付の計算列を追加し
    Calculateで条件付けします。

    今回の例でいえば
    DateWithSales = ‘Calendar'[Date]<= MAX(‘MonthlySales'[SalesDate])
    でDateWithSales=trueとする感じでしょうか。
    参考になれば幸いです。

    #6001
    小林 由和
    参加者
    Up
    0
    Down
    ::

    Umeさん

    先回に続きアドバイスありがとうございます。
    使う人が、そういうものか、と納得してくれると早いのですけど。

    #6002
    Ume
    参加者
    Up
    0
    Down
    ::

    小林さん

    勘違いさせてしまったようですいません。
    DAXの正しい挙動と書きましたが、それしかできないという意味ではなくて
    「私なら・・・」以下の処理で当年の実績がない範囲を対象にしないことができるということです。

    DAXで様々条件付けをすることで、年度末までを分母として進捗を計算する(仕様)
    最終売上日までを分母とする、あるいは最終仕入日までを分母とする
    当月末までを分母とする等、要件に応じて柔軟に対応できるところがDAXの利点と思っています。

4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • このトピックに返信するにはログインが必要です。
ツールバーへスキップ