任意の2種類の日付期間における比の計算

ホーム フォーラム Power BI Power BI Desktop 任意の2種類の日付期間における比の計算

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

    はじめまして、matsuiと申します。

    「任意の2種類の日付期間における比の計算」について、皆さんのお知恵をお借りしたく思っております。

    もともと、現在のコンテキストを月別のスライサーで指定し、それに対するMoMとYoYを計算しておりました。
    これに対し、「MoM / YoYという表示ではなく、設定した期間内での比較はできないか」と言われました。

    タイムインテリジェンス関数については一通り目を通したのですが、実現方法が思い当たらず…
    実現方法について、何かお心当たりある方は教えていただけると幸いです。

    現状の実装
    cv_lastyear = CALCULATE(SUM(ad[cv]), SAMEPERIODLASTYEAR(‘日付テーブル'[Date]))
    cv_lastmonth = CALCULATE(SUM(ad[cv]), DATEADD(‘日付テーブル'[Date], -1, MONTH))
    cv_mom = DIVIDE(SUM([cv]),[cv_lastmonth]) – 1
    cv_yoy = DIVIDE(SUM([cv]),[cv_lastyear]) – 1

    宜しくお願いします。

    • このトピックはmatsuiが2年、 2ヶ月前に変更しました。
    #6152
    Ume
    参加者
    Up
    0
    Down
    ::

    matsuiさん、初めまして。

    ご要件の設定した期間内での比較とは
    3月、3月あるいは3月、6月等複数月を指定し、前年の同月と比較するということでしょうか?
    それとも
    今年の3月、4月と昨年の4月、5月を比較するということでしょうか?

    #6153
    matsui
    参加者
    Up
    0
    Down
    ::

    Umeさん ご返信ありがとうございます。

    いえ、月単位の比較とは限らず、数日の期間指定もありえます。
    また、比較期間が 全月or前年同月 とは限りません。

    キャンペーンが月を跨る場合があることを想定しているようです。

    下記想定例)
    ・ 現在のコンテキスト「2022/01/21 ~ 2022/02/03」  比較期間「2021/02/02 ~ 2021/02/15」
    ・ 現在のコンテキスト「2022/01/21 ~ 2022/02/03」  比較期間「2021/12/02 ~ 2022/01/03」

    #6154
    Ume
    参加者
    Up
    0
    Down
    ::

    なるほど、キャンペーンですか。
    興味深い事例をありがとうございます。
    だとすると、日付の期間スライサーを2つ用意し、それぞれで任意の期間を指定するやり方はどうでしょうか?
    留意点はこの2つのテーブルはカレンダーテーブルではなく、日付のテーブルで、リレーションは貼らないモデルになる点かと思います。

    #6155
    matsui
    参加者
    Up
    0
    Down
    ::

    Umeさん

    > カレンダーテーブルではなく、日付のテーブル

    CALENDAR 関数を利用しないで、日付というカテゴリデータのテーブルを作るという意味でしょうか?
    またそれらのリレーションを貼らないというのが何を意味しているのかわからず…

    現状
    Adテーブル
    |* (key = ‘Date’)
    |1 (key = ‘Basecalendar’)
    Calendarテーブル

    イメージした改善モデル

    日付テーブル1
    x (リレーションなし)
    Adテーブル
    x (リレーションなし)
    日付テーブル2

    #6156
    Ume
    参加者
    Up
    3
    Down
    ::

    カレンダーテーブルはこの件で言えばAdテーブルにリレーションを張ったテーブルで、そちらは残しても問題ないです。
    日付テーブルと書いたのは単なるスライサー(期間を指定するためのパラメータの役割)です。こちらはリレーションを張りません。
    日付テーブルを作成するのにDAXのCALENDAR関数を使っても問題ないです。
    ですので、matsuiさんが書かれた現状+イメージした改善モデルが正解だと思います。
    添付画像のイメージかと思います。

    キャンペーン毎の実績を出すメジャーは下記を参考にしてください。
    SalesTotal1 =
    CALCULATE (
    SUM ( Sales[Sales_total] ),
    FILTER (
    ALL ( ‘Sales’ ),
    [SalesDate] >= MIN ( ‘Date1′[Date1] )
    && [SalesDate] <= MAX ( ‘Date1′[Date1] )
    )
    )

    #6160
    matsui
    参加者
    Up
    1
    Down
    ::

    Umeさん

    なるほど、わかりました!

    最初はリレーションを張らないっていう発想が初めてでピンときてませんでしたが、リレーションの代わりにFILTER関数の中で関係を持たせるのですね。

    大変勉強になりました、ご丁寧にありがとうございました!

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