2017-07-18 7 views
0

googleスプレッドシートに最大50個の数値を2列集計するためのgoogleスクリプトを作成しました。しかし、私は正しい結果を得ることができません。コードは以下に添付されています。スプレッドシートから2つの列を合計してスプレッドシートに戻すためのgoogleスクリプト

function DailyCreditCalculation() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Sheet1"); 
    var values_old = sheet.getSheetValues(7,2,50,1); 
    var values_new = sheet.getSheetValues(7,3,50,1); 
    for(i = 0; i <= values_new.length-1; i++){ 
    values_old[i] = +values_old[i]; 
    values_new[i] = +values_new[i]; 
    values_old[i] = values_old[i] + values_new[i]; 
    } 
    var cell = sheet.getRange(7,2,50,1); 
    cell.setValues(values_old); 
} 

私はスクリプトを実行すると、それは

はそれができるように

がどのようにスクリプトを修正することができます「配列は[] []オブジェクトに変換することはできません」というエラーが表示されます正常に実行されますか?

答えて

0

検索するデータは、一貫性のために配列の配列として表される2列のベクトルです。

[[1], 
[2], 
[3]] 

+values_old[i]の変換が必要な理由です。

ループの出力結果は、エラーメッセージに指定されているようになります。したがって、2つの同一の配列を持つ場合、結果は、例えば、次のようになります。 [2,4,6]

setValuesには、データを書き込む配列(Object[][])が必要です。
は、あなたはそれが結果

[[2], 
[4], 
[6]] 

で作業できる形式setValuesを行いますあなたはvalues_old[i] = [values_old[i] + values_new[i]];を言うことができ、列ベクトルになりたいので。

+0

ご返信ありがとうございます。 しかし、[[1]、[2]、[3]] + [[2]、[3]、[4]]については、 とすれば結果は[12 ]、[23]、[34]] –

+0

私はそれをする方法を知っていると思います。ありがとう! –

+0

あなたは以前に行ったキャスティングを行う必要があります –

関連する問題