tablas tabla sheets porcentaje hoja google funcion dinamica definicion como caracteristicas campo calculo calculado actualizar google-apps-script google-spreadsheet

google apps script - tabla - Hojas de cálculo de Google: ocultar columnas en función del valor de la celda



porcentaje google sheets (2)

En mi hoja de cálculo de Google A, uso una combinación de las fórmulas TRANSPOSE e IMPORTRANGE para importar datos de la hoja de cálculo B del calendario, a fin de completar un programa de trabajo para eventos. Porque en cada fecha hay 3 espacios para eventos, que no siempre están llenos, recibo muchas columnas obsoletas.

Diseño de tabla:

row1: 01-01-2013 01-01-2013 01-01-2013 02-01-2013 row2: Event_ID Event_ID Event_ID Event_ID row3: Event_name Event_name Event_name Event_name

Las filas 1 y 2 contienen fechas generadas automáticamente y event_ID para que nunca estén vacías. Cell nr. 3 muestra vacío cuando no se agregó ningún evento a esa ranura, pero de hecho hay una fórmula CONTINUAR allí para continuar la fórmula de importación de la celda A1.

Estoy buscando una secuencia de comandos para ocultar automáticamente las columnas en que celda nr. 3 no contiene datos importados.

No entendiendo nada sobre JavaScript (pero dispuesto a aprender), he intentado combinar piezas de las secuencias de comandos existentes, pero en este momento no logro entender estos códigos ...


Además de la respuesta de Jacob, es posible escribir un filtro en la propia fórmula para mostrar solo columnas con datos en la fila 3. Por ejemplo, si su fórmula ImportRange en A1 es:

=ImportRange("key";"A1:Z3")

en su lugar podrías usar esto:

=FILTER(ImportRange("key";"A1:Z3");LEN(ImportRange("key";"A3:Z3")))

o esto, que utiliza solo una llamada de ImportRange:

=TRANSPOSE(QUERY(TRANSPOSE(ImportRange("key";"A1:Z3"));"select * where Col3 != ''''"))


El siguiente código hace el truco:

function onOpen() { // get active spreadsheet var ss = SpreadsheetApp.getActiveSpreadsheet(); // create menu var menu = [{name: "Hide columns", functionName: "hideColumn"}, {name: "Show all columns", functionName: "showColumn"}]; // add to menu ss.addMenu("Check", menu); } function hideColumn() { // get active spreadsheet var ss = SpreadsheetApp.getActiveSpreadsheet(); // get first sheet var sheet = ss.getSheets()[0]; // get data var data = sheet.getDataRange(); // get number of columns var lastCol = data.getLastColumn()+1; Logger.log(lastCol); // itterate through columns for(var i=1; i<lastCol; i++) { if(data.getCell(3, i).getValue() == '''') { sheet.hideColumns(i); } } } function showColumn() { // get active spreadsheet var ss = SpreadsheetApp.getActiveSpreadsheet(); // get first sheet var sheet = ss.getSheets()[0]; // get data var data = sheet.getDataRange(); // get number of columns var lastCol = data.getLastColumn(); // show all columns sheet.showColumns(1, lastCol); }

  1. Crea menú al abrir el archivo
  2. Primera opción de menú, oculta todas las columnas con la fila 3 vacía
  3. Segunda opción, muestra todas las columnas ocultas

Vea el archivo de ejemplo que preparé para verlo en acción: Ocultar columnas según el valor de celda