Quiero definir una función para que esté accesible desde la lista de funciones de Microsoft Excel

Hola,
quiero definir una función para que esté accesible desde la lista de funciones de excel. ¿Es posible?
La función que busco es el resultado de dividir el promedio de los valores positivos en un rango entre el promedio de los valores negativos de ese rango. Esta parte ya se como se hace, pero lo que me gustaría es tenerla guardada para que cuando quiera usarla solo tenga que indicar el rango donde aplicarla
Muchas gracias
Respuesta
1
En primer lugar tendrás tu función en un módulo y con este formato:
Function NOMBRE_FUNCION (argumento 1, argumento 2, ...) As Tipo_de_Variable
'instrucciones
End Function
En este libro, ya la tendrás dentro del grupo de funciones, en la categoría 'Definidas por el usuario'
Si la necesitas para otros libros, crea un libro nuevo, en blanco y colocá la función en un módulo. ¿Cerrá y guardá el libro como Tipo 'complemento' (con extensión xla) (recordá la ruta?)
Desde cualquier libro, vas a menú Herramientas, Complementos, Examinar, y ubicá tu xla creado. Aceptá. Ahora estará disponible para todos los libros. Cuando decidas no seguir utilizando esta función, solo debes quitarle el tilde en la ventana del menú Herramientas, Complementos.
Gracias por tu respuesta, me ayuda bastante. Ahora ya puedo insertar la fórmula desde una celda, pero cuando intento arrastrar la fórmula hacia abajo me sigue cogiendo los mismos datos. Te pongo un ejemplo.
He creado una función para sumar las celdas con valor positivo dentro de un rango. Para ello introduzco 3 parámetros:
Primera fila del rango a sumar
Primera columna del rangoa a sumar
Número de celdas a examinar (en la misma columna). Esta es la función:
Function SUMA_POSITIVOS(filaInicial As Integer, columna As Integer, numeroCeldas As Integer)
suma = 0
For i = filaInicial To filaInicial + numeroCeldas - 1
If Cells(i, columna).Value > 0 Then
suma = suma + Cells(i, columna).Value
End If
Next
SUMA_POSITIVOS = suma
End Function
Muchas gracias
Según veo tu función no tiene referencias a celdas, sino solo números.
=SUMA_POSITIVOS(2;5;4)
Esto al arrastrar a otras celdas sigue siendo la misma función. Para esa función te sugiero modifiques los argumentos: primer fila y primer col por celda quedándote así:
=SUMA_POSITIVOS(C2;7) .
El primer argumento ya te da la fila y la col.
Te sugiero estos cambios. Probá si cumple con lo que necesitas:
Function SUMA_POSITIVOS(miCelda As Range, numeroCeldas As Integer)
Dim suma, I
Dim filaInicial, columna As Integer
suma = 0
filaInicial = miCelda.Row
columna = miCelda.Column
For I = filaInicial To filaInicial + numeroCeldas - 1
If Cells(I, columna).Value > 0 Then
suma = suma + Cells(I, columna).Value
End If
Next
SUMA_POSITIVOS = suma
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas