実現したいこと
ここに実現したいことを箇条書きで書いてください。
GASでVLOOKUP関数のようなコードを書きたい
前提
ここに質問の内容を詳しく書いてください。
(例)
GASで上記のような関数を作成したいと思っていますが、正しい値が転記できずに困っています。
発生している問題・エラーメッセージ
エラーメッセージ エラーメッセージは発生していません。
該当のソースコード
GAS ```function MyVLOOKUP_B() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const SearchSheet = ss.getSheetByName('入力シート'); const LastRow = SearchSheet.getLastRow(); const ListSheet = ss.getSheetByName('情報管理表'); const DataSheetValues = ss.getSheetByName('情報管理表').getDataRange().getValues(); const Key = []; const Data = []; // 検索キーを取得し、対応したデータを返す let SearchKey = SearchSheet.getRange(2,3,LastRow - 1,3).getValues(); let ListKey = ListSheet.getRange(2,5,LastRow - 1,9).getValues();の入力範囲 for (let i = 0; i < SearchKey.length; i++){ let Key = DataSheetValues.map(function(value,index) {return value[4]}); let Data = DataSheetValues[i+1].slice(10,13); SearchKey[i][0] = Data[Key.indexOf(SearchKey[i][0])]; //SearchKey[i][1] = Data[Key.indexOf(SearchKey[i][1])]; //SearchKey[i][2] = Data[Key.indexOf(SearchKey[i][2])]; } //console.log(SearchKey) // 対応データの入った配列「SearchKey」をシートに書き込む SearchSheet.getRange(2,6,LastRow - 1,3).setValues(SearchKey); } ### 試したこと 入力シートと情報管理表のそれぞれのキーとなるデータが入力シートの3列目に、情報管理表の5列目に入っており、入力シートの6-8列目に情報管理表の11-13列のキーに対応する値を転記したいのですが、何故かデータの中には存在しないデータが転記される結果となってしまいます。 いろいろ試していますが、治る気配がないので質問させて頂きました。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
なお、情報管理表の方が行数が多く、その中から入力シートに該当のキーを探してきて入力する形です。

回答1件
あなたの回答
tips
プレビュー