Saltar al contenido

Ayuda con función personalizada: pegar a la par de celda


Recommended Posts

publicado

Buen día a todos.

Acudo a ustedes para solicitar su apoyo en lo siguiente. Creé una función que me calcula un valor llamado "Azimut". Esta función necesita de 4 parámetros o valores, los mismos que requiero para calcular otra variable que se llama "Distancia". Lo que necesito es que al momento de llamar la función "Azimut" en cualquier celda, automáticamente pegue el valor de la "Distancia" en la columna a la par derecha. Ejemplo, si ejecuto la función "Azimut" en la celda "D6", el valor de la "Distancia" que se pegue en la celda "E6".

La función "Azimut" es esta:

Public Function Azimut(X0, Y0, X1, Y1)
    Pi = 4 * Atn(1)
    
    If (Y1 - Y0) = 0 And (X1 - X0) < 0 Then
        Azimut = 270
    ElseIf (Y1 - Y0) = 0 And (X1 - X0) > 0 Then
        Azimut = 90
    ElseIf (Y1 - Y0) = 0 And (X1 - X0) = 0 Then
        Azimut = 0
    End If
    
    If (Y1 - Y0) <> 0 Then
    
        Azimut = Atn((X1 - X0) / (Y1 - Y0)) * 180 / Pi
        If (Y1 - Y0) < 0 Then Azimut = Azimut + 180
        If (Y1 - Y0) > 0 And (X1 - X0) < 0 Then Azimut = Azimut + 360
    
    End If
    

End Function

Para calcular la variable "Distancia", se usaría ésta fórmula:

Distancia = Sqr((X1 - X0) ^ 2 + (Y1 - Y0) ^ 2)

Adjunto un archivo ejemplo, para ser un poco más explícito de lo que acá indique, y desde ya, agradezco cualquier ayuda que me puedan brindar.

 

Saludos cordiales

Función Azimut.xlsm

publicado

Una UDF solo puede devolver un resultado, una alternativa es una fórmula para obtener la distancia.

En tu ejemplo sería, en H5: 

=((D5 - D4) ^ 2 + (E5 - E4) ^ 2) ^ 0,5

 

.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.