Distância euclidiana entre dois pontos com coordenadas armazenadas como cadeias

0

Eu preciso encontrar a distância euclidiana entre dois pontos. Eu tenho as coordenadas concatenadas em uma única célula. Cada conjunto de coordenadas é como (x1,y1,z1) e (x2,y2,z2) .

Como posso fazer isso no Excel?

    
por Nidheesh 18.06.2015 / 22:51

2 respostas

1

Experimente a seguinte função definida pelo usuário (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

Funções Definidas pelo Usuário (UDFs) são muito fáceis de instalar e usar:

  1. ALT-F11 exibe a janela do VBE
  2. ALT-I ALT-M abre um novo módulo
  3. cole o material e feche a janela do VBE

Se você salvar a pasta de trabalho, a UDF será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover o UDF:

  1. abrir a janela do VBE como acima
  2. limpe o código
  3. feche a janela do VBE

Para usar o UDF do Excel:

= distância (A1, A2)

Para saber mais sobre macros em geral, consulte:

link

e

link

e para detalhes sobre UDFs, consulte:

link

As macros devem estar ativadas para que isso funcione!

Aqui está um exemplo:

    
por 18.06.2015 / 23:20
0

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

Ou como diz o artigo da Wikipédia :

Editar: Vimos depois do fato de que você tinha células concatenadas. Isso complica um pouco as coisas. Se você puder separar as 3 partes de cada coordenada, isso é trivial. Caso contrário, preciso saber um pouco mais sobre que gama de números podemos estar falando? (Estou pensando em um pouco de =left() =mid() =right magic.)

    
por 18.06.2015 / 23:01