前提・実現したいこと
スプレッドシート上でピポットテーブルを作るイメージで、
商品コード(arr[0])が同じものの販売数の合計と実績の日数(データの数)を取得したいです。
元の配列:日ごとの販売実績
商品コード,販売数
[a001,1]
[a001,2]
[a001,3]
[a001,4]
[b002,1]
[b002,2]
[b002,3]
[b002,1]
[c003,1]
欲しい配列:商品コードでまとめた販売実績
商品コード,合計販売数,実績日数
[a001,10,4]
[b002,7,4]
[c003,1,1]
ご教授の程よろしくお願いいたします。
また可能であれば、元のデータの2次元配列の列数が3列でも10列でも対応できるような
関数ができれば望ましいのですが、可能なのでしょうか?
元データの配列はn行m列で、計算されて得られる配列はn行m+1列で取得できればすごくいいです。
発生している問題・エラーメッセージ
正しく計算されない
該当のソースコード
GAS
1//@param {Ary} ary 元データ(2次元配列) 2//@param {Number} col 基準となる列番号 3//@return {Ary} ary_return 基準で合計したデータ(2次元配列) 4function totaling_ary(ary, col){ 5 var ary_return = new Array(); 6 7 ary_return.push([ary[0][0], ary[0][1], 1]); 8 for(var i = 1; i < ary.length ; i++) { 9 for(var j = 0; j < ary_return.length ; j++) { 10 if(ary[i][0] == ary_return[j][0]){ 11 ary_return[j][1] += parseInt(ary[i][1]); 12 ary_return[j][2] ++; 13 break; 14 }else if(j == ary_return.length - 1){ 15 ary_return.push([ary[i][0], ary[i][1], 1]); 16 } 17 } 18 } 19 return ary_return; 20}
回答2件
あなたの回答
tips
プレビュー