前提・実現したいこと
Googleフォームで回収したデータがスプレッドシートに蓄積し、そのデータを別々のスプレッドシート(ブック)に分けて読み出しました。しかし、importrangeとvlookupだらけのシートになり、読み込みが非常に遅くて困ってしまったので、GASを利用することで高速化できないかと思い、チャレンジをしています。
GASを使用して、vlookupのような検索+値の挿入をしたいのですが、以下のエラーが出ました。
発生している問題・エラーメッセージ
エラー TypeError: Cannot read property '0' of undefined (匿名) @ コード.gs:23 myFunction @ コード.gs:22
該当のソースコード
GAS
1 targetData.forEach (function(targetRow) { 2 setData.push([kvDic[targetRow][0]]) 3 });
試したこと
for each ( xx in yy)はエラーが出るということで、その部分は書き直しました。
補足情報(FW/ツールのバージョンなど)
GAS
1 var kvRow = 1; //開始する行数(ヘッダは省く) 2 var keyColumn = 1; //キーの列 3 var valueColumn = 4; //値の列を定義 4 var kvData = sh1.getRange(kvRow,keyColumn,sh1.getLastRow(),valueColumn).getValues(); 5 var kvDic = {}; 6 7 kvData.forEach (function(kv) { 8 kvDic[kv[keyColumn -1]] = kv[valueColumn -1] 9 }); 10 11 //値をセットする 12 var ss2 = SpreadsheetApp.getActiveSpreadsheet(); 13 var sh2 = ss2.getSheetByName('today'); 14 var startRow = 5; //開始する行数(ヘッダは省く) 15 var targetColumn = 1; //キーになるコードの列を指定 16 var targetData = sh2.getRange(startRow,targetColumn,sh2.getLastRow(),1).getValues(); 17 var setData = []; 18 19 targetData.forEach (function(targetRow) { 20 setData.push([kvDic[targetRow][0]]) 21 });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。