GAS 구글 스크립트 VLOOKUP 사용 방법 예제

구글 스프레드시트에는 VLOOKUP 함수가 있지만 Google Apps Script에는 없습니다.

구글 스크립트에서 VLOOKUP처럼 다른 시트에 있는 값을 참조해 취득하고 싶은 경우에는 직접 만들어서 사용해야 합니다.

간단한 예제로 구극ㄹ 스크립트에서 VLOOKUP 기능처럼 사용 하는 방법을 알아보겠습니다.

VLOOKUP 만들기

시트2과 시트3에는 각각 데이터가 존재합니다.

시트2의 번호로 시트3에서 검색하여 수량을 취득하는 스크립트 예제를 보겠습니다.

function myFunction() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();

  // VLOOKUP 대상파일
  var sheet3 = ss.getSheetByName('시트3');
  var kvRow = 2;        // 검색 시작 행 번호를 입력 (헤더는 제외)

  var keyColumn = 1;    // 검색키 대상 열 번호를 입력
  var valueColumn = 2;  // 가져올 값 열 번호를 입력
  var kvData = sheet3.getRange(kvRow, keyColumn, sheet3.getLastRow(), valueColumn).getValues();
  var kvDic = {};

  // 키, 값 배열형태로 취득한 값을 저장
  for(var i = 0; i < kvData.length; i++) {  
    kvDic[kvData[i][keyColumn-1]] =kvData[i][valueColumn-1];
  }

  // 시트2 값을 설정
  var sheet2 = ss.getSheetByName('시트2');

  var startRow = 2;     // 검색과 결과 값을 넣을 행 시작 번호를 입력 (헤더는 제외)
  var targetColumn = 1; // 검색 키워드 열 번호를 입력
  var setColumn = 3;    // 결과값을 입력할 열 번호를 입력
  var lastRow = sheet2.getLastRow(); // 시트2 마지막 행번호 취득
  
  var targetValue;
  var setValue;
  
  for(startRow ; startRow <= lastRow; startRow++){
    
    targetValue = sheet2.getRange(startRow,targetColumn).getValue(); // 검색 키워드를 취득
    setValue = kvDic[targetValue];                                   // 시트3에서 취득한 데이터에서 값을 취득 
    sheet2.getRange(startRow,setColumn).setValue(setValue);          // 시트2에 값을 입력
  }
}

스크립트 실행 결과를 보겠습니다.

A열 번호를 시트3에서 검색해 시트3에 있는 수량이 시트2 C열에 출력되었습니다.

소스를 보면 시트3에 있는 번호와 수량을 와 의 구조를 가진 배열 형태로 취득했습니다.

시트2는 A2셀부터 A7셀까지 반복문을 사용해 처리를 했습니다.

반복문에서 사용한 시트의 마지막 데이터가 입력된 행을 취득하기 위해 getLastRow() 함수를 사용했습니다.

반복문 처리에서는 A열에 있는 번호를 키와 값으로 이뤄진 배열에서 키로 검색해 값을 취득하고 있습니다.

취득한 값은 C열에 출력하도록 하고 있습니다.

댓글