2015-06-13 130 views
2

我一直在尋找解決問題的方法。我已經嘗試了幾個公式,如VLOOKUP,INDEX ..匹配,似乎沒有任何工作。 我有兩個值域像下面在Excel中比較兩個單元格值與一系列值

Date Rate of Interest  Date Charge code Interest Rate 
1/2/2014 1.1  5/27/2015 INTEREST  
3/20/2014 1.2  5/10/2015 INTEREST  
5/20/2014 1.3  4/12/2015 QUARTERLY AUDIT FEE 
10/20/2014 1.3  3/30/2015 LEGAL FEE  
1/10/2015 1.4  2/20/2015 COLLECTION 
6/13/2015 1.5  1/10/2015 COLLECTION 
11/20/2015 1.6  12/20/2014 COLLECTION 
12/20/2015 1.7  8/20/2014 COLLECTION 
12/21/2015 1.8  7/11/2014 INTEREST  
12/22/2015 1.9  6/30/2014 INTEREST  
12/22/2015 2  5/4/2014 COLLECTION 
12/23/2015 2.1  4/12/2014 COLLECTION 
12/24/2015 2.2  4/12/2014 COLLECTION 
12/25/2015 2.3  3/20/2014 COLLECTION 
12/26/2015 2.4  2/10/2014 COLLECTION 
12/27/2015 2.5  1/2/2014 COLLECTION 
12/30/2015 2.6  1/2/2014 ADVANCE 

我需要比較的第一個第二個範圍值,並得到填補第二範圍從第一個利率列。 這是業務規則。第二範圍中的第一個日期單元格值將與第一個日期值列表進行比較,並且如果日期單元格值小於或等於第一範圍中的任何日期列表值,並且相應的費用代碼值對於第二範圍中的日期單元格值是「利息」時,第一範圍中的利率利率列值需要被填充到第二範圍的利率列中。

任何公式或VBA代碼都會有很大幫助。

+0

非常感謝Sami。有效。 – Sunder

回答

0

假設使用列A到E從第2行開始,爲10行數據,這些是一些可能的解決方案。

解決方案1:使用額外的列進行計算。即使您的DATES在第一個範圍內沒有排序,也可以工作。

在E列(第二範圍利率)

=IF(D2="INTEREST",VLOOKUP(F2,$A$2:$B$10,2),"") 

在欄F(用於計算目的額外的列)

=MIN(IF(C2<$A$2:$A$10,$A$2:$A$10,"")) 

注意:第二個公式是數組公式所以PRESS CTRL + SHIFT + ENTER後複製到配方欄或它不會工作。


解決方案2:(如果你不想使用一個額外的列)。將與您的示例一起工作,因爲第一範圍中的DATES按升序排序。

將此公式複製到列E(利率)的公式欄中,但不是按ENTER,而是按CTRL + SHIFT + ENTER,因爲這是一個數組公式。每次更改公式時都需要這樣做。

=IF(D2="INTEREST",INDIRECT("B"&MIN(IF(C2<=$A$2:$A$10,ROW($A$2:$A$10),""))),"") 

注意:這假定您的列A中的日期按照您的示例升序排序。


解決方案3:如果更改遞減日期排序順序才起作用。但公式最簡單。

如果你可以按降序排列而不是升序排列你的FIRST RANGE,那麼使用INDEX和MATCH公式會更簡單。

=INDEX($B$2:$B$10,MATCH(C2,$A$2:$A$10,-1)) 

讓我知道你是否遇到過任何問題。

+0

謝謝你的迴應。已經嘗試過你的配方,但這沒有幫助。我需要用A2:A18和D2 =「INTEREST」檢查C2 <=。還需要獲得具有上述條件的B2值。如果您需要任何其他信息,請告知我。 – Sunder

+0

我的壞..我想念那個小細節。更新了我的答案。 –

+0

這很美妙。恐怕請注意,如果c2 <= a2:a10和d2 ='INTEREST'中的任何一個值,那麼我需要填充相應的列B值(匹配的範圍中的下一個單元格值條件)而不是列B值(其中正在比較單元格C列)。感謝你付出的努力。希望你能幫我解決這個問題。 – Sunder

相關問題