2016-11-16 6 views
1

トランザクションレベルで販売情報を持つテーブルがあります。私たちは、顧客が1年以上の休眠の後に購入した場合に販売担当者に報酬を支払う新しいモデルを導入したいと考えています。これにどれだけ費用がかかるか把握するために、過去365日間に購入者が最初に購入したかどうかのフラグを列に追加します。私は何をしたいのは、過去365日間にその顧客によって行われたすべての販売のためのPowerPivotでの行数であり、かつ0または1DAX - 過去1年以内に行数が必要な列

例に結果を設定するためにIFでラップ:

Order Date Buyer First Purchase in Year? 
1/1/2015 1 1 
1/2/2015 2 1 
2/1/2015 1 0 
4/1/2015 2 0 
3/1/2016 2 1 
5/1/2017 2 1 

ご協力いただければ幸いです。

答えて

1

優れたビジネスユースケース!それはビジネス界では非常に重要です。

これを解消するために、3つの列を作成します.2つは計算で、もう1つは結果で作成します。この方法を理解したら、3つの列の数式をすべて組み合わせて、必要に応じてデータセットに1つの列を作成できます。

ここで結果の画像です: Data

だからここに私が作成した3列です:

  1. 最終購入 - この計算を実行するためには、あなたがたときに知っておく必要がありますが、バイヤーは最後の購入をしました。最終購入以来

    CALCULATE(MAX([Order Date]),FILTER(Table1,[Order Date]<EARLIER([Order Date]) && [Buyer]=EARLIER([Buyer]))) 
    
  2. 日は - 今、あなたは、現在の受注日の最終購入日を比較することができます。 1年

    DATEDIFF([Last Purchase],[Order Date],DAY) 
    
  3. 最初の購入 - 最後に、結果列。これは、最後の購入から365日以上経過したかどうか、または最後の購入列が空白(最初の購入であったことを意味します)であるかどうかを確認し、必要なフラグを作成します。

    IF([Days Since Last Purchase]>365 || ISBLANK([Days Since Last Purchase]),1,0) 
    

さて、あなたは簡単に単一の列にこれら3列のロジックを組み合わせて、あなたが望む結果を得ることができます。お役に立てれば!

メモこのタイプの分析では、最初に提案したように行カウントを行うのは賢明ではありません。後でデータセットを簡単に拡張できます(属性列を追加する場合?)それからあなたは問題を抱えています。だから私があなたと共有したこの解決策はずっと強力です。

+0

ありがとうございました!これは完全に意味をなさない。可能であれば、EARLIERの今後の説明のために何をしているのか説明できますか? –

+0

はい。簡単にいえば、EARLIERでは現在の行を呼び出すことができます。たとえば、現在の行の注文日よりも短い注文日をすべて取得するようDAXに指示した[注文日] RedVII

+0

もう一度おねがいします!非常に役立ちます! –

関連する問題