问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Excel 直角坐标系中若干点直线距离排序问题

发布网友 发布时间:2022-04-22 04:16

我来回答

2个回答

热心网友 时间:2022-04-26 22:54

假设数据在A1:B10,且A1,B1中的数据为首点的XY。
下面的程序可以在D1:C10得到“每个点到前一个点的距离最短的排序”。

代码使用方法:
按住alt依次按F11,I,M
粘贴代码后按F5运行

Sub 距离排序()
Dim a()
a = [A1:B10].Value '将单元格数据读取到内存中,加快运行速度
ReDim Preserve a(1 To 10, 1 To 3) '给数组增加一列标志位,用以存储距离
For i = 1 To 8 '共10个数据所以“前一点”为8时就可以确定9,10的排序了。
a(i, 3) = 9.9E+307 '将初始距离设置成一个非常大的数值,便于排序
For j = i + 1 To 10
a(j, 3) = (a(j, 1) - a(i, 1)) ^ 2 + (a(j, 2) - a(i, 2)) ^ 2 '计算剩下的每个点到前1点的距离(不用再开方了)
Next j
x = WorksheetFunction.Match(WorksheetFunction.Min(Application.Index(a, , 3)), Application.Index(a, , 3), 0) '获取最小距离在数组中的行号
y = i + 1
If x > y Then '交换数据,将最小距离对应的数据放到上一点的下方
t = a(y, 1)
a(y, 1) = a(x, 1)
a(x, 1) = t
t = a(y, 2)
a(y, 2) = a(x, 2)
a(x, 2) = t
End If
Next i
[C1:D10] = a '将排序后的数组写回工作表
End Sub

对问题补充的回复:
增加一个变量R来确定数据的多少,增加一列标志位。结果放在D:F列。
Sub 距离排序()
Dim a()
r = [a65536].End(xlUp).Row '取A列最后一个数据所在的行号,以此确定数据的多少。
a = Range("A1:C" & r).Value
ReDim Preserve a(1 To r, 1 To 4)
For i = 1 To r - 2
a(i, 4) = 9.9E+307
For j = i + 1 To r
a(j, 4) = (a(j, 2) - a(i, 2)) ^ 2 + (a(j, 3) - a(i, 3)) ^ 2
Next j
x = WorksheetFunction.Match(WorksheetFunction.Min(Application.Index(a, , 4)), Application.Index(a, , 4), 0)
y = i + 1
If x > y Then
For z = 1 To 3
t = a(y, z)
a(y, z) = a(x, z)
a(x, z) = t
Next z
End If
Next i
Range("D1:F" & r) = a
End Sub

热心网友 时间:2022-04-27 00:12

sqrt(power((x1-x2),2)+power((y1-y2),2))

这就是两点间距离的计算公式啊。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 excell中,怎样画x-y直角坐标系图? 空调电路板上的 t s r acl acn什么意思 怎么用excel量出直角坐标系中两点间的距离 电动车充电器acl,acn能反接吗 安卓系统怎么安装软件?玩转安卓轻而易举 怎样用excel做个平面直角坐标系 电动车充电器电路板电源acl和acn哪个为正极? excel 直角坐标 电瓶车充电器内电板上的ACI与ACN是什么意思? 如何给EXCEL工资表设置密码? 怎么在Excel 中绘制直角坐标图? 冲电器电路板上的acn代表正极还是负极 如何用excel建立空间直角坐标系? 线路板上的ACN,ACL代表交流电的什么? 如何用EXCEL建立直角坐标系 怎样在excel建立直角坐标系 电瓶车充电器内电板上的ACI与ACN是什么 学生淡妆的画法。 眼部化妆步骤,如何画好淡妆 如何简单画淡妆,简单点的。 安卓手机 怎么安装程序 雷诺420故障码中出现ACN是什么意思 puretalk是什么软件 安卓系统的手机怎么安装软件啊?为什么下载好了,... excel表格横纵坐标怎么设置 如何用电子表格画直角坐标系的图? ACN(Automatic Celestial Navigation)是什么意思... ABN ACN TFN三个都什么意思啊 都代表什么东西 戴尔笔记本1318cmos电池在哪? 给出坐标值(x,y)如何在EXCEL中求角度? 安卓系统的手机怎么安装软件? 空调继电器的英文字母是 什么 acn合作网络什么意思 Euclid的介绍 空调电路板上TH是什么意思 澳洲ABN,ACN是什么? 安卓手机怎样安装苹果软件 戴尔台式电脑主板上的电池在哪? 学Python web开发框架到什么程度可以找到开发的工作 如何获取6位QQ号码