前提・実現したいこと
GASを使って、スプレッドシートAから特定のデータをBに渡すスクリプトを組みたいです。
Aにはマスターデータがあるが、IMPORTRANGE等を使ってBと同一のブックにデータが出ることは避けたいです。
取得方法としては、Bの指定したセルに検索ワードを入れると、A内で検索ワードに一致するセルを探し、該当した行の指定した列のセル内容をBの特定のセルに吐き出したいです。所謂、vlookup的な処理を別のブックを参照して行いたいです。
ネットで調べて、途中までコードは書けたのですが、実行するとnullやfalseが返ってきてしまい、原因がわからず困っています。
GASを学び始めたのが最近で、理解が追いついてない部分があり恐縮ですが、ご教示のほどよろしくお願いいたします。
該当のソースコード
GAS
1function myFunction() { 2 var sh1 = SpreadsheetApp.getActiveSpreadsheet() 3 var sh2 = SpreadsheetApp.openById("sheetID") 4 var sheet1 = sh1.getSheetByName('シート名') 5 var sheet2 = sh2.getSheetByName('シート名') 6 var values = sheet2.getRange('範囲').getValues(); 7 var price = findValue(values, "検索ワード", 指定セルの番号); 8 9 Logger.log(price); 10} 11 12function findValue(values, value, column) { 13 var columnIndex = column - 1; 14 for (var i in values) { 15 if (values[i][0] == value) { 16 return values[i][columnIndex]; 17; 18 } 19 } 20 return false; 21 22} 23
追記
function myFunction() { var sh1 = SpreadsheetApp.getActiveSpreadsheet() var sh2 = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") var sheet1 = sh1.getSheetByName('アカウント情報') var sheet2 = sh2.getSheetByName('マスターデータ') var values = sheet2.getRange('B6:G999').getValues(); var cpid = findValue(values, "株式会社〇〇", 7); Logger.log(cpid); } function findValue(values, value, column) { var columnIndex = column - 1; for (var i in values) { if (values[i][0] == value) { return values[i][columnIndex]; Logger.log(i) ; } } return false; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/28 08:03
2020/05/28 08:23
2020/05/28 08:33
2020/05/28 08:43
2020/05/28 08:49