Odległość euklidesowa między dwoma punktami o współrzędnych przechowywanych jako łańcuchy

0

Muszę znaleźć odległość euklidesową między dwoma punktami. Mam połączone współrzędne w jednej komórce. Każdy zestaw współrzędnych jest podobny (x1,y1,z1) i (x2,y2,z2).

Jak mogę to zrobić w programie Excel?

Nidheesh
źródło
Mówisz, że współrzędne są połączone. Czy to oznacza, że ​​masz współrzędne x, yiz w oddzielnych komórkach gdzieś w skoroszycie?
Excellll
Opierając się na twoim komentarzu do odpowiedzi kazoni, brzmi to tak, jakby twoje pytanie nie dotyczyło odległości euklidesowej, lecz sposobu analizowania współrzędnych rozdzielonych przecinkami. Czy to jest poprawne?
fixer1234
Tak, muszę użyć ich osobno, jak w euklidesowej formule odległości
Nidheesh

Odpowiedzi:

1

Wypróbuj następującą funkcję zdefiniowaną przez użytkownika (UDF) :

Public Function distance(s1 As String, s2 As String) As Double
    Dim zum As Double, i As Long
    ary1 = Split(s1, ",")
    ary2 = Split(s2, ",")

    zum = 0
    For i = 0 To 2
        zum = zum + (CDbl(ary1(i)) - CDbl(ary2(i))) * (CDbl(ary1(i)) - CDbl(ary2(i)))
    Next i

    distance = Sqr(zum)
End Function

Funkcje definiowane przez użytkownika (UDF) są bardzo łatwe w instalacji i obsłudze:

  1. ALT-F11 wyświetla okno VBE
  2. ALT-I ALT-M otwiera nowy moduł
  3. wklej rzeczy i zamknij okno VBE

Po zapisaniu skoroszytu UDF zostanie z nim zapisany. Jeśli korzystasz z wersji programu Excel później niż w 2003 r., Musisz ją zapisać plik jako .xlsm, a nie .xlsx

Aby usunąć UDF:

  1. wywołaj okno VBE jak powyżej
  2. usuń kod
  3. zamknij okno VBE

Aby użyć UDF z Excela:

= odległość (A1, A2)

Aby dowiedzieć się więcej o makrach w ogóle, zobacz:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

i

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

i po szczegóły na temat UDF, zobacz:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

Makra muszą być włączone, aby działało!

Oto przykład:

enter image description here

Gary's Student
źródło
0

=sqrt(power(x2-x1,2)+power(y2-y1,2)+power(z2-z1,2))

Lub jako Artykuł w Wikipedii stwierdza:

Euclidean Distance Formula for 3 Dimentions

Edytować: Zobaczyłem, że masz połączone komórki. To trochę komplikuje. Jeśli możesz oddzielić 3 części każdej współrzędnej, jest to trywialne. W przeciwnym razie muszę wiedzieć trochę więcej na temat zakresu liczb, o których możemy mówić? (Myślę trochę =left() =mid() =right magia.)

kazoni
źródło
Znam formułę, o którą zapytałem, jak zastosować tę formułę dla dwóch połączonych komórek w programie Excel
Nidheesh
Czy twoje komórki są ustawione tak, jak punkt 1 to [3] [5] [7], a punkt 2 to [4] [8] [12] czy jest to [3,5,7] [4,8,12]?
kazoni
jak [3,5,7], [1,2,3]
Nidheesh
zakres każdej współrzędnej wynosi 1 do 5
Nidheesh
Ok, możesz uciec z czymś takim (załóżmy, że x1 to komórka A1, x2 to komórka A2): =sqrt(power(left(A2,1)-left(A1,1),2) + power(mid(A2,3,1)-mid(A1,3,1),2) + power(right(A2,1)-right(A1,1),2))
kazoni