Microsoft PowerPivot 2010内で利用する方法を探しています。これにより、適用されるフィルターとスライサーの値に基づいて、関連するランク値を自動的に更新する動的ランキングを実行できます。
これまで見てきたすべての例では、Calculate() DAX 関数を使用しています。この関数は、PowerPivot テーブル内の既存のフィルターを All() 関数を介してオーバーライドします。これにより、ユーザーが適用できる定義済みのフィルターが無視されます。
私の要件を説明するために、以下の例を参照してください。
(PowerPivot ウィンドウ内のソース データ:)
-------------------------------------------------------------------------------------
Claim Number | Claimant Number | Transaction Date | Dollar Amount
------------------------------------------------------------------------------------
ABCD123456 4 1/1/2012 $145.23
ABCD123456 4 8/1/2012 $205.12
ABCD123456 4 9/1/2012 $390.74
VDSF123455 2 3/5/2012 $10.12
VDSF123455 2 9/5/2012 $50.12
VDSF123455 2 12/9/2012 $210.45
------------------------------------------------------------------------------------------
ここで、最初の取引日に基づいて、各請求番号と請求者番号の金額のみを表示する機能が必要です。基本的に、各クレーム番号とクレーム番号グループに関連付けられた最初のトランザクションに関連付けられたドルのみを表示したいと考えています。
私が考えたプロセスは、「partition by - Row_Number()」関数と同様に、[クレーム番号 + クレーム番号] グループごとに動的ランクを作成することでした。このように、ランク値 1 を含む各 [請求番号 + 請求者番号] グループは、この値に関連付けられた最初のトランザクションを表します。
ただし、ユーザーが結果のピボットテーブル内のデータに対してフィルターを適用する場合は、このランク値を変更する必要があります。
これは、上で定義したサンプル データに基づいて以下に示すことができます。
----------------------------------------------------------------------------------------------
Claim Number | Claimant Number | Transaction Date | Dollar Amount | Rank |
---------------------------------------------------------------------------------------------
ABCD123456 4 1/1/2012 $145.23 1
ABCD123456 4 8/1/2012 $205.12 2
ABCD123456 4 9/1/2012 $390.74 3
VDSF123455 2 3/5/2012 $10.12 1
VDSF123455 2 9/5/2012 $50.12 2
VDSF123455 2 12/9/2012 $210.45 3
------------------------------------------------------------------------------------------------
現在、ユーザーがスライサーまたはピボットテーブル内または PowerPivot テーブル自体内のフィルター ドロップダウンを介してフィルターを適用すると、2012 年 2 月 1 日より前の評価日を除外すると、ランク値は自動的に更新され、以下に示すように反映されます。
(フィルター適用)
=============================================================================
Claim Number | Claimant Number | Transaction Date | Dollar Amount | Rank |
============================================================================
ABCD123456 4 8/1/2012 $205.12 1
ABCD123456 4 9/1/2012 $390.74 2
VDSF123455 2 3/5/2012 $10.12 1
VDSF123455 2 9/5/2012 $50.12 2
VDSF123455 2 12/9/2012 $210.45 3
===========================================================================
ご覧のとおり、ユーザーが適用したフィルターに基づいて、非表示になっている請求番号 ABCD123456 に関連付けられている行の 1 つに基づいて、最初の請求グループのランク値が自動的に更新されました。
次に、以下に示すように、ランク値 1 を含むトランザクションに関連付けられた金額のみを表示する追加のメジャーを PowerPivot テーブル内に作成したいと思います。
(フィルターが適用され、新しいメジャーが追加されました)
===============================================================================================
Claim Number | Claimant Number | Transaction Date | Dollar Amount | Rank | Opening Dollar Amt|
================================================================================================
ABCD123456 4 8/1/2012 $205.12 1 $205.12
ABCD123456 4 9/1/2012 $390.74 2
VDSF123455 2 3/5/2012 $10.12 1 $50.12
VDSF123455 2 9/5/2012 $50.12 2
VDSF123455 2 12/9/2012 $210.45 3
================================================== =============================================
次に、このデータを参照して、対応するピボット テーブルを作成し、「開始ドル額」メジャーが、上記で概説したように、グループごとの最初のトランザクションに関連付けられたドルのみを表すようにすることができます。
誰かがこれをどのように達成できるかを概説できれば幸いです。
これには動的ランキングアプローチが良いアイデアかもしれないと思いましたが、最初のトランザクション「VISIBLE」に関連付けられた金額を単純に取得するという私の最終結果/目標を達成するためのより良いアイデアがあれば(適用されたユーザーに基づいて)フィルター) PER GROUP 私は、あなたがどんなアプローチをとっていても耳を傾けます。