我一直在寻找解决问题的办法。我试过几个公式,如VLOOKUP,索引..。火柴似乎什么都没起作用。我有两个范围值,如下所示
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代码都会有很大帮助。
发布于 2015-06-13 06:55:50
假设您的数据从第2行开始使用A到E列( 10行),这些是一些可能的解决方案。
解决方案1:使用额外的列进行计算。即使您的日期在第一个范围内没有排序,也可以工作。
E栏中(第2区间利率)
=IF(D2="INTEREST",VLOOKUP(F2,$A$2:$B$10,2),"")在F栏(为计算而增加的一栏)
=MIN(IF(C2<$A$2:$A$10,$A$2:$A$10,""))注意:第二个公式是数组公式,所以在复制到公式栏后按CTRL+SHIFT+ENTER,否则就不能工作了。
解决方案2:(如果您不想使用额外的列)。将使用您的示例,因为第一个范围中的日期按升序排序。
将此公式复制到E列(利率)中的公式栏中,但不按ENTER,而是按CTRL+SHIFT+ENTER,因为这是一个数组公式。每次你改变公式的时候都要这么做。
=IF(D2="INTEREST",INDIRECT("B"&MIN(IF(C2<=$A$2:$A$10,ROW($A$2:$A$10),""))),"")注意:这假设您在A列中的日期按您的示例按升序排序。
解决方案3:只有当您在降序中更改日期的排序顺序时才能工作。但公式是最简单的。
如果您可以按降序排序您的第一个范围,而不是按升序排序,则该公式在索引和匹配中将更加简单。
=INDEX($B$2:$B$10,MATCH(C2,$A$2:$A$10,-1))如果你遇到什么问题请告诉我。
https://stackoverflow.com/questions/30815826
复制相似问题