본문 바로가기

카테고리 없음

구글 시트: 드롭다운 값 변경 시 자동으로 다른 시트로 옮기기

구글 시트에서 드롭다운 값을 변경하면 해당 데이터를 자동으로 다른 시트로 이동하는 방법을 찾고 계시군요! 이 작업은 Google Apps Script(GAS)를 활용하면 자동화할 수 있습니다. 오늘은 드롭다운 값이 변경될 때 특정 조건을 만족하면 데이터를 다른 시트로 옮기는 방법을 설명해 드리겠습니다.


1. 기본 개념 정리

드롭다운 값 변경 감지
특정 값(예: "2상태")로 변경 시 해당 행을 다른 시트로 복사
원본 데이터 삭제 또는 유지 여부 선택 가능

이를 구현하기 위해 구글 시트의 Google Apps Script(GAS)를 사용합니다.


2. 드롭다운 목록 만들기

우선, 시트1에 드롭다운을 설정해야 합니다.

📌 드롭다운 설정 방법

  1. 시트1에서 드롭다운을 설정할 셀을 선택합니다.
  2. 메뉴에서 데이터 > 데이터 유효성 검사를 클릭합니다.
  3. 조건을 "목록에서 선택"으로 설정합니다.
  4. 값으로 "1상태", "2상태" 등을 입력하고 저장합니다.

이제 드롭다운을 변경하면 자동으로 다른 시트로 옮기는 기능을 추가해 보겠습니다.


3. Google Apps Script (GAS) 코드 추가하기

📌 Google Apps Script 코드 입력 방법

  1. 구글 시트 상단 메뉴에서 확장 프로그램 > Apps Script 클릭
  2. 기존 코드를 모두 삭제하고 아래 코드를 입력
  3. Ctrl + S 또는 파일 > 저장 클릭
  4. 실행 > 함수 실행에서 onEdit 실행 후 테스트

GAS 코드 (드롭다운 값 변경 시 자동 이동)

function onEdit(e) {
  var sheet = e.source.getActiveSheet(); 
  var editedCell = e.range; 
  var targetSheetName = "시트2";  // 데이터를 옮길 시트 이름

  if (sheet.getName() === "시트1") {  // 원본 시트 이름
    var status = editedCell.getValue(); // 드롭다운 변경된 값

    if (status === "2상태") {  // 특정 상태일 때 이동
      var targetSheet = e.source.getSheetByName(targetSheetName);
      var lastRow = targetSheet.getLastRow() + 1; 
      var rowData = sheet.getRange(editedCell.getRow(), 1, 1, sheet.getLastColumn()).getValues(); 

      targetSheet.getRange(lastRow, 1, 1, rowData[0].length).setValues(rowData); // 시트2로 데이터 이동
      sheet.deleteRow(editedCell.getRow()); // 원본 행 삭제 (삭제 원하지 않으면 주석 처리)
    }
  }
}

✅ 코드 설명

  • onEdit(e): 사용자가 셀을 편집할 때 자동 실행
  • sheet.getName() === "시트1": 드롭다운이 있는 시트(시트1)에서만 작동
  • if (status === "2상태"): 드롭다운 값이 "2상태"일 때만 동작
  • targetSheet.getRange(lastRow, 1, 1, rowData[0].length).setValues(rowData): 데이터를 "시트2"로 복사
  • sheet.deleteRow(editedCell.getRow()): 원본 데이터 삭제 (필요하면 주석 처리 가능)

4. 실행 및 테스트

1️⃣ 시트1에서 드롭다운을 "2상태"로 변경
2️⃣ 자동으로 시트2로 해당 행이 이동
3️⃣ 시트1에서는 해당 행이 삭제됨 (삭제 원하지 않으면 코드 수정)

원본 행을 삭제하고 싶지 않다면?

  • sheet.deleteRow(editedCell.getRow()); 이 부분을 주석 처리하면 삭제되지 않습니다.
// sheet.deleteRow(editedCell.getRow()); // 원본 행 삭제 안 함

5. 추가 기능 (옵션 변경)

다른 특정 상태에서도 이동하도록 설정

if (status === "2상태" || status === "3상태") { 

이렇게 하면 "2상태", "3상태"가 될 때도 이동됩니다.

다른 시트로 이동하는 경우 추가 설정

var targetSheetName = status === "2상태" ? "시트2" : "시트3";

이렇게 하면 "2상태" → 시트2, "3상태" → 시트3으로 이동하도록 설정할 수 있습니다.


💡 결론: 드롭다운 값 변경 시 자동 이동 가능!

📌 GAS를 활용하면 드롭다운 값 변경 시 자동으로 특정 시트로 데이터를 옮길 수 있습니다.
📌 원본 데이터를 삭제할지 여부도 조정 가능하며, 특정 상태별로 다른 시트로 이동할 수도 있습니다.

👉 이제 드롭다운을 활용하여 데이터를 자동으로 정리해 보세요! 😊