합친것
function onEdit(e) {
if (e) { // 'e'가 존재할 때만 실행
var range = e.range;
var row = range.getRow();
var column = range.getColumn();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// O1 셀이 수정되었을 때 실행
if (row === 1 && column === 15) { // O1 셀은 15번째 열
// 1번 스크립트 (copyValues)
var lastRow = sheet.getLastRow();
if (lastRow > 1) {
var sourceRange = sheet.getRange(2, 6, lastRow - 1, 1); // F열의 범위
var values = sourceRange.getValues();
var targetRange = sheet.getRange(2, 7, lastRow - 1, 1); // G열의 동일한 범위
targetRange.setValues(values); // F열 값을 G열에 복사
}
// 2번 스크립트 수정 (N:N -> O:O)
if (row === 1 && column === 15) { // O1 셀이 클릭된 경우
// N2~N100의 값을 가져와 O2~O100에 복사
var values = sheet.getRange(2, 14, 99, 1).getValues(); // N열의 값 가져오기 (14번째 열)
sheet.getRange(2, 15, 99, 1).setValues(values); // O열에 값 복사 (15번째 열)
}
}
}
}
HTML
복사
function onEdit(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("작업장");
var copySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("copy");
if (e) { // 'e'가 존재할 때만 실행
var range = e.range;
var row = range.getRow();
var column = range.getColumn();
// O1 셀이 수정되었을 때
if (row === 1 && column === 15) { // O열 (15번째 열) 1번째 행
// 모든 B열 값 가져오기
var bRange = sheet.getRange(1, 1, sheet.getLastRow(), 1); // B열 전체 범위
var bValues = bRange.getValues();
for (var i = 0; i < bValues.length; i++) {
var value = bValues[i][0];
var substring = value.substring(0); // "09", "10", "11", "12" 부분 추출 (4번째 ~ 7번째 문자)
// 복사할 값을 추출
var copyValue = sheet.getRange(i + 1, 15).getValue(); // O열 (15번째 열) 값 추출
// 시트에 데이터 복사
copyToSheet1BasedOnPattern(substring, copyValue);
}
}
}
}
// 데이터를 시트에 있는 패턴에 맞게 복사하는 함수
function copyToSheet1BasedOnPattern(substring, value) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("copy");
if (!sheet) return; // 'copy' 시트가 없을 경우 종료
// 월 헤더와 매칭되는 열 번호를 찾음
var monthHeaders = {
"W01": 1, // 1월이 있는 열 번호 (A열)
"W02": 2, // 2월이 있는 열 번호 (B열)
"W09": 3, // 9월이 있는 열 번호 (C열)
"W10": 4, // 10월이 있는 열 번호 (D열)
"W11": 5, // 11월이 있는 열 번호 (E열)
"W12": 6 // 12월이 있는 열 번호 (F열)
};
// 해당 패턴이 있는지 확인하고, 그 아래에 데이터 추가
if (monthHeaders[substring]) {
var targetColumn = monthHeaders[substring];
// 특정 열 아래에 새 행을 추가하고 값을 붙여넣기
addRowAndSetValue(sheet, targetColumn, value);
}
}
// 특정 열 아래에 새 행을 추가하고 값을 붙여넣는 함수
function addRowAndSetValue(sheet, column, value) {
var lastRow = sheet.getLastRow();
// 열의 첫 번째 셀부터 빈 행을 찾거나 마지막 행 다음에 새 행을 추가
var targetRow = lastRow + 1;
sheet.insertRowAfter(lastRow); // 마지막 행 아래에 새 행을 추가
sheet.getRange(targetRow, column).setValue(value); // 새 행의 지정된 열에 값 설정
}
HTML
복사
function onEdit(e) {
if (e) { // 'e'가 존재할 때만 실행
var range = e.range;
var row = range.getRow();
var column = range.getColumn();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// O1 셀이 수정되었을 때 실행
if (row === 1 && column === 15) { // O1 셀은 15번째 열
// 1번 스크립트 (copyValues)
var lastRow = sheet.getLastRow();
if (lastRow > 1) {
var sourceRange = sheet.getRange(2, 6, lastRow - 1, 1); // F열의 범위
var values = sourceRange.getValues();
var targetRange = sheet.getRange(2, 7, lastRow - 1, 1); // G열의 동일한 범위
targetRange.setValues(values); // F열 값을 G열에 복사
}
// 2번 스크립트 수정 (N:N -> O:O)
if (row === 1 && column === 15) { // O1 셀이 클릭된 경우
// N2~N100의 값을 가져와 O2~O100에 복사
var values = sheet.getRange(2, 14, 99, 1).getValues(); // N열의 값 가져오기 (14번째 열)
sheet.getRange(2, 15, 99, 1).setValues(values); // O열에 값 복사 (15번째 열)
}
// 3번 스크립트 수정 (AA:AA -> AB:AB)
if (row === 1 && column === 15) { // O1 셀이 클릭된 경우
// AA2~AA100의 값을 가져와 AB2~AB100에 복사
var values = sheet.getRange(2, 27, 99, 1).getValues(); // AA열의 값 가져오기 (27번째 열)
sheet.getRange(2, 28, 99, 1).setValues(values); // AB열에 값 복사 (28번째 열)
}
}
}
}
HTML
복사
function onEdit(e) {
if (e) { // 'e'가 존재할 때만 실행
var range = e.range;
var row = range.getRow();
var column = range.getColumn();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// O1 셀이 수정되었을 때 실행
if (row === 1 && column === 17) { // Q1 셀은 17번째 열
// 1번 스크립트 (copyValues)
var lastRow = sheet.getLastRow();
if (lastRow > 1) {
var sourceRange = sheet.getRange(2, 8, lastRow - 1, 1); // h열의 범위
var values = sourceRange.getValues();
var targetRange = sheet.getRange(2, 9, lastRow - 1, 1); // i열의 동일한 범위
targetRange.setValues(values); // h열 값을 i열에 복사
}
// 2번 스크립트 수정 (P:P -> Q:Q)
if (row === 1 && column === 17) { // O1 셀이 클릭된 경우
// P:P의 값을 가져와 Q:Q에 복사
var values = sheet.getRange(2, 16, lastRow - 1, 1).getValues(); // p열의 값 가져오기 (16번째 열)
sheet.getRange(2, 17, lastRow - 1, 1).setValues(values); // q열에 값 복사 (17번째 열)
}
}
}
}
HTML
복사