如何在Power BI中篩選一個年份之后,顯示該年份最近N年的數據,這是一個有趣的話題,這篇文章將分享如何實現。最終實現的效果如圖1-1。
1-1
第一步:加載數據
將需要分析的數據加載到Power BI中。
第二步:做兩個日期表
其中一個日期表與事實表正常關聯,另一個日期表不與任何表做關聯。
日期表
第三步:將年份篩選器,從DM日期表2中拖到畫布中。
拖放年份到篩選器
第四步:將年份篩選器,從DM日期表中拖到右側表中。
拖放年份到表
第五步:編寫DAX并拖放到右側表中
銷售 數量 動態 最近2年 =
VAR t1 = MAX( 'DM日期表 2'[@日期] )
VAR t2 = EDATE( t1, - 24 )
VAR t3 =
CALCULATE(
[銷售 數量],
KEEPFILTERS(
FILTER(
ALL( 'DM日期表'[@日期] ),
'DM日期表'[@日期] > t2 &&
'DM日期表'[@日期] <= t1
)
)
)
RETURN t3
最終效果如下:
1-1
總結:
從日期表中直接使用年份作為篩選器,由于與事實表有關聯,則無法達到看非篩選年份的效果,因此新建一個日期表與事實表不做任何關聯,當從新建表DM日期表2中篩選年份時,右側表中將顯示全部年份的數據。獲取DM日期表2的最大日期,由于與事實表無關聯,因此對于右側表中每一年都將得到同一個最大日期,不會受到篩選上下文的影響。根據得到的最大日期往前進行推移,減去24個月則相當于向前推移2年。在DM日期表中篩選兩個日期之間的數據,將獲得最近2年的數據。最終結果如預期一樣正確顯示。如果需要使用DM日期表2作為該畫布頁的篩選器,則需要對被篩選的度量值做相關處理,比如使用TREATAS進行重新掛載。