簡體   English   中英

如何更有效地對連續單元格的值求和?

[英]How can I sum the values of cells in a row more efficiently?

您好,我已經搜索並嘗試了很長時間,但我就是無法得到它。 在圖片上你可以看到我的谷歌表格。

我只想將<= 10的行中的所有數字相加。

如何從下面簡化代碼? 有人有想法嗎? 非常感謝!


項目圖片


 function calculationFirstColumn() { var sheet = SpreadsheetApp.getActiveSheet(); var originalData = sheet.getRange(2, 2, sheet.getLastRow() -1, 1).getValues(); var filteredItems = originalData.filter(function(x){return x==1}).length; var filteredItems2 = originalData.filter(function(x){return x==2}).length; var filteredItems3 = originalData.filter(function(x){return x==3}).length; var filteredItems4 = originalData.filter(function(x){return x==4}).length; var filteredItems5 = originalData.filter(function(x){return x==5}).length; var filteredItems6 = originalData.filter(function(x){return x==6}).length; var filteredItems7 = originalData.filter(function(x){return x==7}).length; var filteredItems8 = originalData.filter(function(x){return x==8}).length; var filteredItems9 = originalData.filter(function(x){return x==9}).length; var filteredItems10 = originalData.filter(function(x){return x==10}).length; var total = filteredItems+filteredItems2+filteredItems3+filteredItems4+filteredItems5+ filteredItems6+filteredItems7+filteredItems8+filteredItems9+filteredItems10; sheet.getRange("B18").setValue(total); }

您不需要使用過濾器,而是使用循環和條件語句的組合:

function calculationFirstColumn() { 
  var sheet = SpreadsheetApp.getActiveSheet();
  var originalData = sheet.getRange(2, 2, sheet.getLastRow() -1, 1).getValues();
  var total = 0;
  for (var i = 0; i < originalData.length; i++){
    if(originalData[i][0] <= 10){
      total += originalData[i][0];
    }
    Logger.log(total);
  }
  sheet.getRange("B18").setValue(total); 
}

像這樣的事情真的需要腳本嗎?

=SUMIF(B2:B,"<=10",B2:B)

@ziganotschka謝謝! 你的最后一個答案有效。 但我仍然有一個理解問題。

沒有空單元格 - 圖片

原始數據 要評估的區域明確定義,其中沒有空單元格。 那為什么這個 function 需要指令呢?

if(originalData[i][0] <= 10 /*&& originalData[i][0] !=''*/){ total ++; }

如果沒有此附加行,此 function 計數哪些單元格?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM