Cómo crear funciones personalizadas en Google Sheets con Apps Script

En este tutorial te voy a mostrar cómo crear funciones personalizadas en Google Sheets usando Google Apps Script. Aprenderás desde lo básico para que puedas empezar a experimentar con tus propias funciones, adecuadas a tus necesidades específicas, y así automatizar tareas repetitivas que las funciones nativas de Sheets no pueden resolver. Además, verás cómo hacer funciones que reciban argumentos, usen variables y hasta incluyan comentarios para que sean más fáciles de usar y entender. ¡Vamos a darle una mirada práctica y sencilla para que te animes a crear tus propias funciones!

Las funciones personalizadas son una puerta de entrada muy amigable a Google Apps Script, el lenguaje que permite extender las capacidades de Google Sheets. Con ellas puedes crear desde funciones sencillas que devuelven textos o números, hasta funciones más complejas que hagan cálculos o manipulen fechas. Lo genial es que puedes usar tu creatividad para hacer funciones a tu medida, como por ejemplo una función que devuelva la fecha de mañana o una suma especial que siempre agregue un extra.

¿Cómo crear tu primera función personalizada?

Para comenzar, abre Google Sheets y ve a Extensiones > Apps Script para abrir el editor de secuencias de comandos. Ahí verás un código inicial con una función llamada function miFuncion(). Esa es la estructura básica para crear una función:

function miFuncion() {
  // Aquí va el código de la función
}

Vamos a cambiarle el nombre a nuestra función para que sea más descriptiva. Por ejemplo, una función que devuelva el texto «Hola Mundo»:

function HolaMundo() {
  return "Hola Mundo";
}

Esta función no recibe ningún argumento (los valores que entran entre paréntesis) y devuelve el texto «Hola Mundo». Para usarla, simplemente la escribes en una celda de Google Sheets como si fuera una función nativa, así:

=HolaMundo()

Recuerda que las cadenas de texto deben ir siempre entre comillas. Si olvidas las comillas, la función no funcionará.

Funciones que devuelven números y operaciones básicas

Además de devolver textos, las funciones pueden devolver números o resultados de operaciones. Por ejemplo, una función que devuelva el número 2:

function Dos() {
  return 2;
}

También podemos hacer que la función realice una suma, por ejemplo sumar 4 + 6:

function CuatroMasSeis() {
  return 4 + 6;
}

En estas funciones, puedes hacer cualquier operación matemática básica: suma, resta, multiplicación, división, o incluso concatenar textos con el operador +.

Uso de variables para hacer el código más claro

Para organizar mejor el código, podemos usar variables dentro de la función. Por ejemplo, en lugar de devolver directamente el número 2, podemos definir una variable llamada numero y luego devolver su valor:

function Dos() {
  var numero = 2;
  return numero;
}

Esto es especialmente útil cuando la función hace operaciones más complejas, porque puedes asignar nombres claros a cada parte y facilitar futuras modificaciones.

Funciones con argumentos: recibir datos desde la hoja

Hasta ahora nuestras funciones no recibían datos externos. Pero lo interesante es que puedes hacer funciones que reciban argumentos, es decir, valores que ingresas dentro de los paréntesis al llamar la función. Por ejemplo, una función que sume dos números dados por el usuario:

function Sumar(numero1; numero2) {
  return numero1 + numero2;
}

Para usarla en Sheets, escribes en una celda:

=Sumar(4; 6)

Y te devolverá 10. Puedes cambiar los valores y la función siempre sumará los números que le pases.

Ejemplo práctico: función para calcular margen de ganancia

Vamos a crear una función que calcule el margen de ganancia, a partir de los ingresos y los gastos. El margen es la utilidad dividida entre los ingresos, donde la utilidad es ingresos menos gastos. Primero definimos la función con dos argumentos:

/**
 * Calcula el margen de ganancia.
 * @param {number} ingresos - Total de ingresos o ventas.
 * @param {number} gastos - Total de gastos o egresos.
 * @return {number} Margen de ganancia en formato decimal.
 * @customfunction
 */
function Margen(ingresos; gastos) {
  var utilidad = ingresos - gastos;
  var margen = utilidad / ingresos;
  return margen;
}

Los comentarios especiales con @param, @return y @customfunction sirven para que Google Sheets reconozca la función y muestre ayuda sobre los argumentos cuando escribas la función en la hoja.

Para usar esta función en Sheets, escribe:

=Margen(1000; 900)

Y te devolverá 0.1, que equivale al 10% de margen de ganancia.

Algunos consejos y consideraciones

Las funciones personalizadas hechas con Apps Script se ejecutan en los servidores de Google, por lo que necesitan conexión a internet y pueden tardar un poco más que las funciones nativas. Por eso, cuando las usas, verás que dice «Loading» mientras se ejecutan.

También ten en cuenta que los nombres de las funciones no distinguen entre mayúsculas y minúsculas, así que =HolaMundo() y =holamundo() funcionan igual.

Conclusión

En este tutorial aprendimos a crear funciones personalizadas básicas en Google Sheets usando Google Apps Script. Vimos cómo definir funciones que no reciben argumentos, cómo devolver textos y números, y cómo usar variables para organizar el código. Luego avanzamos a funciones con argumentos para hacer cálculos dinámicos, como la suma de dos números o el cálculo del margen de ganancia. También aprendimos la importancia de los comentarios especiales para facilitar el uso y la documentación de nuestras funciones personalizadas.

Con esta base, ya puedes empezar a crear funciones a la medida de tus necesidades, automatizando tareas repetitivas y extendiendo las capacidades de Google Sheets. Si quieres profundizar más, te recomiendo explorar funciones más avanzadas con JavaScript, trabajar con rangos y filtros, y combinar Apps Script con otras herramientas de Google.

Si quieres aprender a usar Google Forms y Google Sheets desde cero, te invito a tomar un curso gratis de 2 horas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

JuanSGuzman
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.