Estoy creando un presupuesto con Hojas de cálculo de Google y quiero actualizar los totales según la categoría. Estoy usando la Validación de datos para categorizar las transacciones, pero ¿cómo crearía un botón que actualice todas las categorías en función de las transacciones que usan App Scripts? Básicamente, estoy tratando de usar SUM para sumar todo, pero solo si están categorizados en una categoría específica. Gracias por cualquier ayuda que se ofrece.
Aquí hay un ejemplo:
function createCategories() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('Sheet0'); const sh1 = ss.getSheetByName('Sheet1'); const r = SpreadsheetApp.newDataValidation().requireValueInRange(sh1.getRange('A2:A22')); sh.getRange(2,4,20,1).setDataValidation(r); } function catTotals() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('Sheet0'); const vs = sh.getRange(2,1,sh.getLastRow() - 1,4).getValues(); let sums ={pA:[]}; vs.forEach((r,i) => { if(!sums.hasOwnProperty(r[3])) { sums[r[3]]=r[2]; sums.pA.push(r[3]); } else { sums[r[3]] += r[2]; } }); let html = "<style>td,th{border:1px solid black;}</style><table><tr><th>Category</th><th>Total</th></tr>"; sums.pA.forEach(p => { html += `<tr><td>${p}</td><td>${sums[p]}</td></tr>` }); html += '</table><br /><input type="button" value="Exit" onClick="google.script.host.close()" />'; SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html),'Category Totals') }