구글 시트에서 드롭다운 값을 변경하면 해당 데이터를 자동으로 다른 시트로 이동하는 방법을 찾고 계시군요! 이 작업은 Google Apps Script(GAS)를 활용하면 자동화할 수 있습니다. 오늘은 드롭다운 값이 변경될 때 특정 조건을 만족하면 데이터를 다른 시트로 옮기는 방법을 설명해 드리겠습니다.
1. 기본 개념 정리
✅ 드롭다운 값 변경 감지
✅ 특정 값(예: "2상태")로 변경 시 해당 행을 다른 시트로 복사
✅ 원본 데이터 삭제 또는 유지 여부 선택 가능
이를 구현하기 위해 구글 시트의 Google Apps Script(GAS)를 사용합니다.
2. 드롭다운 목록 만들기
우선, 시트1에 드롭다운을 설정해야 합니다.
📌 드롭다운 설정 방법
- 시트1에서 드롭다운을 설정할 셀을 선택합니다.
- 메뉴에서 데이터 > 데이터 유효성 검사를 클릭합니다.
- 조건을 "목록에서 선택"으로 설정합니다.
- 값으로
"1상태", "2상태"
등을 입력하고 저장합니다.
이제 드롭다운을 변경하면 자동으로 다른 시트로 옮기는 기능을 추가해 보겠습니다.
3. Google Apps Script (GAS) 코드 추가하기
📌 Google Apps Script 코드 입력 방법
- 구글 시트 상단 메뉴에서
확장 프로그램 > Apps Script
클릭 - 기존 코드를 모두 삭제하고 아래 코드를 입력
Ctrl + S
또는파일 > 저장
클릭실행 > 함수 실행
에서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를 활용하면 드롭다운 값 변경 시 자동으로 특정 시트로 데이터를 옮길 수 있습니다.
📌 원본 데이터를 삭제할지 여부도 조정 가능하며, 특정 상태별로 다른 시트로 이동할 수도 있습니다.
👉 이제 드롭다운을 활용하여 데이터를 자동으로 정리해 보세요! 😊