如何计算 Excel 中多个匹配行之间的坐标之间的距离?

如何计算 Excel 中多个匹配行之间的坐标之间的距离?

我有一张包含 20,000 行的表格。每行都有一个对象 ID,该 ID 可以在整个表格中出现多次。每行还包含坐标,因为它们是真实世界的点。每个对象可以在表格中出现多次,因为一行代表在图像中找到的对象。1 张图像 = 1 天,因此有日期属性。

我需要查询带有对象 ID 的列,我知道如何使用 INDEX:MATCH 来执行此操作。但是,然后我需要计算每个对象的连续坐标之间的距离。我使用以下公式计算距离:d=(sqrt((x2-x1)^2+(y2-y1)^2))。我遇到的问题是如何创建 Excel 公式来计算连续匹配行之间的距离。

截屏

在示例中,我突出显示了对象 ID 为 30 的行。它们出现了 7 次。我需要计算连续条目之间的距离,30(1) 与 30(2)、30(2) 与 30(3) 等,因此需要进行六次距离计算。我需要对每个对象 ID(不包括单次出现的对象 ID)执行此操作

答案1

A我假设了一个最小数据布局——行分别在列、B和中包含 ID、X 坐标和 Y 坐标C。在列 中D,使用MATCH查找具有相同 ID 的下一行。在列E和 中F,使用INDEX查找相同 ID 的下一个出现的 X 和 Y 坐标。在列 中G,计算此点与下一个点之间的距离。

  • D2=MATCH(A2, A3:A$9, 0)+ROW()
  • E2=INDEX(B:B, $D2, 1)
  • F2=INDEX(C:C, $D2, 1)
  • G2=IF(ISERROR(D2), "", SQRT((E2-B2)^2+(F2-C2)^2))

(用最后一个有效数据行号替换9公式中的D2 )并向下拖动/填充。

     

距离值计算为整数,因为我选择了前两个勾股数(3-4-5 和 5-12-13)作为点间向量。

相关内容