2017-11-21 9 views
2

ここは新しいです。私はGooglesheetsに使用するコードでサポートが必要です。googlesheetsスクリプト - 繰り返し回数を増やす

背景:

私は、列Aに12に1を作成して、何度も何度も繰り返すように探しています。 1、2、3、[...]、12、1、2、[...]、12などのようになります。

コード:

私はこのコードを書かれているが、私はわからない私が間違ってつもりです。また、毎回12回後にそれを繰り返す方法もわかりません。ヘルプをいただければ幸いです。

var numRows = range.getNumRows(); 
for (var i = 1; i <= numRows; i++) { 
var currentValue = sheet.getCell(i,1).getValue(); 
var withString = 0; 
range.getCell(i,1).setValue(val + 1); 
} 
+0

あなたはMOD関数を使用することができます。 'MOD(val、12)'は 'val/12'から余りを返します。これは0〜11の範囲であるため、1を加えてください: 'MOD(val、12)+ 1' – dwilliss

答えて

0

1からGoogle recomendationsをもとに、あなたのコードに作ることができる12

1つの変更、に番号を得ることに役立つモジュロを使用して、更新することですバッチ処理に関するスプレッドシートのデータ。 したがって、すべてのセルを1つずつ変更する代わりに、全範囲の値を変更することができます。

例:

function addValuesToRows() { 
    var range = SpreadsheetApp.getActive().getActiveSheet() 
     .getRange(1, 1, 100); 
    var numRows = range.getNumRows(); 
    var values = range.getValues(); 
    for (var i = 0; i < numRows; i++) { 
     values[i][0] = (i % 12) + 1; 
    } 
    range.setValues(values); //Setting the value to the whole range 
} 
+0

ありがとうございました。まさに私が探していたもの。 –

1

modulo functionsをご覧ください。

クロックのように考えると、値がモジュロに達するまで増加し、その時点でループします。 i % 12の値を出力したいのですが、インデックスがゼロでないので変更しました。((i - 1) % 12) + 1のようになります。

for (var i = 1; i < 36; i++) { 
    console.log(i, ((i - 1) % 12) + 1); 
} 

結果:

1 1 
2 2 
3 3 
4 4 
5 5 
6 6 
7 7 
8 8 
9 9 
10 10 
11 11 
12 12 
13 1 
14 2 
15 3 
16 4 
17 5 
18 6 
19 7 
20 8 
21 9 
22 10 
23 11 
24 12 
25 1 
26 2 
27 3 
// etc etc 
関連する問題