スプレッドシートに集計したデータが蓄積されています。
(例↓)
|(A2セル)|項目1|項目2|項目3|項目4|
|:--|:--:|--:|
|1/1|100|150|200|160|
|1/2|105|165|206|180|
|1/3...|107|180|206|215|
A列に日付、2行目に項目名が並び、日が進むごとにデータが追加されていきます。
ここに集計されるデータは累計データのため、日毎のデータをこの表から取得し、別シートに転記したいと思っています。
(転記先シート)
|(別シート)|項目1|項目2|項目3|項目4|
|:--|:--:|--:|
|1/1|-|-|-|-|
|1/2|5|15|6|20|
|1/3...|2|15|0|35|
○やりたかったこと
1/1と1/2のデータを比較(引き算)し、残った数値を別の二次元配列に格納する(全日付分繰り返し)
javascript
1function myFunction(){ 2 var difference = []; 3 var data = pivotSheet.getRange(3,2,pivotSheet.getLastRow(),pivotSheet.getLastColumn()).getValues(); 4 var nextData = pivotSheet.getRange(4,2,pivotSheet.getLastRow(),pivotSheet.getLastColumn()).getValues(); 5 for(var j = 0; j < pivotSheet.getLastRow; j++){ 6 for(var k = 0; k < data[0].length-1; k++){ 7 difference.push(nextData[j][k] - data[j][k]) 8 Logger.log(difference) 9 } 10 } 11} 12
これで差分データをログで見られると思ったのですが、ログが表示されないという現象が発生しています。
ちなみに、
javascript
1function myFunction(){ 2 var difference = []; 3 var data = pivotSheet.getRange(3,2,pivotSheet.getLastRow(),pivotSheet.getLastColumn()).getValues(); 4 var nextData = pivotSheet.getRange(4,2,pivotSheet.getLastRow(),pivotSheet.getLastColumn()).getValues(); 5 //for(var j = 0; j < pivotSheet.getLastRow; j++){ 6 for(var k = 0; k < data[0].length-1; k++){ 7 difference.push(nextData[0][k] - data[0][k]) 8 Logger.log(difference) 9 } 10 //} 11} 12
最初のfor文を外して1行分だけ取得すると、ちゃんとデータが取れます。
すべての行のデータを取得するにはどうしたら良いでしょうか?
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。