我正在使用 Apps 腳本嘗試將電子表格中特定列 (C4:C14) 中的單元格的值添加到單元格 C15 時,當出現“已付款”注釋時
我通讀了 Class Range的檔案并能夠獲得注釋的值,以及單元格范圍 (C4:C14) 中單元格的值,但我無法根據內容設定總和在 Google 表格中插入注釋。
這是我到目前為止制定的代碼以及我的作業表的螢屏截圖。

function getPaid () {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("C4:C14");
var rangeval = range.getValues();
Logger.log(rangeval);
var comments = range.getNotes();
for (var i = 0; i > range.length; i ) {
if ( range.getNotes()[i] === "paid" ) {
sheet.getRange('C15').setValue(0 rangeval[i]);
}
Logger.log(range.getNotes[i]);
}
Logger.log(comments);
}
uj5u.com熱心網友回復:
在這里,我還建議您查看您的塊是否正在執行,例如,由于錯誤的變數而沒有呼叫您的 for 回圈。還要永遠記住谷歌表總是回傳二維陣列。
function getPaid () {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range = sheet.getRange("C4:C14");
var rangeval = range.getValues();
var comments = range.getNotes();
var sum = 0;
for (var i = 0; i < rangeval.length; i ) {
if ( comments[i][0] === "paid" ) {
sum = sum rangeval[i][0];
}
}
sheet.getRange('C15').setValue(sum)
}
uj5u.com熱心網友回復:
而是出于教育目的,這里是一個“功能性”解決方案:
function myFunction() {
var sh = SpreadsheetApp.getActiveSheet();
var range = sh.getRange('c4:c14');
var data = range.getValues().flat(); // get all data in one step
var notes = range.getNotes().flat(); // get all notes in one step
var paid = data.filter((_,i) => notes[i] === 'paid'); // get paid values
var sum = paid.reduce((a,b) => a b); // sum of the array
sh.getRange('c15').setValue(sum); // set the sum into the cell C15
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/365208.html
上一篇:谷歌表中的唯一總和
下一篇:每第n行輸出一個單元格
