2017-04-05 97 views
0

我要計算有多少個Y & N爲出現在定義的數組/區間:如何檢查數組Google表格中單元格中的值?

單元格區域:D4:D42

function myFunction() { 
var count = SpreadsheetApp.getActiveSheet().getRange(5, 3, 40, 1); 
var numRows = count.getNumRows(); 
var numCols = count.getNumColumns(); 
var y = 0; 
var n = 0; 

for (var i = 1; i <= numRows; i++) { 
    for (var j = 1; j <= numCols; j++) { 
    var currentValue = count.getCell(i, j).getValue(); 
    if (currentValue = "y") { 
    y = y + 1; 
    } else if (currentValue = "n") { 
    n = n + 1; 
    } 
    } 
} 
Browser.msgBox("There are " + y + " paid & " + n + " not paid"); 
} 

這將返回40歲的和0 N的

不知道我是什麼在這裏做錯了,但我認爲這是一個簡單的修復!

+0

這與Excel無關,我已經移除了標籤。請在添加標籤之前閱讀說明,因爲這是建議的。 –

回答

1

的問題是在這條線:

if (currentValue = "y") { 

要指定 「Y」 到CurrentValue的。要真正檢查平等,你應該嘗試「===」運算符。試試這個,看看它是否解決您的問題:

function myFunction() { 
    var count = SpreadsheetApp.getActiveSheet().getRange(5, 4, 39, 1); 
    var numRows = count.getNumRows(); 
    var numCols = count.getNumColumns(); 
    var y = 0; 
    var n = 0; 

    for (var i = 1; i <= numRows; i++) { 
     for (var j = 1; j <= numCols; j++) { 
      var currentValue = count.getCell(i, j).getValue(); 
      if (currentValue === "y") { 
       y = y + 1; 
      } else if (currentValue === "n") { 
       n = n + 1; 
      } 
     } 
    } 
    Browser.msgBox("There are " + y + " paid & " + n + " not paid"); 
} 

我也更新了getRange()的參數匹配D4:D42。在你的代碼中,他們匹配C5:C44。請參閱getRange() function documentation

+0

謝謝,正是我需要的。 我知道這是明顯的。我知道參數已關閉,我發佈代碼後意識到 - 我將其調整爲我自己的:-) – SCramphorn

相關問題