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?


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


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.)


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.