Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写excel宏来计算点之间的累积距离_Excel_Pythagorean_Vba - Fatal编程技术网

如何编写excel宏来计算点之间的累积距离

如何编写excel宏来计算点之间的累积距离,excel,pythagorean,vba,Excel,Pythagorean,Vba,我正在尝试编写一个Excel宏,它将根据点的x和y坐标计算点之间的累积距离。以下是我当前工作表设置的示例: Point # Code x coordinate y coordinate Cumulative distance between points 1 1 39.4 99.8 0 2 1 42.5

我正在尝试编写一个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                      ?
我需要“点之间的累积距离”列,以使用毕达哥拉斯公式=SQRTD2-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坐标计算点之间的距离。 -将以前的累积距离添加到单元格值,以获得运行总距离


我希望这是清楚的,如果没有,我可以填补任何令人困惑的空白。

您可以在工作表上完成这项工作,尽管只需增加几列

1创建复制x和复制y的两个新列。将公式放在这些列中,如果行上的代码为1,则复制该行上的x和y列。对于任何其他代码,请复制上一行中复制的x和y值。使用Excel IF函数执行此操作


2计算所有连续复制的x和y上的累积毕达哥拉斯差值。它将为代码不是1的任何行添加零贡献。这是您添加的最后一个专栏。

+1:您的问题很清楚,提出得很好