새소식

반응형
구글 스프레드시트 & 엑셀/시스템 만들기

구글앱스크립트로 AND 다중조건이 가능한 자동필터 만들기

  • -
반응형

 

 

이런식으로 내용에 대한 필터를 여러개가 AND 조건으로 필터가 되도록 만드는 방법은

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("시트명");

  // A4부터 F4까지의 검색 값 배열 생성
  var searchValues = [];
  for (var i = 1; i <= 6; i++) {
    searchValues.push(sheet.getRange(4, i).getValue());
  }

  var range = sheet.getRange("A7:X" + sheet.getLastRow());

  // 필터링을 해제합니다.
  if (sheet.getFilter() != null) {
    sheet.getFilter().remove();
  }

  // 검색 값이 있는 열에 대해 필터 기준을 설정합니다.
  var filterCriteria = [];

  for (var i = 0; i < searchValues.length; i++) {
    if (searchValues[i] !== "") {
      filterCriteria.push(SpreadsheetApp.newFilterCriteria().whenTextContains(searchValues[i]).build());
    } else {
      filterCriteria.push(null);  // 값이 비어 있을 경우 null을 추가
    }

 

생각보다 어려웠는데 간단하게 해결하였다. 

만들어진 함수는 onedit에 삽입하면 자동으로 작동한다.

 

function onEdit(e) {
  var sheet = e.source.getSheetByName("시트명");
  var range = e.range;

  if (range.getA1Notation() == "A4" || range.getA1Notation() == "B4" || range.getA1Notation() == "C4" || range.getA1Notation() == "D4" || range.getA1Notation() == "E4" || range.getA1Notation() == "F4") {
    자동필터함수명();
  }

 

 

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.