如何检查数组Google表格中单元格中的值?

问题描述:

我要计算有多少个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无关,我已经移除了标签。请在添加标签之前阅读说明,因为这是建议的。 –

的问题是在这条线:

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