excel里用vlookup查找最接近目标日期的方法

我需要在excel里用vlookup函数查找一个最接近我需要的这个日期(2001/10/30)所对应的值。
如图:我想把A列里最接近2001/10/30的日期所对应的值作为2001/10/30的值 所以我在G2里输入了如下的公式。按常理来说最接近2001/10/30的日期是2001/11/1,所以G2里显示出来的值应该是2, 但最后这个公式得到的值却是1。求教各位大神如何解决啊??

把G2公式改为这样就行:

=IF(F2="","",INDEX(B:B,MATCH(1=1,MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4),)+1))


或者用这公式也行:

=IF(F2="","",LOOKUP(1,0/(MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4)),B$2:B$4))


如果需要对比更大的范围,如A2:B1000,公式改为这样就行:

=IF(F2="","",INDEX(B:B,MATCH(1=1,MIN(ABS(F2-A$2:A$1000))=ABS(F2-A$2:A$1000),)+1))


以上的公式是数组公式,输入完成后不要直接回车,要按三键  CTRL+SHIFT+回车  结束。


原来提问中的公式,用的是VLOOKUP的糊模查找方式,它的规则是查找最接近当前值且比当前值小的一个数值为返回的结果,而提问中的2001-11-1虽然最接近2001-10-30,但却是比2001-10-30大,所以是不会返回想要的结果的。

 只有2001-10-1是同时符合比2001-10-30小,又是最接近的值,所以提问的公式就返回对应的B列结果 1 了。


我把文件传上来,请点击这回答右下角绿色的“点击下载”按钮,下载文件看看效果。


温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-05

=INDIRECT("B"&MATCH(MIN(ABS($A$2:$A$4-F2)),ABS($A$2:$A$4-F2),)+1)&""

同时按CTRL SHIFT  回车键

下拉

第2个回答  2014-01-05
=OFFSET($A$2,MATCH(SMALL(ABS(F2-OFFSET($A$2,,,COUNTA(A:A)-1,1)),1),ABS(F2-OFFSET($A$2,,,COUNTA(A:A)-1,1)),0)-1,1) 数组公式
第3个回答  2014-01-05
如果 range_lookup 为 TRUE 或被省略,则返回精确匹配值或近似匹配值。
如果找不到精确匹配值,则返回小于 lookup_value 的最大值。 在A2:B4中没有精确配值,返回小于2001/10/30的最大值就是2001/10/1对应的值1,公式返回的值没有错.

excel里用vlookup查找最接近目标日期的方法
=IF(F2="","",INDEX(B:B,MATCH(1=1,MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4),)+1))或者用这公式也行:=IF(F2="","",LOOKUP(1,0\/(MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4)),B$2:B$4))如果需要对比更大的范围,如A2:B1000,公式改为这样就行:=IF(F2="","...

vlookup中目标所在区域中重复数据超过2个,怎么样查找时间最近的那个数据...
这个不能用VLOOKUP函数,先要返回符合产品品种且日期最大的行号,再返回销售人员。公式为:=INDEX(C:C,MOD(SUMPRODUCT(MAX(($A$2:$A$10=F2)*$B$2:$B$10*100+ROW($B$2:$B$10))),100))

excel中vlookup怎么用
当VLOOKUP查找返回的是日期的时候,结果却显示的是数字,例如查找大梦的生日,结果却是数字25637。这种情况,我教你,可以这样做。方法一:在excel中日期的储存本身就是以数字的格式进行储存,我们可以用TEXT函数辅助我们转换格式。1.保持原有的VLOOKUP函数不变 2.在函数前面添加TEXT函数 3.在第二个参数...

在Excel中如何使用查找函数"VLOOKUP"
1、在C2单元格插入函数,选择Vlookup,出现下面结果。2、在函数公式中进行编辑,在Lookup-value中选中我们的搜索参考点,以A列为参考。3、选择确定搜索范围,选中红色区域部分。4、在查找列数中填写2,该数是根据我们选取的参考点姓名列起计算,到我们的目标列。5、按回车键返回计算结果,并将鼠标光标置...

excel 表里面 A列品种,B列日期,C列价格。怎么把相同品种的最近的日期相...
方法如下:1、设原表为sheet1,对b列进行降序排序。(最近的日期在表格最上方)2、在sheet2的a1到c1分别输入“品种”、“日期”和“价格”。3、在sheet2的b2输入:=if($a2="","",vlookup($a2,sheet1!$a:$c,COLUMN(b1),0))然后横拉到c2单元格后,下拉填充就好了。

急求EXCEL中VLOOKUP的使用
1 查找目标:就是你指定的查找的内容或单元格引用。本例中表二A列的姓名就是查找目标。我们要根据表二的“姓名”在表一中A列进行查找。 公式:B13 =VLOOKUP(A13,$B$2:$D$8,3,0) 2 查找范围(VLOOKUP(A13,$B$2:$D$8,3,0) ):指定了查找目标,如果没有说从哪里查找,EXCEL肯定会很为难。所以下一步我...

excel函数,vlookup怎样操作同时满足2个条件的匹配?
首先,将两个条件合并到一个单元格范围,如F2:G2。这样,VLOOKUP函数会将这两个条件视为一个整体进行查找。例如,你可以这样设置:=VLOOKUP(F2:G2, ...)接下来,你需要指定查找的范围。在这个范围中,你需要将业务类型和订单编号作为条件,这可以通过绝对引用的方式锁定,例如$A$2:$B$9。如果你...

Excel 函数查找符合日期内的日期
第二个就是,对于实际的出勤时间,里边的值是个时间,而前边引用的是个日期,所以需要把这个数据处理一下,把时间去掉. 足整天的,在EXCEL里被认做是是整数,而加上时间的,则是小数,需要把小数点后边的去掉再引用.可能需要使用INT函数.第三个问题,因为VLOOKUP只能搜寻到首个符合数据的单元格,第二个你也...

excel函数,vlookup怎样操作同时满足2个条件的匹配?
在目标单元格H2中,输入完整的VLOOKUP公式,例如=VLOOKUP(F2:G2,IF({1,0},$A$2:$B$9,$C$2:$C$9),2,0),这里2代表返回列的索引号,0表示近似匹配。最后,确保正确输入后,按住Ctrl、Shift和Enter键,这三个键同时按下,以完成公式输入并执行查找,结果会显示在H2单元格中。

Excel查找函数lookup、Hlookup、Xlookup、Vlookup(适于WPS)
Vlookup,这位精准的“垂直查找侠”,依靠有序的数据表进行查找,当输入的查找值位于查找向量的顶部时,它确保返回精确匹配。例如,寻找销量对应的名称,=VLOOKUP(D7, B7:B17, A7:A17, FALSE),它犹如精确的尺子,快速锁定目标。Hlookup则是个“横向猎手”,在数据表的行数中游刃有余。当输入日期\/...

相似回答