2013-11-21 68 views
0

我遇到了一個問題,我希望有一些更有經驗的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_TABLEother_tableMAIN_TABLE具有4 columns- ROWIDHOUR_OF_DAYperformance_metric,和類別。 Other_table有兩列-hour_of_daymedian_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片和過濾器。我在這裏錯過了很明顯的東西嗎

回答