Introducción a las funciones personalizadas para las macros de ONLYOFFICE

12 julio 2024By Sergey

Es un placer introducir las funciones personalizadas en ONLYOFFICE Docs 8.1. Esta nueva característica mejorará significativamente tu experiencia con macros en el Editor de hojas de cálculo ONLYOFFICE.

Introducción a las funciones personalizadas para las macros de ONLYOFFICE

Acerca de las funciones personalizadas

Es una característica que te permite insertar funciones personalizadas para calcular diversos parámetros y fórmulas. Gracias a ella, puedes añadir funciones específicas para realizar cálculos concretos, que luego puedes utilizar en tu código de macro.

A continuación se muestra un ejemplo de función personalizada que calcula la suma de dos números basándose en condiciones específicas:

Introducción a las funciones personalizadas para las macros de ONLYOFFICE

Así es como utilizamos esta función en nuestro código de macro:

Introducción a las funciones personalizadas para las macros de ONLYOFFICE

Así es el resultado final:

Introducción a las funciones personalizadas para las macros de ONLYOFFICE

Dónde encontrar: Editor de hojas de cálculo > Pestaña Extensiones > Macros > Funciones personalizadas

Otros ejemplos

Vamos a explorar más ejemplos de funciones personalizadas:

  • Media geométrica
    La media geométrica es una medida de tendencia central que resulta útil para conjuntos de datos que implican multiplicaciones o abarcan varios órdenes de magnitud. Se calcula como la raíz enésima del producto de N números:

GM=(∏i=1n​xi​)n1​

Vamos a implementar una función personalizada para la media geométrica utilizando JavaScript. Utilizaremos el método Math.sqrt:

(function()
{
   /**
     * Function that calculates the geometric mean of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The geometric mean of the two numbers.
    */
    function gm(num1, num2) {
        return Math.sqrt(num1 * num2);
    }
    Api.AddCustomFunction(gm);
})();

Como puedes ver, hemos utilizado el método Api.AddCustomFunction para añadir la función gm y hacerla ejecutable en el ámbito de nuestra macro.

Ahora la ejecutaremos en nuestro código de macro:

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=GM(16, 36)");
})();
  • Media armónica
    La media armónica es una medida de tendencia central que resulta útil para conjuntos de datos que implican tasas o proporciones. Resulta especialmente adecuada cuando los valores de los datos se definen en relación con alguna unidad, como la velocidad (distancia por tiempo) o la densidad (masa por volumen).

H=∑i=1n​xi​1​n​

Esta es la implementación de la función personalizada:

(function()
{
    /**
     * Function that calculates the harmonic mean of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The harmonic mean of the two numbers.
    */
    function hm(num1, num2) {
        return 2 / ((1 / num1) + (1 / num2));
    }
    Api.AddCustomFunction(hm);
})();

Y la implementación de la macro:

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=HM(16, 36)");
})();
  • Media cuadrática
    La media cuadrática es una medida estadística de la magnitud de una cantidad variable. Resulta especialmente útil en contextos en los que los valores pueden ser positivos o negativos y quieres medir la magnitud global sin tener en cuenta el signo.

RMS=n1​∑i=1n​xi2​​

Para construir esta función personalizada utilizaremos de nuevo el método Math.sqrt, pero con parámetros diferentes:

(function()
{
    /**
     * Function that calculates the root mean square (RMS) of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The root mean square (RMS) of the two numbers.
    */
    function rms(num1, num2) {
        return Math.sqrt((num1 ** 2 + num2 ** 2) / 2);
    }
    Api.AddCustomFunction(rms);
})();

Y ejecutamos la función en nuestro código macro:

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=RMS(5, 8)");
})();

¡Vamos a ver esas funciones personalizadas en acción!

Esperamos que esta característica recién añadida se convierta en un activo valioso en tu kit de herramientas, agilizando tu flujo de trabajo con la capacidad de crear funciones personalizadas adaptadas a tus necesidades. En ONLYOFFICE, nuestro principal objetivo es ayudarte a conseguir la excelencia mediante la implementación de herramientas y funciones innovadoras. Si tienes alguna pregunta o sugerencia, no dudes en ponerte en contacto con nosotros. Tu opinión es muy apreciada, y estamos abiertos a la discusión y la colaboración.

Crea tu cuenta gratuita de ONLYOFFICE

Visualiza, edita y colabora en documentos, hojas, diapositivas, formularios y archivos PDF en línea.