Google 스프레드 시트에서 일부 데이터를 자동 정렬하려면 어떻게해야합니까?

Google 스프레드 시트가 일부 데이터 (예 : C)를 자동으로 정렬하기를 원한다고 가정 해 보겠습니다.

p>

어떻게해야합니까?

마우스 오른쪽 버튼을 클릭하고 데이터 정렬 을 선택하여 수동으로 데이터를 정렬 할 수 있다는 것을 알고 있습니다.

답변

sort() 기능 을 사용하지만 데이터를 한 곳에 저장하고 해당 데이터를 다른 위치에 자동으로 정렬해야합니다.

예 : 데이터가 포함 된 Sheet1이 있습니다.

 | A | B | C ===================== 1 | This | this | 2 2 | Is | is | 1 3 | Test | test | 3 

그런 다음 Sheet2, 셀 A1에 다음 함수를 넣습니다.

= sort (Sheet1! A : C, 3, TRUE)

내 데이터가 표시되지만 열별로 정렬됩니다. C (세 번째 열), 오름차순.

 | A | B | C ===================== 1 | Is | is | 1 2 | This | this | 2 3 | Test | test | 3 

설명

  • 매개 변수는 세미콜론으로 구분해야합니다.

    예 : = sort(Sheet1!A:C; 3; TRUE)

  • @Petr 쉼표를 사용하면 잘 작동합니다.
  • @ user17634 : 로케일 설정에 따라 다릅니다.
  • li>

  • 이 접근법의 문제점은 항목 # 3을 항목 # 1 위치로 이동할 수 없다는 것입니다 (# 3과 중복 됨).

답변

Google Apps Script 를 사용하여 데이터를 자동으로 정렬 할 수도 있습니다.

이는 달성하기가 더 어렵고 오류가 발생하기 쉽습니다 (나는 여전히 William Jackson의 솔루션, +1 BTW를 사용합니다). 보여줄만큼 흥미 롭다고 생각했습니다.

다음과 같은 시트가 있습니다.

자동 정렬 시트

다음 단계를 사용하여 새 스크립트를 추가했습니다.

  • 메뉴에서 도구 -> 스크립트 편집기 … 로 이동합니다.
  • 만들기 선택 새 프로젝트
  • 표시되는 빈 코드 창에 다음 코드를 붙여 넣습니다. 셀이 편집 됨 :

    function onEdit(event){ var sheet = event.source.getActiveSheet(); var editedCell = sheet.getActiveCell(); var columnToSortBy = 4; var tableRange = "B3:E9"; if(editedCell.getColumn() == columnToSortBy){ var range = sheet.getRange(tableRange); range.sort( { column : columnToSortBy } ); } } 
  • 시트로 돌아가서 값을 가지고 놀면서 매번 테이블이 자동으로 정렬되는지 확인합니다.

참고 :

위 스크립트에서

  • 4 값은 D 열의 인덱스를 나타냅니다 (Value 열- 정렬됩니다)
  • "B3:E9" 값은 표 범위 (헤더 행 제외)를 나타냅니다.

당신의 표는 제 표와 다를 가능성이 높으므로이 값은 적절하게 조정되어야합니다.

댓글

  • 당신의 [edited] function onEdit ( 이벤트) {var sheet = event.source.getActiveSheet (); var editedCell = sheet.getActiveCell (); var columnToSortBy = 4; var tableRange = ” A2 : F99 “; if (editedCell.getColumn () == columnToSortBy) {var range = sheet.getRange (tableRange); range.sort ({column : columnToSortBy}); }}하지만 계속 오류가 발생합니다. TypeError : 정의되지 않은 ” source ” 속성을 읽을 수 없습니다. (2 행) 다음 코드입니다. var sheet = event.source.getActiveSheet (); 어떤 아이디어? NM, 스크립트 페이지에서 실행할 때만 오류가 발생하지만 실제 스프레드 시트에서는 제대로 작동하지만
  • 계속 오류가 발생합니다. TypeError : Cannot read property ” source ” from undefined. (2 행) 다음 코드입니다. var sheet = event.source.getActiveSheet (); 어떤 아이디어? NM, 스크립트 페이지에서 실행할 때만 오류가 발생하지만 실제 스프레드 시트에서는 제대로 작동합니다. 이제 질문 … 정렬 A-Z, 자동 정렬 Z-A로 어떻게 변경합니까? 감사합니다
  • @ drizzt09 메소드를 호출 할 때 event 매개 변수에 대해 null를 지정할 수 있습니다. 실제 이벤트가 트리거 될 때 Google 스프레드 시트 인프라에 의해 채워집니다.
  • @ drizzt09 정렬 순서를 변경하려면 range.sort 행을 다음과 같이 변경합니다. range.sort( { column : columnToSortBy, ascending: false } ); . 더 많은 정렬 옵션은 developers.google.com/apps-script/class_range#sort
  • 를 참조하십시오.

  • @ w0lf 완벽하게 작동 해 주셔서 감사합니다. 이제 추가하거나 똑같은 기능을 수행하지만 열거 나 새로 고치는 별도의 기능을 갖고 싶습니다. 따라서 Excel 시트를 열거 나 새로 고치면 현재 코드로 4 열의 코드를 편집 할 때와 동일하게 내림차순으로 4 번째 열이 자동으로 정렬됩니다. 감사합니다.

답변

스크립트가없는 또 다른 옵션은 다음과 같습니다.

=QUERY(A1:C3,"SELECT * ORDER BY C") 

범위가 제한됩니다 (A1 : C3). 순서가 오름차순 인 경우 빈 항목이 먼저 표시되기 때문입니다.

댓글

  • 어디에 입력해야하는지 알려주시겠습니까?
  • SELECT * WHERE C <> '' ORDER BY C 빈 항목을 무시한 다음 현재 및 미래의 모든 행을 포함하기에 충분한 범위를 사용할 수 있습니다.

답변

다음은 첫 번째 열을 기준으로 자동 정렬하고 헤더 행을 가정하는 일반 스크립트입니다.

스크립트를 생성하려면 다음을 따르세요.

  • 메뉴에서 도구-> 스크립트 편집기 …로 이동합니다.

빈 코드 창에 다음 코드를 붙여 넣으면 셀이 편집 될 때마다 자동으로 실행됩니다.

 // LinkBack to this script: // http://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sorting/43036#43036 /** * 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 } ); } } 

댓글

  • var sheet = SpreadsheetApp.getActiveSpreadsheet(); 여기에 ‘가 있습니다.
  • 이것은 훌륭하게 작동하지만 문서의 단일 시트에서만 정렬되도록 어떻게 편집 할 수 있습니까?
  • ‘ 작동하지 않는 것 같음

답변

Usi 스크립트 솔루션을 사용하지만 둘 이상의 열로 정렬

드롭 다운 메뉴 열로 정렬 한 다음 날짜별로 정렬하고 싶었습니다.

그렇게하려면 Cristian 또는 geekspotz의 코드 스 니펫의 “range.sort”줄을 다음과 같이 수정하십시오.

// Sorts descending by edited column, then ascending by column 1 // Note the use of an array
range.sort([{column: columnToSortBy, ascending: false}, {column: 1, ascending: true}]);

차이점은 전체 문 (배열) 주위에 곧은 괄호를 추가하고 쉼표로 정렬을 구분하는 것입니다.

Serge의 스택 오버플로 답변에서 가져온 정렬 코드 수정 : 시트에서 자동 정렬

답변

여기에서 자동 정렬 스크립트 및 스프레드 시트 (시트에 약간의 작업, 코드 복사 붙여 넣기 및 범위 설정이 필요합니다. 여러 stackexchange 답변을 기반으로합니다.

https://docs.google.com/spreadsheets/d/1LDohwCuy8HZg4YCQEOuWmgpY_WG2BVh_aH-i4JGM5BE/edit#gid=0

기록하고 마지막 편집에서 초점을 맞춘 범위의 값을 가져옵니다. 실제 편집 후 현재 값과 비교합니다. 표를 다르게 정렬합니다.

답변

답변

Google App Script를 사용하여 할 수 있습니다. 스크립트는 시트 데이터가 변경 될 때마다 자동으로 정렬됩니다.

Google 시트에서 :
도구 –> 스크립트 편집기를 선택하고 아래 스크립트를 붙여넣고 저장합니다.

SHEET_NAME, SORT_DATA_RANGE 및 SORT_ORDER 변수를 해당 값으로 바꿉니다.

p>

SHEET_NAME = "Sheet1"; SORT_DATA_RANGE = "A1:C999"; SORT_ORDER = [ {column: 3, ascending: false}, // 3 = column number, sorting by descending order {column: 1, ascending: true}, // 1 = column number, sort by ascending order {column: 2, ascending: true} ]; function onEdit(e){ multiSortColumns(); } function multiSortColumns(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(SHEET_NAME); var range = sheet.getRange(SORT_DATA_RANGE); range.sort(SORT_ORDER); ss.toast("Sort complete."); } 

출처 : https://www.idiotinside.com/2018/06/08/sort-multiple-columns-google-sheets-apps-script/

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다