我有一张包含 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)作为点间向量。