Search

엑셀 앱스크립트 (1)

합친것

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
복사