'Dropdown'에 해당되는 글 1건

구글 스프레드시트를 개인적으로든 업무적으로든 다양하게 사용중입니다.

드랍다운 기능이 생기면서 엄청 유용하게 사용하고 있는데요
리스트를 자주 추가해줘야 하는 경우 드랍다운 목록으로 관리하든 범위로 관리하든 불편하기는 매한가지입니다.

그래서
드랍다운 대상 시트에 내용 입력 시 드랍다운 목록 범위에 있으면 그대로 사용하고
목록 범위에 없으면 목록 범위에 추가해주도록 스크립트를 만들었습니다.

function onEdit(e){
  //e.range.getColumnIndex() : 수정될 시트의 컬럼 번호
  //listEdit 함수의 두번째 파라미터 column : 참조할 리스트가 있는 컬럼 번호
  var colNum = 0;
  
  //여러 컬럼 리스트를 사용해야 하는 경우 수정할 컬럼과 참조할 컬럼을 여기에 추가
  if(e.range.getColumnIndex() == 1) colNum = 1;
  if(e.range.getColumnIndex() == 3) colNum = 4;

  if(colNum != 0) listEdit(e.value, colNum);
}

function listEdit(value, column){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getSheetByName('list');
  var row = 2;
  var lists = [];
  while(sh.getRange(row, column).getValue() != ''){
    lists.push(sh.getRange(row, column).getValue());
    row++;
  }
  var result = false;
  for(var list of lists){
    if(value == list){
      result = true;
      break;
    }
  }
  if(!result){
    sh.getRange(row, column).setValue(value);
    row++;
  }
}

위 코드에서 몇가지 제약사항이 있는데요
1. 목록 시트명 고정 필요
2. 참조 리스트는 공백이 생기지 않게 할 것(리스트 삭제 시 아래 엤는 내용 끌어올려야함)

위 두가지만 지켜주시면 됩니다.

나중에 견본 시트 같이 올려드리겠습니다.

블로그 이미지

ligilo

행복한 하루 되세요~

,