2013-06-29 39 views
0

請幫忙。查找excel中日期範圍內的值

我們有兩張表。帳戶列表,另一個是更改日誌。我需要在表1中添加一個新列,其中值爲表2中正確帳戶的金額和正確的有效期。

ex。

 
table 1: 
account# beginning period ending period 
1   January 1, 2012 January 31, 2012 
2   January 12, 2012 February 12, 2012 

table 2: 
account # amount valid period beg  valid period end 
1   10  january 1, 2009  december 5, 2010 
1   20  december 6, 2010  june 1, 2011 
1   30  june 2, 2011   december 1, 2012 
2   13  january 15, 2011  december 15, 2011 
2   20  december 16, 2011  february 20, 2012 

謝謝。

+1

這與VB.NET有什麼關係? VB.NET與VBA不同。 – Tim

回答

2

雖然它有點複雜的要求,但它可以使用內置函數完成(儘管它看起來有點模糊:-))。具體而言,我的意思是函數SUMIFS。

enter image description here

它有幾個參數。

  1. 第一個是要加總的值的區域。在這個例子中是B8:B12。
  2. 第二個是一個區域whith值與某些條件進行檢查。這是A8:A12。
  3. 第三是從第二參數應用於區域的標準。它是(除其他外)賬號#。

因此,公式表示:對B8:B12中行的所有值進行求和,其中賬戶#(A8:A12)等於期望賬戶#(例如A3)。

好吧,這不是全部,你需要指定時間範圍。它會有點笨重,因爲你必須檢查兩個時間段是否重疊(檢查一個日期是否在指定的時間段會更容易)。 但可以這樣做,因爲SUMIFS可以採用另一對標準範圍和標準。但它不能用於OR條件,所以你必須結合更多的SUMIFS。

關於重疊範圍的好文章是例如。 http://chandoo.org/wp/2010/06/01/date-overlap-formulas/

順便說一句:你必須格式化B2:C3和C8:D12中的單元格作爲日期以便能夠比較它們。

+0

該問題需要澄清,因爲第二個表中的範圍比表1中的範圍寬得多。 –

+0

@Andy我沒有看到範圍持續時間差異是一個問題。根據一張表顯示employeeA在2010年6月12日至2011年6月1日的Dept2表中,我可能想知道今年哪個部門employeeA(在Dept8中最多稱爲31/1/13)然後從2/6/11切換到Dept8到31/1/13等。 – pnuts

相關問題