메뉴 건너뛰기

app

[GAS] 다른 파일에서 VLOOKUP 유사 구현

lispro062014.05.05 05:53조회 수 1780댓글 0

    • 글자 크기
참조할 파일에 위치한 시트에 NamedRange2라고 범위 이름을 지정하고, range_name을 파라미터로 한 getNamedRangeValues를 호출한다. 현재 시트에서 원하는 값의 셀을 선택해(key 값이 되겠다.) 비교한 후, 해당 열의 값을 추출해 낼 수 있다.

test_getNamedRangeValues함수에 3을 입력한다고 치면, 세번째 값이 나오도록 할 수 있겠다.

셀에  =test_getNamedRangeValues(0) 와 같이 입력 가능하군. 올..

function test_getNamedRangeValues(j) {
    var range_name = "NamedRange2";
    var range_values = getNamedRangeValues(range_name);
  rl=range_values.length;
  
  for(i=1;i<rl;i++){
    var active_spreadsheet = SpreadsheetApp.getActiveSheet();
    var vl=active_spreadsheet.getRange(1, 1, 6, 4).getValues();;
    
      Logger.log(range_values[i][4]);
    if(range_values[i][4]==vl[1][3]){
      return range_values[i][j];
    }
  }
}

// Return an array containing the values in the range name argument.
// Passing a non-existent range name raises the following error:
// TypeError: Cannot call method "getValues" of null. (line 0).
function getNamedRangeValues ( range_name ) {
    // Create an spreadsheet object.
  var ss=SpreadsheetApp.openById("파일ID");
  var sn=ss.getSheetByName("시트이름");
    // Create the range object.
    var range = ss.getRangeByName(range_name);
  
    // Call the getValues() range object method to create an array 
    // containing the values for the cells in that named range.
    var range_values = range.getValues();
  
    // Return the array
    return range_values;
  
}

http://www.javascript-spreadsheet-programming.com/2011/01/named-ranges.html
를 참고했다.
lispro06 (비회원)
    • 글자 크기

댓글 달기

suritam9
2013.04.25 조회 6116
suritam9
2013.04.04 조회 2197
suritam9
2012.09.14 조회 2515
suritam9
2012.06.24 조회 2366
suritam9
2012.06.24 조회 2777
suritam9
2012.06.24 조회 2540
suritam9
2012.06.22 조회 2582
박영식
2011.09.22 조회 2544
박영식
2011.09.21 조회 2488
박영식
2011.02.18 조회 2964
박영식
2010.09.29 조회 4757
첨부 (0)
위로