저는 Apps Script를 처음 사용하며 첫 번째 작업을 시도합니다. 쇼핑 목록입니다.
지정된 다른 열 (Column 3, 'Qty')에 값이있는 모든 행을 활성화 한 다음 정렬 (열 1, '통로 번호'기준)하는 함수를 만들고 싶습니다. 아이디어는 그주의 목록에있는 항목을 통로별로 정렬하여 (즉, Qty 값을 입력하여) 내가 항목을 찾아야하는 순서를 제공하는 것입니다. 스프레드 시트에 있지만 Qty 값이없는 항목을 정렬하고 싶지 않습니다.
지금까지 내가 얻은 것은 다음과 같습니다.
var sheet = ss.getActiveSheet()
var range = sheet.getDataRange();
var rangeVals = range.getValues()
function orderList2(){
if(rangeVals[3] != ""){
sheet.activate().sort(1, ascending=true);
};
};
"if"를 사용하여 정렬을 수행하기 전에 활성화 할 행을 정의하려고합니다 (전체 시트를 정렬하고 싶지 않기 때문에 해당 주에 구매할 항목, 즉 항목 만 정렬하고 싶습니다). 열 3의 값). 스크립트가 실행되지만 전체 시트가 정렬됩니다.
내가 찾을 수있는 가장 가까운 것은 반복 이었지만, 그것을했을 때 왼쪽 상단 셀만 활성화되었습니다.
당신이 제공 할 수있는 어떤 도움이라도 대단히 감사 할 것입니다!
건배, 닉
사용 Range.sort () 대신 Sheet.sort () 는 전체 시트를 정렬하지 않으려면.
Aisle #
C ( Qty
) 의 해당 값 이 비어 있지 않은 경우 A 열 ( ) 의 값에 따라 데이터를 정렬하려고합니다 .
내 가정이 맞다면 Qty
비어 있는 행 은 나머지 데이터 아래로 이동해야하며 Aisle #
.
이 경우 다음을 제안합니다.
Qty
없는 행 Qty
이 맨 아래에 배치되도록합니다 Range.sort()
(헤더를 제외 할 필요가없는 경우 Sheet.sort()
대신 사용할 수 있음 ).QtyElements
아래의 샘플을).QtyElements
비어 있지 않은 열 C가있는 행 범위를 검색하고을 사용 하여 열 1에 따라 정렬합니다 Range.sort()
.function orderList2() {
var sheet = SpreadsheetApp.getActiveSheet();
var firstRow = 2; // Range starts at row 2, header row excluded
var fullRange = sheet.getRange(firstRow, 1, sheet.getLastRow() - firstRow + 1, sheet.getLastColumn());
fullRange.sort(3); // Sort full range according to Qty
SpreadsheetApp.flush(); // Refresh spreadsheet
var QtyElements = fullRange.getValues().filter(row => row[2] !== "").length;
sheet.getRange(firstRow, 1, QtyElements, sheet.getLastColumn())
.sort(1); // If not specified, default ascending: true
//.sort({column: 1, ascending: false}); // Uncomment if you want descending sort
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다