Como hacer una función personalizada para una hoja de cálculo con Google Apps Script

Artículo perteneciente a la introducción de Google Apps Script

En muchas ocasiones ocurre que las hojas de cálculo se nos quedan un poco "cortas", las funciones para trabajar con las celdas están muy bien pero no siempre cumplen con nuestras necesidades y hacer según que cálculos u operaciones genera un engorro horrible, ya ni hablemos si hemos de trabajar con textos.

La mejor forma de solucionar estos problemas es crear nuestras propias funciones para trabajar directamente desde la barra de formulas de la hoja de cálculo. Para conseguir esto solo hemos de crear una función dentro de un archivo de código.gs (si no tienes claro este paso te recomiendo que mires los siguientes tutoriales: Hola Mundo en GAS, Como leer una hoja de cálculo con GAS) y llamarla directamente desde la celda de la hoja de cálculo con =mifuncion(parametro1,parametro2...)

Vamos ha hacer un ejemplo. Vamos a crear una función que se encargará de calcular la distancia entre dos puntos en un mundo de 2D. El código es el siguiente:

function CalcularDistancia(xi,yi,xf,yf)
{
  return Math.sqrt(Math.pow((xf-xi),2) + Math.pow((yf-yi),2));
}

Y dentro de la hoja de cálculo llamaremos a esta función como si fuera cualquier otra operación matemática.


Lo que devolvemos de la función es lo que se pondrá en la celda, así que realmente podemos trabajar con números, con strings o con lo que queramos y nos da la capacidad incluso de recoger información de otras hojas de cálculo para generar el contenido de esta.

En capítulos futuros ahondaremos más sobre como implementar estas funciones y a desplegar toda la potencia que tiene.


1 comentario:

  1. una pregunta descolgada, ando buscando como hacer en una macro de scripts GAS la funcion de autocompletar datos al arrastrar una celda , en el viejo excel era:
    Range("D1").Select
    Selection.AutoFill Destination:=Range("D1:D14"), Type:=xlFillDefault

    pero no encuentro la contrapartida para las hojas de calculo de drive
    ¿alguien tiene alguna idea?

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...