質問: 0; j < shift[i].length; j++) { switch (shift[i][j]) { case 'M1': shift[i].splice(j, 1, 'マネージャー1'); break; case 'M2': shift[i].splice(j, 1, 'マネージャー2'); break; case 'M3': shift[i].splice(j, 1, 'マネージャー3'); break; case 'M4': shift[i].splice(j, 1, 'マネージャー4'); break; case 'M5': shift[i].splice(j, 1, 'マネージャー5'); break; case '制1': shift[i].splice(j, 1, '制作1'); break; case '制2': shift[i].splice(j, 1, '制作2'); break; case '制3': shift[i].splice(j, 1, '制作3'); break; case '制4': shift[i].splice(j, 1, '制作4'); break; case '制5': shift[i].splice(j, 1, '制作5'); break; case '制6': shift[i].splice(j, 1, '制作6'); break; case '制7': shift[i].splice(j, 1, '制作7'); break; default: shift[i].splice(j, 1, ''); break; } } Logger.log(shift); return shift; } } ```
回答: 繰り返し処理の回数を明確にして、 それに当たるのは何の数かを考えました。 そして、それを事前に取得して、for文の条件式に組み込みました。 一つずつの動産の後にどのような状態になっているか、Logger.logで確認を繰り返して、 その値をどうしたいかを考えながら実行しました。 ``` function chengeAndsetValues() { var year = getMakingYear(); var month = getMakingMonth(); var lastDay = findLastDays(); var startCol = 3; var shiftSheet = getShiftSheet(); for (var i = 1; i <= lastDay; i++) { var day = ("00" + i).slice(-2); var shiftRanges = shiftSheet.getRange(6, startCol + i, 38, 1);//3 var shiftValues = shiftRanges.getValues(); var AdjustmentValues = Array.prototype.concat.apply([], shiftValues); var valuesCount = AdjustmentValues.length; // Logger.log(valuesCount);//38 // Logger.log(shiftValues);//二次元配列の値 // Logger.log(shiftValues.length);//1 for (var j = 0; j < shiftValues.length; j++) { for (var k = 0; k < valuesCount; k++) { if (shiftValues[j][k] === "M1") { shiftValues[j].splice(k, 1, 'マネージャー1'); } if (shiftValues[j][k] === "M2") { shiftValues[j].splice(k, 1, 'マネージャー2'); } if (shiftValues[j][k] === "M3") { shiftValues[j].splice(k, 1, 'マネージャー3'); } if (shiftValues[j][k] === "M4") { shiftValues[j].splice(k, 1, 'マネージャー4'); } if (shiftValues[j][k] === "M5") { shiftValues[j].splice(k, 1, 'マネージャー5'); } if (shiftValues[j][k] === "制1") { shiftValues[j].splice(k, 1, '制作1'); } if (shiftValues[j][k] === "制2") { shiftValues[j].splice(k, 1, '制作2'); } if (shiftValues[j][k] === "制3") { shiftValues[j].splice(k, 1, '制作3'); } if (shiftValues[j][k] === "制4") { shiftValues[j].splice(k, 1, '制作4'); } if (shiftValues[j][k] === "制5") { shiftValues[j].splice(k, 1, '制作5'); } if (shiftValues[j][k] === "制6") { shiftValues[j].splice(k, 1, '制作6'); } if (shiftValues[j][k] === "制7") { shiftValues[j].splice(k, 1, '制作7'); } if (shiftValues[j][k] === "制8") { shiftValues[j].splice(k, 1, '制作8'); } if (shiftValues[j][k] === "制") { shiftValues[j].splice(k, 1, '制作'); } if (shiftValues[j][k] === "選") { shiftValues[j].splice(k, 1, '選挙'); } if (shiftValues[j][k] === "特1") { shiftValues[j].splice(k, 1, '特集1'); } if (shiftValues[j][k] === "特2") { shiftValues[j].splice(k, 1, '特集2'); } if (shiftValues[j][k] === "ES") { shiftValues[j].splice(k, 1, 'EASY'); } if (shiftValues[j][k] === "特3") { shiftValues[j].splice(k, 1, '特集3'); } if (shiftValues[j][k] === "地1") { shiftValues[j].splice(k, 1, '地域1'); } if (shiftValues[j][k] === "地2") { shiftValues[j].splice(k, 1, '地域2'); } if (shiftValues[j][k] === "朝L") { shiftValues[j].splice(k, 1, '朝リーダー'); } if (shiftValues[j][k] === "朝1") { shiftValues[j].splice(k, 1, '朝1'); } if (shiftValues[j][k] === "昼1") { shiftValues[j].splice(k, 1, '昼1'); } if (shiftValues[j][k] === "昼2") { shiftValues[j].splice(k, 1, '昼2'); } if (shiftValues[j][k] === "昼3") { shiftValues[j].splice(k, 1, '昼3'); } if (shiftValues[j][k] === "昼L") { shiftValues[j].splice(k, 1, '昼リーダー'); } if (shiftValues[j][k] === "夜L") { shiftValues[j].splice(k, 1, '夜リーダー'); } if (shiftValues[j][k] === "夜1") { shiftValues[j].splice(k, 1, '夜1'); } if (shiftValues[j][k] === "休") { shiftValues[j].splice(k, 1, '休'); } if (shiftValues[j][k] === "") { shiftValues[j].splice(k, 1, ''); } } } var ss = SpreadsheetApp.getActiveSpreadsheet(); var targetSheet = ss.getSheetByName(year + month + day); targetSheet.getRange(7, 2, 38, 1).setValues(shiftValues);//3 // Logger.log(ss); // Logger.log(targetSheet); // Logger.log(shiftValues); } } ```