Excel 在多个日期范围中搜索日期并返回相应的值
在表1中,我在a列中按时间顺序列出了日期。B列中有与此列表对应的值。第2页中有另一个日期列表,我想将第1页中的值添加到这些日期中Excel 在多个日期范围中搜索日期并返回相应的值,excel,excel-formula,date-range,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,
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列中查找2015年2月21日,并返回下一个可用日期对应的值。因此,对于2015年2月21日,我需要与下一个可用日期(2015年3月1日)对应的值,该值为21,55000。如果是2015年1月15日,我需要2015年2月10日的值,即26,80000
我可以用什么公式呢?你可以用VLOOKUP,但它有一些问题。因此,最好使用索引和匹配组合。在你的情况下,试试这个
=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 Support中能够很好地解释和 关于条件:
('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中列中的单元格之间存在差异
MIN(IF('Sheet 1'!$A:$A-A1>=0,'Sheet 1'!$A:$A-A1))
表示如果差值为非负('Sheet 1'!$A:$A-A1>=0
),则查找此类数字的最小值(MIN函数)
如果这些数字相等(匹配函数),则在B列中选择相应的数字(索引('Sheet 1'!$B:$B,…)
)
道歉:在我之前的回答中,我交换了你例子中的列。我希望它现在是正确的。您可以将vlookup与True一起使用,而不是像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
然后,您可以使用两个vlookups,第一个用来获取行的索引以及您感兴趣的日期之前的日期,第二个用来提取后续日期的余额值-虽然不是很优雅,但它会起作用试试这个公式(输入Sheet2
单元格B2
然后复制到最后一条记录)
当数据按升序排序时,使用
MATCH
和MATCH type 1(小于)
获得高下一项上方的行,然后添加1,结果是高下一行,使用此行
从列B
和公式索引中获取相应的记录您愿意在VBA中这样做还是明确需要公式?公式将是第一优先级,但如果这太难,我对VBA没有任何问题。还有一点:第2页中的数据,列1未排序?否。。它是必需的吗?这会让事情变得更简单,但它不需要排序就可以工作。我不明白,请解释对不起,我现在没有Excel,所以我无法尝试代码。请让我知道,它是否有效,现在是否更容易理解。感谢您的解释,不幸的是,它仍然不起作用,并给出了错误。我想不出这个问题,请告诉我你是否想出来。你能告诉我,如果你尝试从另一个日期中减去一个日期,例如,=A2-A1
,会发生什么情况吗?谢谢。它只提供查找日期之前的值
=INDEX(Sheet1!$B:$B,1+MATCH($A2,Sheet1!$A:$A,1),1)