2016-08-04 134 views
0

我在一列上鮮明的ID的計數 - 這是導致不等於總計分類彙總的總和如下:DAX排名按日期

enter image description here

我想要做的就是排名付款日期按照時間順序排列,並僅選擇要顯示的最高日期。在上面的例子中,Grand Total不會改變,但Townville排不會顯示Distinct Student Count。

這是一個非常具體的要求,我假設有一個簡單的方法來做到這一點在DAX - 我試過玩RANKXMAX,但我沒有接近解決這個問題。

最後一件事 - Rank必須是用戶選擇的時間過濾器的上下文(因此,如果他們選擇2015,它會給出第二條記錄的排名1,並且最高記錄不會顯示。如果他們選擇2015年5月它會給最高的記錄秩1和第二條記錄不會顯示)

回答

1

我認爲這是你在找什麼 - 我添加了一個計算列PowerPivot模型,提供基於最後付款日期和學生的姓名。它的排名將任何學生最早的支付爲1

守則列如下:

=RANKX(FILTER(Table1, [Student Name] = EARLIER([Student Name])), [Last Payment Date]) 

...假設你的表被命名爲「表1」!

FILTER是將排名限制在屬於僅具有該名稱的學生的日期的關鍵。

更新多個表

要設置表之間的關係,去的模式,在電力透視窗口的主頁選項卡中提供的「圖表視圖」。

您可以將字段從一個表拖到另一個表以創建關係。這隻有在至少有一個字段是唯一的時纔有效 - 將模型看作維度模型是個好主意,其中一個表格像一個事實,其他表格的行爲就像維度一樣。

從評論中,我會嘗試讓支付行爲像事實一樣,並將其鏈接到社區和學生表。在這種情況下,然後你可以有下面的代碼:

=RANKX(FILTER(Table1, Related('Students'[Student Name]) = EARLIER('Students'[Student Name])), [Last Payment Date]) 

該計算列將是對你的付款事實表,並使用查找到相關行業。

請注意,在這種特定情況下,只需在用於查找學生姓名的學生ID字段上運行過濾器就會更容易。

+0

謝謝Stewart,我應該補充一點,對我們來說,這些數據都在不同的表格中。我們有一個社區表,一個支付/支付表和一個學生表。有沒有辦法在多個信息表中以這種方式使用Filter? – mwan

+0

我已經爲相關表格案例添加了一個更新 - 如果它還不夠完善,最好用更多的PowerPivot模型的更多細節來更新您的問題。不過希望它有幫助! –

+0

這非常有幫助!謝謝!爲了讓其他人磕磕絆絆,我會花一些時間用最終解決方案更新我的問題。 – mwan