Dismiss Notice

Register now to be one of the first members of this SharePoint Community! Click here it just takes seconds!

Dismiss Notice
Welcome Guest from Country Flag

[Power BI] DAX入門(4) 動的なランキング計算 –RANKX 関数の活用-

Discussion in 'Official Microsoft News' started by DataPlatJP, Aug 24, 2016.

Thread Status:
Not open for further replies.
  1. DataPlatJP

    DataPlatJP Guest

    Blog Posts:
    0
    Microsoft Japan Data Platform Tech Sales Team​

    土井 貴彦​

    DAX 入門 第 4 回目では、データ集計においてよく使われるランキング計算 (ランク関数) について触れていきます。

    DAX では RANKX 関数や TOPN 関数を使ってランキング計算が可能になっています。今回は RANKX 関数について具体的な使用方法をご紹介していきます。



    ■サンプルデータのインポート

    本記事では こちら の Excel ファイルをデータソースとして用います。(Power BI 自習書サンプルスクリプト として使用されている NorthWindJ データベースの一部となります。)

    Power BI Desktop を起動して、上記の Excel ファイルを指定して商品テーブルと売上テーブルを取り込みます。

    [​IMG]



    ■メジャーの作成

    モデリング メニューから、新しいメジャー をクリックします。

    [​IMG]

    まず、売上金額を単純に集計するためのメジャー [売上計] を作成します。

    売上計 = SUM('売上'[売上])




    つぎに、売上が大きい順に商品ランキングをつけるために、メジャー [商品ランク] を作成します。RANKX の引数の詳細については リファレンス を参照ください。

    商品ランク = RANKX(ALL('商品'),[売上計],,DESC)



    これにより、下記のようなレポートをつくることができます。

    [​IMG]



    ■動的なランキング表示

    たとえばさきほどのレポートで、商品区分名でフィルタリングをした場合、商品ランクは商品テーブル全体の中で何位か、を示します。

    [​IMG]

    絞り込んだ商品区分の中でのランキングを表示したい場合、つまり、フィルター条件に基づいてランキング判定をしたい場合はさきほど作成したメジャーにおいて、 ALL 関数ではなく、 ALLSELECTED 関数を使用します。

    商品ランク = RANKX(ALLSELECTED('商品'),[売上計],,DESC)



    これにより、下記のようなレポートを作成できます。

    [​IMG]



    フィルター機能を使って、下記のように トップ 10 など、任意の数字に絞り込むこともできます。

    [​IMG]



    ■まとめ

    今回は RANKX 関数を使って、ランキング計算をする例を紹介いたしました。作成した Power BI Desktop ファイルは こちら からダウンロードできます。

    ダウンロードいただいた、ranksample.pbit を開くと、下記プロンプトが表示されますので、冒頭でダウンロードした Excel ファイル が置いてあるフォルダパス (例えば、c:tmp など) を入力して読み込みボタンを押してください。

    ※フォルダパスの末尾に が必要なのでご注意ください

    [​IMG]

    Continue reading...
     
Thread Status:
Not open for further replies.

Share This Page

LiveZilla Live Chat Software