Google Sheets es una poderosa herramienta de hoja de cálculo basada en la nube que le permite hacer casi todo lo que podría hacer en Microsoft Excel. Pero el verdadero poder de las Hojas de cálculo de Google es la función de creación de scripts de Google que la acompaña.
La creación de scripts de Google Apps es una herramienta de creación de scripts en segundo plano que funciona no solo en hojas de cálculo de Google sino también Google Docs, Gmail , Google analitico y casi cualquier otro servicio en la nube de Google. Le permite automatizar esas aplicaciones individuales e integrar cada una de esas aplicaciones entre sí.
En este artículo, aprenderá cómo comenzar con las secuencias de comandos de Google Apps, crear una secuencia de comandos básica en Hojas de cálculo de Google para leer y escribir datos de celdas y las Hojas de cálculo de Google avanzadas más eficaces funciones de script.
Cómo crear un script de Google Apps
Puede comenzar ahora mismo a crear su primer script de Google Apps desde dentro de Google Sheets.
Para hacer esto, seleccione Herramientasdel menú, luego Editor de scripts.
Esto abre la ventana del editor de scripts y por defecto una función llamada myfunction (). Aquí es donde puede crear y probar su Google Script.
In_content_1 all: [300x250] / dfp: [640x360]->Para intentarlo, intente crear una función de script de Hojas de cálculo de Google que lea los datos de una celda, realice un cálculo en ella y envíe la cantidad de datos a otra celda.
La función para obtener datos de una celda son las funciones getRange ()y getValue (). Puede identificar la celda por fila y columna. Entonces, si tiene un valor en la fila 2 y la columna 1 (la columna A), la primera parte de su script se verá así:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var row = 2; var col = 1; var data = sheet.getRange(row, col).getValue(); }
Esto almacena el valor de ese celda en la variable datos. Puede realizar un cálculo en los datos y luego escribir esos datos en otra celda. Entonces, la última parte de esta función será:
var results = data * 100;sheet.getRange(row, col+1).setValue(results); }
Cuando termine de escribir su función, seleccione el icono del disco para guardar.
La primera vez que ejecuta una nueva función de secuencia de comandos de Hojas de cálculo de Google como esta (al seleccionar el icono de ejecución), deberá proporcionar Autorización para que la secuencia de comandos se ejecute en su cuenta de Google.
Permitir que los permisos continúen. Una vez que se ejecute el script, verá que el script escribió los resultados del cálculo en la celda objetivo.
Ahora que sabe cómo escribir una función básica de script de Google Apps, echemos un vistazo a algunas funciones más avanzadas.
Use getValues para cargar matrices
Puede llevar el concepto de hacer cálculos de datos en su hoja de cálculo con secuencias de comandos a un nuevo nivel utilizando matrices. Si carga una variable en el script de Google Apps usando getValues, la variable será una matriz que puede cargar múltiples valores de la hoja.
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); var data = sheet.getDataRange().getValues();
La variable de datos es multidimensional matriz que contiene todos los datos de la hoja. Para realizar un cálculo en los datos, utiliza un bucle para. El contador del bucle for funcionará en cada fila, y la columna permanece constante, en función de la columna en la que desea extraer los datos.
En nuestra hoja de cálculo de ejemplo, puede realizar cálculos en las tres filas de datos de la siguiente manera.
for (var i = 1; i < data.length; i++) {var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result); } }
Guarde y ejecute este script tal como lo hizo anteriormente. Verá que todos los resultados se completan en la columna 2 de su hoja de cálculo.
Notará que hacer referencia a una celda y fila en una variable de matriz es diferente que con una función getRange.
datos [i] [0]se refiere a las dimensiones de la matriz donde la primera dimensión es la fila y la segunda es la columna. Ambos comienzan en cero.
getRange (i + 1, 2)se refiere a la segunda fila cuando i = 1 (ya que la fila 1 es el encabezado), y 2 es la segunda columna donde se almacenan los resultados.
Use appendRow To Write Results
¿Qué sucede si tiene una hoja de cálculo donde desea escribir datos en un nuevo fila en lugar de una nueva columna?
Esto es fácil de hacer con la función appendRow. Esta función no molestará a los datos existentes en la hoja. Simplemente agregará una nueva fila a la hoja existente.
Como ejemplo, cree una función que cuente de 1 a 10 y muestre un contador con múltiplos de 2 en un Contadorcolumna.
Esta función se vería así:
function myFunction() {var sheet = SpreadsheetApp.getActiveSheet(); for (var i = 1; i<11; i++) { var result = i * 2; sheet.appendRow([i,result]); } }
Estos son los resultados cuando ejecuta esta función.