📚 [Google]스프레드 시트 복사해서 사용하기

Category: Google | 📅 August 18, 2026

시트를 생성한 뒤. 매주 복사하여 사용하는 방법에 대해 정리함. 주간보고나 일일보고서 등 작성할때 편리함.

만들자~

  1. 확장프로그램 > App Script 추가

function copySheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // 복사할 원본 시트 이름 설정
  var sourceSheet = ss.getSheetByName("원본시트이름"); 
  
  if (!sourceSheet) {
    SpreadsheetApp.getUi().alert("복사할 원본 시트를 찾을 수 없습니다.");
    return;
  }
  
  // 시트 복사
  var newSheet = sourceSheet.copyTo(ss);
  
  // 새로 복사된 시트 이름 설정 (예: 원본시트이름_2026-08-18)
  var today = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), "yyyy-MM-dd");
  newSheet.setName("복사본_" + today);
  
  // 복사한 시트를 맨 앞으로 이동 (선택 사항)
  ss.setActiveSheet(newSheet);
  ss.moveActiveSheet(1);
}

심화 - 이동하고 싶은 열을 추가해서 이동 시킴


function copySheetAndMoveColumn() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  
  // 1. 복사할 원본 시트 이름 지정
  var sourceSheet = ss.getSheetByName("원본시트이름"); 
  if (!sourceSheet) {
    SpreadsheetApp.getUi().alert("복사할 원본 시트를 찾을 수 없습니다.");
    return;
  }
  
  // 2. 시트 복사 및 이름 변경
  var today = Utilities.formatDate(new Date(), ss.getSpreadsheetTimeZone(), "yyyy-MM-dd");
  var newSheet = sourceSheet.copyTo(ss);
  newSheet.setName("복사본_" + today);
  
  // 3. 특정 열 복사 및 이동 설정
  // 예: 1번째 열(A열)을 4번째 열(D열) 위치로 이동
  var sourceColIdx = 1; // 복사할 열 번호 (A=1, B=2, C=3, D=4...)
  var targetColIdx = 4; // 이동시킬 대상 열 번호
  
  var lastRow = newSheet.getLastRow();
  
  if (lastRow > 0) {
    // 3-1. 복사할 열의 전체 데이터 범위 선택
    var sourceRange = newSheet.getRange(1, sourceColIdx, lastRow, 1);
    
    // 3-2. 대상 위치에 열 하나를 추가하여 공간 확보 (선택 사항)
    newSheet.insertColumnBefore(targetColIdx);
    
    // 3-3. 데이터 복사 (추가된 열 위치로 복사)
    var targetRange = newSheet.getRange(1, targetColIdx, lastRow, 1);
    sourceRange.copyTo(targetRange);
    
    // 3-4. 원본 열 삭제 (이동 효과)
    // 열을 추가했으므로, 원본 열 번호가 대상 위치보다 뒤에 있었다면 인덱스 재조정
    var actualSourceColIdx = (sourceColIdx >= targetColIdx) ? sourceColIdx + 1 : sourceColIdx;
    newSheet.deleteColumn(actualSourceColIdx);
  }
  
  // 4. 새 시트를 맨 앞으로 이동
  ss.setActiveSheet(newSheet);
  ss.moveActiveSheet(1);
}

트리거로 동작 시키자

  1. 왼쪽 사이드바에서 알람표시가 있는 시계 클릭 ( 트리거라고 설명 나옴)
  2. 오른쪽 아래에 + 트리거추가 버튼 선택
  3. 입력값을 모두 입력하자

    실행할 함수 선택 : 방금 App Script에서 추가한 함수 실행할 배포 선택 : head 이벤트 소스 선택 : 시간기반 // 입력창이 더 생긴다. 트리거 기반 시간 유형 선택 : 주 단위 타이머 // 일주일에 하나씩 생성 요일 선택 : 매주 일요일 시간 선택 : 오전 5시 ~ 오전 6시 사이

💭 Reviews
  • 제미나이 짱~! ㅋ