テーブル内から人物が同一かつ前月の項目を別列として作成したい…

ホーム フォーラム Power BI Power BI Desktop テーブル内から人物が同一かつ前月の項目を別列として作成したい…

タグ: 

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

    お世話になります。

    以下のようなデータテーブルを所有しております。

    お客様id,売上年月,月次の売上金額
    xxxx1,201902,10000
    xxxx1,201903,5000
    yyyy2,201901,8000
    zzzz3,201902,10000

    ※お客様idと売上年月でレコードは一意になっている前提

    このテーブルに対し、以下のような列を追加したいとき、どのようなdax式を組めば追加可能でしょうか。

    お客様id,売上年月,月次の売上金額,前月,前月売上
    xxxx1,201902,10000,201901,0※該当お客様の前月売上がないため
    xxxx1,201903,5000,201902,10000
    yyyy2,201901,8000,201812,0
    zzzz3,201902,10000,201901,0

    同一のお客様idであり、なおかつ売上年月の1ヶ月前のレコードがある場合、前月レコードの月次の売上金額を列項目として挿入したいです。

    なかなか関数を使いこなせず、良い方法や他のアプローチがありましたら、ご教示いただけますと幸いです。

    • このトピックはtskが4年、 8ヶ月前に変更しました。
    #4617
    Takeshi Kagata
    メンバー
    Up
    0
    Down
    ::

    方針として、表の変換(トランスフォーム) っぽくではなくて月ごとの集計と考えた方がよいのでは?
    テーブル ビジュアルで考えるとよいのだけど、
    ・行見出しが お客様id と 売上年月
    ・必要なメジャーは、月次の売上金額, 前月, 前月売上
    という感じでしょう。

    #4618
    tsk
    参加者
    Up
    0
    Down
    ::

    Takeshi Kagataさん

    ありがとうございます。
    テーブルビジュアルのイメージは
    https://road2cloudoffice.blogspot.com/2017/04/power-bi-desktop.html?m=1
    が近いでしょうか。試してみます。

    懸念点としては
    後出しの話で大変失礼しますが、
    行見出しとなるお客様idの数が実際はかなりの数ありますので、
    売上年月とのかけ合わせで
    テーブルビジュアルにした際に行数がかなり大量になってしまうのではないか、ということと、

    この質問をさせていただいた最終目的として
    お客様id毎の前月の売上→当月の売上規模をランク化
    (例月50万円以上→7、10万以上→6…)
    し、ランク上昇/下降/維持を当月ランクと前月ランクを比較し算出し、
    月毎の推移を見たい、というものがあり
    そのif比較が難しそうだと思いました。

    テーブルビジュアルでも実現可能なものでしょうか。

    #4619
    Takeshi Kagata
    メンバー
    Up
    0
    Down
    ::

    “方針として” です。
    どのような集計をさせるかを テーブル ビジュアル で考えると、列見出し と メジャー という整理ができるでしょうということ。
    で、追加情報を踏まえると 必ずメジャーを定義していくのがベストプラクティスにもなるかと。
    どのビジュアルにするかはご自由にどうぞ。

    #4620
    tsk
    参加者
    Up
    0
    Down
    ::

    Takeshi Kagataさん

    私の説明が度々不足している中、お付き合いいただきありがとうございます。

    浅学で誤りがあったら申し訳ありませんが
    メジャーの定義をすると、ビジュアル内で、軸や凡例としては利用できない、という認識です。

    追加情報含め、ゴールイメージを振り返りますと
    お客様id,売上年月,月次の売上金額,前月,前月売上,ランク増減
    xxxx1,201902,10000,201901,0,維持
    xxxx1,201903,5000,201902,10000,上昇
    yyyy2,201901,8000,201812,0,維持
    zzzz3,201902,10000,201901,0,維持

    のようなテーブルの状態で

    横軸:売上年月 & ランク増減  
    値:お客様idのカウント

    を棒グラフのビジュアルでとりたいのですが、
    となると、やはり列としての定義が必要な気もしております。

    #4621
    Takeshi Kagata
    メンバー
    Up
    1
    Down
    ::

    > 私の説明が度々不足している中、お付き合いいただきありがとうございます。
    > 浅学で誤りがあったら申し訳ありませんが
    お気持ちは大事ですよね。でも、申し訳なく思う必要はないと思います。

    > メジャーの定義をすると、ビジュアル内で、軸や凡例としては利用できない、という認識です。
    ビジュアル次第です。メジャーで集計される“値” が見出し/凡例に使えないだけで、凡例をセットせず複数のメジャーを値フィールドにセットするとメジャー名を凡例として利用できるでしょう。

    ・ランクというと別の意味にも取れてしまうからクラス分け/ビニングですが、これは計算列でよいかと。データソース側でも集計できる可能性もありますし。
    ・”売上年月” は 日付/時刻型 の方が前月とか計算が安易になる可能性が高いかなと
    ・カウントを返す関数は 列を指定する COUNT / DISTINCTCOUNT などや テーブル および テーブル式 を指定できる COUNTROWS などいろいろです。

    #4622
    Ume
    参加者
    Up
    3
    Down
    ::

    コメント失礼します。
    SUMMARIZECOLUMNS関数でやってみました。要件には合致していますでしょうか?
    この方法だと年月を選べば動的に起点を切り替えることが可能ですし、X軸に年月を置けば時系列の推移も把握可能です。
    要件を拝見した際、Powerqueryで集計する方法が浮かびましたが、DAXでなんとなからないかと考えていたら、
    以前に似たようなレポートを作っていたのをすっかり失念しておりました。忘れていた記憶を呼び戻す良い機会になりありがたかったです。

    データはkagataさんのテンプレートファイルを早速使わせていただきました。こちらもありがとうございました。

    • この返信は4年、 8ヶ月前にUmeが編集しました。
    #4629
    Takeshi Kagata
    メンバー
    Up
    1
    Down
    ::

    そう、Excel ワークシートのようにセルを参照ということはできないから、”集計” して結果を得るという考え方が大事です。
    メジャーで定義してならの方針としては、
    ・仮想テーブルに対し列(前月)を追加する。
    ・仮想テーブルの列(当月と前月)を評価した結果を用いて仮想テーブルにフィルタを適用する。
    ・で、行数をカウント
    という感じでしょう。

    データモデルの変更などができないこともあるから、メジャーを定義するということも選択肢としてあった方がよいかと。
    “どっちがいいんですか🤔どっちを勉強したらいいんですか💢”
    って質問が必ずといっていいほどでてくるんですけど、
    “どっちも大事です💢どっちも勉強してください💢”
    だと思ってます。

    #4634
    tsk
    参加者
    Up
    0
    Down
    ::

    Takeshi Kagata さん Hiroshi Umehara さん

    ご回答ありがとうございます。
    チャレンジしてみます。

    一旦当QAとしてはクローズさせてください。
    不明点があれば別トピックであげるかもです。
    長い間お付き合いいただきありがとうございました。

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