ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

请教数组可以解决吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-3-17 23:58 | 显示全部楼层 |阅读模式
求距离A集合内某点400米范围B集合的ID号.rar (14.56 KB, 下载次数: 11) 描述如下:有个集合X,内有若干2位数据,例如{1001,91;1002,87;1003,99;...},集合X中1001为数值91的ID号,1002为87的ID号,其他类似
                另一个集合Y,内有若干数据,例如{12,100;15,120;17,100;...},集合Y中12为数值,100为条件数值,15为数值,120为条件数值
假设在EXCEL中A列为集合X的ID号,B列为集合X ID号对应的数值,D列为集合Y中的数值,E列为条件数值
目的:在F列及后面的所有列显示(所有集合X中的数值与集合Y中的数值之差的绝对值在条件数值范围内的ID号)
难点:X集合的数组虽然是确定的,但是数据量很大,这样F列之后需要多少列显示符合条件的ID号是不确定的
现实中的问题:在地图一片区域上有N个点(用经纬度定位,ID为命名),在这片点中新增1个A点(用经纬度定位),找出距离A点范围内100米的所有点的ID

TA的精华主题

TA的得分主题

发表于 2013-3-18 00:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
是这样吗,只要少于条件值的对应ID号在当行全部返回

求距离A集合内某点400米范围B集合的ID号.rar

18.03 KB, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-18 01:51 | 显示全部楼层
谢谢楼上,达到了我的目的,但是我在使用经纬计算代替原来的求绝对值就有问题了。
我先描述下计算2个点之间距离的公式,假设X点经纬度分别额为B2、C2,Y点经纬度分别为F2、G2
则XY距离为(6378137*2*ASIN(SQRT(SUMSQ(SIN((RADIANS(C2) - RADIANS(G2))/2))+ COS(RADIANS(C2))*COS( RADIANS(G2))*SUMSQ(SIN((RADIANS(B2)-RADIANS(F2))/2)))))
根据你提供的公式={INDEX($A:$A,SMALL(IF(ABS($B$2:$B$31-$D2)<$E2,ROW($B$2:$B$31),4^8),COLUMN(A1)))&""
}
我把修改成了I2={INDEX($A:$A,SMALL(IF((6378137*2*ASIN(SQRT(SUMSQ(SIN((RADIANS($C$2:$C$400) - RADIANS($G2))/2))+ COS(RADIANS($C$2:$C$400))*COS( RADIANS($G2))*SUMSQ(SIN((RADIANS($B$2:$B$400)-RADIANS($F2))/2)))))<$H2,ROW($B$2:$B$400),4^8),COLUMN(A1)))&""}
就出错了

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-18 14:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
下沉的好快,有人能帮忙解决问题吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-18 16:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
自己验证了一下公式(6378137*2*ASIN(SQRT(SUMSQ(SIN((RADIANS(C2) - RADIANS(G2))/2))+ COS(RADIANS(C2))*COS( RADIANS(G2))*SUMSQ(SIN((RADIANS(B2)-RADIANS(F2))/2)))))
中C2改为$C$2:$C$366,B2改为$B$2:$B$366返回的结果不一致,在Googleearth中进行了验证,修改前的结果是正确的,那估计是这串公式中是不是有像SUMPRODUCK()一样的,可以以数组为参数的函数???
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 05:37 , Processed in 0.028398 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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