ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 21563|回复: 25

[分享] 用vlookup查询如何返回大于查询内容的最小值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-6-2 18:29 | 显示全部楼层 |阅读模式
        大家都知道,用vlookup函数进行查询,如果没有精确匹配的值,会返回第一列中与要查询结果相近的一个值,例如:
下图中,如果查询温度为160℃时的密度,因为数列中没有正好160℃的值,所以返回了比160小的数值中最大的温度(150℃)的密度即125。用帮助中的话叫做“如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。


但是如果我不想找小于查询值的最大数值,而是想返回200℃对应的值该如何做?或者不用vlookup函数,有没有其它的函数组合能实现这种功能?
如何实现返回的值是不小于(可以等于)要查询数值的最小值
-----------------------------------------------------------------------------------------
在大家的不懈努力下,问题有了突破性进展,现总结如下;
1.用公式
=INDEX(B2:B8,MATCH(TRUE,(A2:A8>=A11),))
   说明:运行时,需要敲入代码后按CTRL+SHIFT+ENTER。

2.用公式
=OFFSET(B1,MATCH(A11,A2:A8,-1),)
   说明:需要索引列(即本例中的A列)从大到小倒序排列

3.用公式
=INDEX(B:B,MIN(IF(A2:A8>=A11,ROW(B2:B8))))
  说明:运行时,需要敲入代码后按CTRL+SHIFT+ENTER。

4.用公式
=VLOOKUP(MIN(IF(A11<=A2:A8,A2:A8)),A2:B8,2,)
   说明:运行时,需要敲入代码后按CTRL+SHIFT+ENTER。

5.用公式
=MAX(IF(A11<=A2:A8,B2:B8))
说明:运行时,需要敲入代码后按CTRL+SHIFT+ENTER。

6.
未完,待续等待您的答案!!!!



为方便大家学习交流,将带有以上公式的表格传上,请见附件 Book1.rar (1.99 KB, 下载次数: 204)

[ 本帖最后由 johnkingv 于 2011-6-9 17:34 编辑 ]
dd.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-6-2 18:44 | 显示全部楼层
  1. =INDEX(B:B,MIN(IF(A2:A8>=A11,ROW(B2:B8))))
复制代码
修改一下

[ 本帖最后由 wscjf 于 2011-6-2 19:55 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-2 18:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 wscjf 于 2011-6-2 18:44 发表
=MIN(IF(A2:A8>A11,B2:B8))数组公式

结果无返回值啊?是不是搞错了啊

TA的精华主题

TA的得分主题

发表于 2011-6-2 18:50 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-6-2 18:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
把对应的数据改一下呢
20         125
160       116
201        104
........................

TA的精华主题

TA的得分主题

发表于 2011-6-2 18:51 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-2 18:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 wscjf 于 2011-6-2 18:50 发表
数组公式,输入公式后,按CTRL+SHIFT+ENTER

按照您说的操作,结果有数据了,但是结果不对啊,返回的是最大的一个值,350℃是对应的86啊
怎么回事呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-2 18:56 | 显示全部楼层
原帖由 醉舞街头 于 2011-6-2 18:51 发表
把对应的数据改一下呢
20         125
160       116
201        104
........................

这个不是错误的原因,如果书180,如何能输出200对应的值呢?
有没有一个公式可以解决问题啊

TA的精华主题

TA的得分主题

发表于 2011-6-2 18:57 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-2 18:59 | 显示全部楼层
原帖由 yfan17 于 2011-6-2 18:51 发表
=INDEX(B2:B8,MATCH(TRUE,(A2:A8>=A11),))

强悍!!!!结果运行正确
进一步要求非分点,有没有办法通过修改lookup函数,来实现我说的功能呢?毕竟您的那个似乎有些复杂,放着这么个简单的函数不用怪可惜的。

有其他放到的达人也不放说出来,大家听听。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-11 06:29 , Processed in 0.052756 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表