2017-03-03 51 views
0

我有一個很長的Excel包含日期和許多值列。我想要創建一個動態過濾器,用戶可以在兩個單元格中輸入日期範圍,每個列的值將按日期範圍進行過濾,並顯示從過濾值計算出的聚合值。創建用戶界面來篩選和聚合在Excel中

例如,在表:

Row year weight_pounds gestation_weeks 
1 2005 6.0627122049999995 38 
2 2006 7.12534030784 40 
3 2007 7.4406013425 39 
4 2008 3.30032006214 43 
5 2009 7.1099079495 41 
6 2010 7.31273323054 40 
7 2010 9.31232594688 42 

我想在2007年篩選到2009年,並顯示在紙的兩列值的平均值。

我該如何在Excel中解決這個問題?我對VBA沒有經驗,但如果需要的話,我可以向VBA開放。

+0

您是否考慮將您的錶轉換爲數據透視表?日期列可以用作數據透視表過濾器。還是至關重要的是,開始日期和結束日期被分爲兩個單獨的單元格? – MattClarke

+0

@MattClarke,是的開始和結束日期必須輸入到兩個單元格 – user113531

回答

1

定義一個幫助列,用於測試行是否在要求的日期範圍內,並根據該列進行過濾。

假設開始日期在X1,結束日期在X2。假設您的主數據表以A1中的標題開頭。

  1. 然後在D2中的公式可能類似於=and(B2>=X1,B2<=X2)
  2. 將複製公式向下的整個列表給列真假值
  3. 打開過濾器的標題行
  4. 選擇剛TRUE在助手列
  5. 對於平均你可以使用=SUBTOTAL(101,C:C)101參數說給予仍然可見的行的平均值)或=AVERAGEIFS(C:C,B:B,">="&X1,B:B,"<="&X2)(它工作,無論如何m ain數據表已被過濾。