2017-04-05 13 views
0

は私が定義された配列/範囲で表示されますどのように多くのYさん& Nの計算したい:アレイ内のセルの値を確認するにはどうすればよいですか?

セル範囲: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 Yさんと0 Nの私は何

わかりませんここで間違っているが、私はそれが簡単な修正だと思う!

+0

これはExcelとは関係がありません。タグを削除しました。タグが追加される前にその説明をお読みください。 –

答えて

1

問題は、この行である:

if (currentValue = "y") { 

あなたがcurrentValueはに "Y" を割り当てています。平等を実際にチェックするには、 "==="演算子を試してください。これを試してみて、それがあなたの問題が解決するかどうかを確認:私もD4と一致するようにgetRange()のパラメータを更新

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"); 
} 

:D42を。あなたのコードでは、彼らはC5:C44とマッチしました。 getRange() function documentationを参照してください。

+0

ありがとう、ちょうど私が必要としたもの。 私はそれが明らかであることを知っていました。私はパラメータがオフであったことを知っている、私はコードを投稿した後に気づいた - 私は自分自身で調整した:-) – SCramphorn

関連する問題