2011-12-06 5 views
0

Google 스프레드 시트에는 두 개의 개별 시트가 있습니다. 첫 번째 것은 이름과 데이터의 큰 목록이고 두 번째는 첫 번째 시트의 모든 데이터 (예 : 성으로 정렬)의 정렬 된 목록이어야합니다. 하나의 문제를 제외하고, 대부분의 경우 잘 작동무시 된 행을 사용하여 Google 문서 도구에서 정렬 된 스프레드 시트 스크립팅

=sort(sheet1!A:L, 2, TRUE) 

: 여기에 내가 두 번째 시트를 정의하고 현재의 방법입니다 Sheet1에있는 첫 번째 행은 "이름"로 구성되어 헤더 행이다, "성", "전화"등 내가 그 수식을 sheet2에 사용할 때 그 행은 그 나머지 부분과 함께 정렬됩니다.

정렬이 sheet1의 첫 번째 행을 무시하고 동일한 동작으로 열 A를 L로 정렬하도록하려면 어떻게 할당을 변경할 수 있습니까? 항목을 신속하게 추가 및 제거 할 수 있으므로 길이를 수동으로 지정하는 것은 실현 불가능합니다.

답변

2

첫 번째 셀을 지정하지만 다른 셀은 지정하지 않는 다른 범위 정의를 사용할 수 있습니다. 예 : L :

A1: =ArrayFormula(Sheet1!A1:L1) 
A2: =Sort(Sheet1!A2:L, 2, TRUE) 

A1 공식은 A2에서 2를 배치하여 사용자가 데이터 전용 (2 행과 등)를 지정할, 헤더 : A2에서
을 복사하는 단지입니다.

1

다음은 첫 번째 열을 기준으로 자동 정렬되며 머리글 행을 가정하는 일반 스크립트입니다.

스크립트 만들려면 : 도구로 이동 메뉴에서

을 -> 스크립트 편집기 ... 가 빈 코드 창에서 셀을 편집 할 때마다 자동으로 실행됩니다 다음 코드를 붙여 넣습니다

/** 
* Automatically sorts the 1st column (not the header row) Ascending. 
*/ 
function onEdit(event){ 
    var sheet = event.source.getActiveSheet(); 
    var editedCell = sheet.getActiveCell(); 

    var columnToSortBy = 1; 
    var tableRange = "A2:T99"; // What to sort. 

    if(editedCell.getColumn() == columnToSortBy){ 
    var range = sheet.getRange(tableRange); 
    range.sort({ column : columnToSortBy, ascending: true }); 
    } 
} 
+0

PHP 스크립트에서 행을 추가하더라도? –

+0

죄송합니다. 모르겠습니다. – grokster