Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6978|回复: 17

[已解决]查询数据区间后添加取值---VBA

[复制链接]
发表于 2014-10-22 14:44 | 显示全部楼层 |阅读模式
10学分
本帖最后由 dabei321 于 2014-10-23 14:52 编辑

帮助看看是否有更便捷的方法来解决,这个问题在函数版里讨论了4天,hupin6331老师给出了解决的方法,由于选择区域大所以函数的公式过长,最后还是列为两行来解决的,与hupin6331老师沟通后认为还会有更简便的方法,现前来寻求方法
为了方便我又加了一个表格,在右侧表格中加设了0行的数据,哪个更容易计算就用哪个吧
新建文件夹.rar (443.75 KB, 下载次数: 9)

发表于 2014-10-22 14:58 | 显示全部楼层
数据是那些,要得到什么结果,结果是怎么来的,说清楚,这样能看懂吗
回复

使用道具 举报

发表于 2014-10-22 15:38 | 显示全部楼层
看看这个公式怎么样?
=N(OFFSET(I$2,INT(MOD(A2*10,1)*10),(LOOKUP(A2,{0,0.25,0.401,0.651},{1,2,3,4})-1)*3+1,))+N(OFFSET(I$2,INT(MOD(A2*100,1)*10),(LOOKUP(A2,{0,0.25,0.401,0.651},{1,2,3,4})-1)*3+2,))

评分

参与人数 1 +1 收起 理由
dabei321 + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-10-22 15:57 | 显示全部楼层
baksy 发表于 2014-10-22 15:38
看看这个公式怎么样?
=N(OFFSET(I$2,INT(MOD(A2*10,1)*10),(LOOKUP(A2,{0,0.25,0.401,0.651},{1,2,3,4})- ...

选择的区域很多,数据量大,右侧表向右拉会看到从0-20,共分0-0.249,0.25-0.4,0.401-0.65,0.651-1,1.001-1.1,1.101-1.24,1.241-1.578,1.579-2.205,
2.206-2.805,2.806-3.158,3.159-4.734,4.735-6.314,6.315-7.892,7.893-9.474,9.475-11.058,11.059-12.642,12.643-14.226,14.227-
15.808,15.809-16.642,16.643-17.226,17.227-18.808,18.809-19.226,19.227-20
00.2490.250.40.4010.650.65111.0011.11.1011.241.2411.5781.5792.2052.2062.8052.8063.1583.1594.7344.7356.3146.3157.8927.8939.4749.47511.05811.05912.64212.64314.22614.22715.80815.80916.64216.64317.22617.22718.80818.80919.22619.22720
回复

使用道具 举报

发表于 2014-10-22 23:12 | 显示全部楼层
咱就是看不懂
回复

使用道具 举报

 楼主| 发表于 2014-10-23 01:16 | 显示全部楼层
su45 发表于 2014-10-22 23:12
咱就是看不懂

是我没有表达明白啊,A列是高度从0-20米,是以毫米数进位的,B列取值是通过A列-在F列的米数范围中选取G列的数值,这个问题通过函数已经解决了,现在要询问的是去D列的值,D列的值是通过A列的后两位数就是厘米数和毫米数在J3-BC11中取值,J3-BC11的范围是分区间的,如J、K列就是一个区间,区间范围是0-0.249,那么A数据小于或等于0.249的后两位取值就在这个范围里查找相加为D列值,如A4为0.002,0.002在0-0.249这个区间段,D4取值就在J、K列中选,0.002厘米数为0在J列中取值为0,毫米数为2,就在K列中取值为444;如A270为0.268,0.268在0.25--0.4这个区间段,D270取值就在L、M列中选,0.268厘米数为6在L列中取值为20814,毫米数为8,就在M列中取值为2775,厘米数+毫米数取值23589为D270的值。这回表达明白了吧
回复

使用道具 举报

 楼主| 发表于 2014-10-23 08:02 | 显示全部楼层
baksy 发表于 2014-10-22 15:38
看看这个公式怎么样?
=N(OFFSET(I$2,INT(MOD(A2*10,1)*10),(LOOKUP(A2,{0,0.25,0.401,0.651},{1,2,3,4})- ...

公式我测试过到D13时就出现错误了,按公式取值是2221根据查表应取值为2443
回复

使用道具 举报

发表于 2014-10-23 11:25 | 显示全部楼层
本帖最后由 su45 于 2014-10-23 12:05 编辑

是这样么:

换算20141020.zip (1.56 MB, 下载次数: 2)

评分

参与人数 1 +1 收起 理由
dabei321 + 1 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2014-10-23 11:51 | 显示全部楼层
好像还有点问题,待咱再修改下!
回复

使用道具 举报

发表于 2014-10-23 12:04 | 显示全部楼层    本楼为最佳答案   
这是修改后的:

换算20141020.zip (1.56 MB, 下载次数: 30)

评分

参与人数 1 +1 收起 理由
dabei321 + 1 很给力!我进行了测试,全部正确,凌晨起来就.

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-25 22:33 , Processed in 0.324422 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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