搜索多个日期范围中的日期并返回相应的值

时间:2015-09-13 10:13:00

标签: excel excel-formula date-range

在表1中,我按时间顺序列出了A列中的日期列表。列B中有与此列表对应的值。表2中还有另一个日期列表,我想将表1中的值添加到这些日期。

Sheet 1.

     **Column A       Column B
      DATE            Amount**
1.  10/01/2015      25,60,000
2.  10/02/2015      26,80,000
3.  01/03/2015      21,55,000
4.  30/03/2015      24,60,500
5.  30/04/2015      28,20,000
6.  30/06/2015      19,00,000

Sheet 2.

     Column A      Column B
1.  21/02/2015     21,55,000
2.  15/01/2015
3.  20/05/2015
4.  25/04/2015

例如:我需要在第1页和第A列中查找21/02/2015并返回与下一个可用日期对应的值。因此,对于2015年2月21日,我需要与下一个可用日期相对应的值,即2015年3月1日,值为21,55,000。如果2015年1月15日我需要10/02/2015的价值,即26,80,000

我可以使用什么公式?

3 个答案:

答案 0 :(得分:1)

您可以使用VLOOKUP,但它有一些问题。所以最好使用INDEX和MATCH组合。在你的情况下试试这个

=INDEX('Sheet 1'!$B:$B,MATCH(A1,'Sheet 1'!$A:$A,-1))

抱歉,我之前的回答仅适用于降序排列。试试这个

=INDEX('Sheet 1'!$B:$B,MATCH(TRUE,('Sheet 1'!$A:$A-A1)=MIN(IF('Sheet 1'!$A:$A-A1>=0,'Sheet 1'!$A:$A-A1)),0))

说明:我希望在Office支持中很好地解释INDEXMATCH

关于条件:

('Sheet 1'!$A:$A-A1)=MIN(IF('Sheet 1'!$A:$A-A1>=0,'Sheet 1'!$A:$A-A1))

这意味着什么?

'Sheet 1'!$A:$A-A1

导致单元格A1中的值与工作表1中A列中的单元格之间存在差异。

MIN(IF('Sheet 1'!$A:$A-A1>=0,'Sheet 1'!$A:$A-A1))

说如果差异是非负的('Sheet 1'!$A:$A-A1>=0),找到这些数字的最小值(MIN函数)。

如果这些数字相等(MATCH函数),则选择B列中的相应数字(INDEX('Sheet 1'!$B:$B,...))。

道歉:在我之前的回答中,我交换了你的例子中的列。我希望现在是正确的。

答案 1 :(得分:0)

正如ExcelEfendisi所说,你可以使用vlookup启用范围查找。在下一个日期而不是在前一个日期获取值的一种简单方法是将所有金额值推到一行,但为了避免重复索引值可能更好 - 比如

1   10/01/15    25,60,000   1  
2   10/02/15    26,80,000   2  
3   01/03/15    21,55,000   3  
4   30/03/15    24,60,500   4  
5   30/04/15    28,20,000   5  
6   30/06/15    19,00,000   6  

然后你可以使用两个vlookup,第一个用来获取你感兴趣的日期之前的日期行的索引,第二个用于提取后续日期的余额值 - 不是很优雅但是它会工作

答案 2 :(得分:0)

尝试此公式(输入Sheet2单元格B2然后复制到最后一条记录)

=INDEX(Sheet1!$B:$B,1+MATCH($A2,Sheet1!$A:$A,1),1)

由于数据按升序排序,请使用MATCHmatch type 1 (less than)获取高下一个项目上方的row,然后添加1,结果为高下一行,使用此rowB列中获取具有公式INDEX的相应记录