2017-05-02 28 views
2

DAX 2013スタンドアロンパワーピボット。メジャーが条件を満たしている場合、DAXの合計数の合計%

私は、商品とブランドの列を含む売上テーブルと、売上列を明示的に合計する売上指標を持っています。手に

タスク:私は製品が明確にフィルタリングされた場合...

  • は、より高いまたは同等の販売量を持っている製品の数を返しますRANK、分割1つのメジャーを作成する必要があります製品の総数で表します。
  • 小計ブランドレベルの場合は、同じブランドを表示します。遅い悪夢 - 私の現在のアプローチがRANKを使用して、ワーキングようだが、ノーゴーランクのMAXXさ

。 Excelでメモリが不足しています。

研究:これは1週間です。これは、どこでも見つけたもっとも関連性の高い投稿です。this question hereですが、MDXです。

私の例の写真では、私は結果に到達するための優れた公式を示しています。理想的には、すべてのヘルパー、1つの数式があるべきではありません。

I.E.

HELPER_PROD:=COUNTX(ALL(PRODUCTS), [SALES]>=[@[SALES]])/COUNTX(ALL(PRODUCTS)) 
HELPER_BRAND:=COUNTX(
       DISTINCT(ALL(PRODUCTS[BRAND])), 
       [SALES]>=[@[SALES]])/
       COUNT(DISTINCT(ALL(PRODUCTS[BRAND])) 

FLOW:Excelは[... [@を使用しないように、ピボットテーブルで、「現在」の結果を参照する方法を見つける必要がある - HELPER_PROD部分はこのようなものになるだろう

RANK:=IF(HASONEFILTER(PRODUCTS[PRODUCT], HELPER_PROD, HELPER_BRAND) 

任意のヒント

答えて

1

を事前に

おかげであなたは、現在のレコードと比較して、「以前の」機能を使用することができます。 can-earlier-be-used-in-dax-measures

使用済みワークブック:Excel File

+0

は感謝ねえ、私は助けに感謝対策で以前の機能を使用して

ProductsWithHigherSales:=CALCULATE(countrows(sales), FILTER(all(Sales), countrows(filter(Sales,Sales[Sales]<=EARLIER(Sales[Sales]))) )) 

。しかし、2つの問題は、1)私は多くのヘルパーテーブルを作成することを避けようとしていた - 私のデータモデルは完璧ではないが、私は当面はそれに固執する必要があります。 2)あなたのソリューションは製品レベルで正常に動作しますが、ブランドの合計では機能しませんが、ブランドをランキングする必要があります。つまり、3点しかないので、この指標で返される値は14などにはなりません。あなたのピボットで私は製品の前にブランドを置く。 EARLIERについての良いヒントですが、私はそれが可能だとは思わなかった - 今これを研究するでしょう。もう一度ありがとう –

関連する問題