我遇到了一個問題,我希望有一些更有經驗的DAX程序員可以幫助我。我一直試圖在Excel 2013/PowerPivot/PowerView中開發一個儀表板,我想要顯示的圖形之一是以小時計算的中值性能折線圖。然後,我想根據單獨的列過濾數據集和我的績效指標,並將其鏈接到切片機。中位數應該相對於過濾的數據集進行計算。對於中值計算,我試圖在此調整Marco Russo提出的公式(http://sqlblog.com/blogs/marco_russo/archive/2010/07/20/median-calculation-in-dax.aspx)。DAX中的Medians和切片器
爲了說明問題,假設我有兩個表 - MAIN_TABLE和other_table。 MAIN_TABLE具有4 columns- ROWID,HOUR_OF_DAY,performance_metric,和類別。 Other_table有兩列-hour_of_day和median_column。我的目標是找到median_column的公式,這樣它可以顯示按小時計算的中值性能指標,但仍可以按類別進行分割。我試圖用的中位數的計算公式是
=CALCULATE(
MINX(
FILTER(
VALUES(main_table[performance_metric]),
CALCULATE(
COUNTA(main_table[performance_metric]),
main_table[performance_metric] <= EARLIER(main_table[performance_metric]))
> COUNTA(main_table[performance_metric]/2),
main_table[performance_metric]),
FILTER(
main_table,
main_table[hour_of_day] = EARLIER(other_table[hour_of_day])))
或者沒有格式:
=CALCULATE(MINX(FILTER(VALUES(main_table[performance_metric]), CALCULATE(COUNTA(main_table[performance_metric]), main_table[performance_metric] <= EARLIER(main_table[performance_metric])) > COUNTA(main_table[performance_metric]/2), main_table[performance_metric]), FILTER(main_table, main_table[hour_of_day] = EARLIER(other_table[hour_of_day])))
然而,當我創建基於在MAIN_TABLE類切片機,我的圖表似乎並不受切片機影響。我的理解是,通過把相對於ALL(MAIN_TABLE)作爲最後一個過濾器調用的第一個參數MAIN_TABLE,我的中位數計算將受到應用於MAIN_TABLE片和過濾器。我在這裏錯過了很明顯的東西嗎