2017-04-26 1 views
0

주문 목록이 있으며 주문한 사람마다 30 명의 클라이언트가있는 별도의 인쇄 용지 페이지를 만들어야합니다. 숨기기 열과 행 스크립트를 사용하고 importrange()를 사용하려고했지만 숨겨진 열과 행도 가져옵니다. 아마도 쿼리 나 필터와 같은 함수 나 스크립트를 사용하여 클라이언트 만 필터링 할 수있는 다른 방법이 있습니까? spreadsheet하나의 전체 목록에서 3 개의 개별 시트로 데이터 가져 오기

시트 "모두"모든 클라이언트 및 주문에 포함

다음은 테스트 스프레드 시트입니다. 시트 "Print1"및 "Print2"에는 모든 클라이언트가 주문을해야합니다 (각 시트에는 최대 30 개의 클라이언트가 있어야 함)

+0

단순히 피벗 차트를 사용해 보셨습니까? – OblongMedulla

답변

1

셀 값을 기반으로 행을 복사하려면이 관련 SO post 또는 post2.

function copy2(){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sh = SpreadsheetApp.setActiveSheet(ss.getSheets()[0]); selects the first sheet in your spreadsheet 
    var data=sh.getDataRange().getValues();// data is a 2D array, index0 = col A 
    // so column k is index 10 
    var target=new Array();// this is a new array to collect data 
    for(n=0;n<data.length;++n){ // iterate in the array, row by row 
    if (data[n][10]=="Done In The Past 30 Days"){ ;// if condition is true copy the whole row to target 
    taget.push(data[n]);// copy the whole row 
    } 
    } 
    if(target.length>0){// if there is something to copy 
    var sh2=SpreadsheetApp.setActiveSheet(ss.getSheets()[1]); //second sheet of your spreadsheet 
    sh2.getRange(1,1,target.length,target[0].length).setValues();// paste the selected values in the 2cond sheet in one batch write 
    } 
} 

당신은 sheetID 당 각 사본을 제한하는 카운터를 추가 할 수 있습니다 : 여기

포스트에서 코드입니다.

희망이 도움이됩니다.

관련 문제