我正在尝试编写一个 Excel 宏,它将根据它们的 x 和 y 坐标计算点之间的累积距离。这是我当前工作表设置的示例:
Point # Code x coordinate y coordinate Cumulative distance between points
1 1 39.4 99.8 0
2 1 42.5 104.5 ?
3 1 43.0 105.8 ?
4 2 34.0 150.5 ?
5 3 38.9 145.9 ?
6 1 46.2 103.4 ?
7 1 48.5 105.3 ?
8 4 67.6 98.5 ?
9 1 50.3 103.2 ?
我需要“点之间的累积距离”列来使用毕达哥拉斯公式计算点与前一点之间的距离=SQRT(((D2-D1)^2)+((C2-C1)^2))))
。对于“点之间的累积距离”列中的每个后续值,该值必须计算先前点之间的距离,并添加计算出的所有距离的总和。
这是踢球者。如果它们的代码均为“1”,我只想计算两点之间的距离。如果您查看我的示例,您会看到我的代码值在 1-4 之间。
因此,在上面的示例中,我想计算点 #2 和 1 之间的距离。接下来,我将计算点 #3 和 2 之间的距离,并将其添加到从列中的前一个单元格获得的值中 ( =点#2和1之间的距离)。接下来我将跳过第 4 点和第 5 点,因为它们没有代码 =“1”。下一个计算将在第 6 点和第 3 点之间进行,因为它们的代码 =“1”。第 8 点将被跳过,因为代码 =“4”。然后计算点 #9 和 7 之间的距离。请记住,每次在“点之间的累积距离”列中计算一个值时,它必须是一个累积值,它将所有先前的值加到它上面。
所以总结一下,我需要以下内容:
- 在“点之间的累积距离”列中计算两个代码 = 1 时点之间的距离(使用 x、y 坐标)。 - 将先前的累积距离添加到单元格值以获得运行总距离。
我希望这很清楚,否则我可以填写任何令人困惑的空白。