説明 わかりづらくてすみません。備忘録です。えーと、コピー元のA行ご覧くださいアルファベットが並んでいます。コピー元のC行に「値」から始まるアルファベットが並んでいます。 コピー先にはランダムに決めた行のどこかに「hahah」と「lalal」の文字があります。コピー元のA行を全部取得して、もし、コピー先のA行のどこかしらに、コピー元のA行の文字を見つけたら その隣に、コピー元の値を挿入するというものです。聞くよりやって試した方が早いかもです。全部コード載せておきます。 コピー元 コピー先 実装 var hashColor2 = {}; function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); // 配列の初期化 for(var i = 2; i <= lastRow; i++) { if(sheet.getRange(i, 1).getValue() != "") { // 配列のkeyに対し値を設定する hashColor2[sheet.getRange(i, 1).getValue()] = sheet.getRange(i, 3).getValue(); } } //作った連想排列を関数の引数へ渡す until1(hashColor2); } function until1(arrayname) { //コピー先 var ss_copyTo = SpreadsheetApp.openById('1DtH6QACaBynUJrrAG9qvP3CqYohX6px7rpDIh3m7Vi4'); ///コピー先のスプレットシートの中のシート名 var sheet_copyTo = ss_copyTo.getSheets()[0]; ///コピー先のスプレットシートの最後の行を取得する var lastRow = sheet_copyTo.getLastRow(); //コピー先のシートの行の分だけループする for(var i = 1; i <= lastRow; i++) { if(sheet_copyTo.getRange(i, 1, 1).getValue() != "") { //Logger.log(sheet_copyTo.getRange(i, 1, 1).getValue()); //コピー元の連想配列分だけループ for (var key in hashColor2) { //もし、コピー元の値が、コピー先のどこかにあれば正解とする if(sheet_copyTo.getRange(i, 1, 1).getValue() === key) { Logger.log(key + "が正解:"); Logger.log( hashColor2[key] + "を隣に挿入したい:"); sheet_copyTo.getRange(i, 2, 1).setValue(hashColor2[key]); }else{ Logger.log("外れ"); } } } } } 結果