1

x 座標と y 座標に基づいてポイント間の累積距離を計算する Excel マクロを作成しようとしています。これが私の現在のワークシート設定の例です。

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」の場合にのみ、2 点間の距離を計算したいと考えています。私の例を見ると、値が 1 ~ 4 のコードがあることがわかります。

したがって、上記の例では、ポイント 2 と 1 の間の距離を計算したいと思います。次に、ポイント 3 と 2 の間の距離を計算し、列の前のセルから取得した値に加算します ( = ポイント 2 と 1 の間の距離)。次に、コード = "1" がないため、ポイント 4 と 5 をスキップします。次の計算は、ポイント 6 と 3 の間になります。どちらもコード = "1" であるためです。ポイント 8 はコード = "4" であるためスキップされます。次に、ポイント 9 と 7 の間の距離を計算します。「ポイント間の累積距離」列で値が計算されるたびに、それまでのすべての値を加算した累積値でなければならないことに注意してください。

まとめると、次のものが必要です。

-「ポイント間の累積距離」列で、両方のコード = 1 の場合のポイント間の距離を (x、y 座標を使用して) 計算します。 -以前の累積距離をセル値に追加して、距離の現在の合計を取得します。

それが明確であることを願っています。そうでない場合は、紛らわしい空白を埋めることができます。

4

1 に答える 1

0

いくつかの余分な列がありますが、ワークシートでこれを行うことができます。

1) 「コピーされた x」と「コピーされた y」という 2 つの新しい列を作成します。行のコードが 1 の場合、その行の x 列と y 列をコピーする数式をこれらの列に入れます。他のコードの場合は、の行からコピーしたx 値と y 値をコピーします。これを行うには、Excel関数を使用します。IF

2) 連続するすべての「コピーされた x」と「コピーされた y」の累積ピタゴラス差を計算します。コードが 1 以外の行には貢献度 0 が追加されます。これは、追加する最後の列です。

于 2014-02-18T14:10:01.137 に答える