第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用谷歌應(yīng)用程序腳本對(duì)列函數(shù)中的所有行求和

使用谷歌應(yīng)用程序腳本對(duì)列函數(shù)中的所有行求和

牛魔王的故事 2023-06-15 17:23:07
我有一列"Net Sales",我試圖在谷歌工作表中總結(jié)該列中的所有值,但使用谷歌應(yīng)用程序腳本。凈銷售額的數(shù)據(jù)會(huì)發(fā)生變化,所以我盡量抽象。這是我到目前為止的功能,總和的輸出顯示在一個(gè)單獨(dú)的電子表格中。這個(gè)函數(shù)實(shí)際上并沒(méi)有把所有的銷售額加起來(lái),而是把所有的數(shù)字放在一起。例如,如果 Net Sales 列中的行是 100、200 和 50,則輸出將是 10020050 而不是 350。我如何獲得一個(gè)函數(shù)來(lái)實(shí)際將這些數(shù)字相加?//sum of all net sales (not working)var netSquare = sheet_origin2.getRange(2, 12, sheet_origin2.getLastRow(), 1).getValues();  var sum = 0;  for (var i=0; i<=sheet_origin2.getLastRow(); i++) {    sum += netSquare[i];  }  sheet_destination.getRange(sheet_destination.getLastRow(), 2, 1, 1).setValue(sum);
查看完整描述

3 回答

?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

一種更有效的計(jì)算總和的方法是使用reduce,這樣你就可以擺脫for循環(huán)。

可以僅使用函數(shù)計(jì)算總和reduce。所有其他函數(shù):flat,?map,filter用于確保數(shù)據(jù)正確,因?yàn)槲覀儾恢滥碾娮颖砀裎募侨绾螛?gòu)建的以及您使用的值是什么。有關(guān)每個(gè)步驟的詳細(xì)說(shuō)明,請(qǐng)參閱代碼注釋。

解決方案:

const netSquare = sheet_origin2.getRange('L2:L').getValues(). // get column L (12th column)

? ? ? ? ? ? ? ? ? ? flat(). // convert the 2D array to 1D array

? ? ? ? ? ? ? ? ? ? filter(v=>v!=''). // filter out empty cells

? ? ? ? ? ? ? ? ? ? map(v=>parseInt(v)); // convert string numbers to integers

const sum = netSquare.reduce((a,b)=>a+b); // add all numbers together

sheet_destination.getRange(sheet_destination.getLastRow(), 2, 1, 1).setValue(sum);


查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
長(zhǎng)風(fēng)秋雁

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊

  1. 最后一行≠行數(shù),尤其是因?yàn)槟^(guò)了第一行。

  2. .getValues()返回一個(gè)二維數(shù)組,所以你需要使用netSquare[i][0]

  3. 您應(yīng)該在 for 循環(huán)中使用要迭代的數(shù)組的長(zhǎng)度,并確保您的索引不會(huì)越界。

function sum() {

? // ... define the sheets ...

? var lastRow = sheet_origin2.getLastRow();

? var numRows = lastRow - 1; // Subtract one since you're skipping the first row

? var netSquare = sheet_origin2.getRange(2, 12, numRows, 1).getValues();

? var sum = 0;

? for (var i=0; i<netSquare.length; i++) {

? ? sum += netSquare[i][0];

? }

? sheet_destination.getRange(sheet_destination.getLastRow(), 2, 1, 1).setValue(sum);

}


查看完整回答
反對(duì) 回復(fù) 2023-06-15
?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

最短的修復(fù)方法是類型轉(zhuǎn)換,因?yàn)楫?dāng)您獲取數(shù)據(jù)時(shí)它們變成了字符串。

改變你的:

?sum?+=?netSquare[i];

到:

?sum?+=?parseInt(netSquare[i]);?//?if?whole?number
?sum?+=?parseFloat(netSquare[i]);?//?if?number?has?decimal

這強(qiáng)制該netSquare[i]值的類型為整數(shù)/浮點(diǎn)數(shù),可以作為數(shù)字添加。當(dāng)我們確定 netSquare[i] 值都是數(shù)字時(shí),就不會(huì)有問(wèn)題。

對(duì)于可能出現(xiàn)的問(wèn)題,您可以在類型轉(zhuǎn)換非數(shù)字?jǐn)?shù)據(jù)時(shí)檢查可能的結(jié)果。


查看完整回答
反對(duì) 回復(fù) 2023-06-15
  • 3 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)