[]
        
(Showing Draft Content)

정렬

SpreadJS를 사용하면 피벗 테이블 데이터를 정렬하여 빠르고 편리하게 분석할 수 있도록 구성할 수 있습니다. 정렬 기능은 특히 대용량 데이터를 다룰 때 유용합니다. PivotTable.sort 함수를 사용하면 데이터를 정렬할 수 있으며, 이 함수는 sortInfo 객체를 매개변수로 받습니다.

SpreadJS에서는 피벗 테이블 데이터를 다음 네 가지 방식으로 정렬할 수 있습니다:

  1. 필드 항목 이름 기준 정렬

  2. 값 기준 정렬

  3. 사용자 정의 필드 항목 값 기준 정렬

  4. 사용자 정의 콜백 정렬

필드 항목 이름 기준 정렬

피벗 테이블 데이터를 특정 필드를 기준으로 정렬하려면, 필드 이름을 지정하고 sortInfosortType 속성을 설정하여 정렬 순서를 오름차순, 내림차순 또는 사용자 정의로 지정할 수 있습니다.

아래 이미지는 "Category" 필드에 내림차순 정렬 순서가 적용된 예시를 보여줍니다.

pivot-sort-by-field-name


다음 코드 샘플은 필드 항목 이름 기준으로 피벗 테이블 데이터를 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
 var sortInfo = {
  sortType: GC.Pivot.SortType.desc
 };
pivotTable.sort("Category", sortInfo);

디자이너 사용

디자이너에서 필드의 필터 드롭다운에서 기타 정렬 옵션..(More Sort Options..)을 클릭하여 데이터를 정렬할 수도 있습니다. 이 옵션을 클릭하면 필드 정렬(Sort Field) 대화상자가 열리며, 여기서 대상 필드를 선택하고 정렬 유형을 오름차순 또는 내림차순으로 설정할 수 있습니다.

아래 이미지는 디자이너에서 필드 항목 이름을 기준으로 정렬하는 방법을 보여줍니다:

pivot-sort-by-field-name

값 기준 정렬

피벗 테이블 데이터를 필드의 값에 따라 정렬하려면, sortInfo 클래스의 sortTypesortValueFieldName 속성을 설정할 수 있습니다. sortValueFieldName 속성을 사용하면 데이터를 정렬할 기준이 되는 필드의 이름을 지정할 수 있습니다. 이 기능을 통해 "Grand Total"(총합계) 열의 값을 기준으로 피벗 테이블 데이터를 정렬할 수 있습니다.

아래 이미지는 "Quantity" 값을 기준으로 "Category" 필드를 오름차순으로 정렬한 예시입니다.

pivot-sort-by-value


다음 코드 샘플은 피벗 테이블에서 값을 기준으로 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
var sortInfo = {
    sortType: GC.Pivot.SortType.asc,
    sortValueFieldName: "Quantity"
 };
  pivotTable.sort("Category", sortInfo);

디자이너 사용

디자이너에서 필드의 필터 드롭다운에서 기타 정렬 옵션..(More Sort Options..)을 클릭하여 데이터를 정렬할 수 있습니다. 이 옵션을 클릭하면 정렬 필드(Sort Field) 대화상자가 열리며, 여기서 대상 필드를 선택하고 정렬 순서를 오름차순 또는 내림차순으로 설정할 수 있습니다.

아래 이미지는 디자이너에서 값을 기준으로 정렬하는 방법을 보여줍니다:

pivot-sort-by-value


값 영역의 컨텍스트 메뉴에서도 Sort(정렬) 옵션을 사용하여 피벗 데이터를 값 기준으로 정렬할 수 있습니다. 이 메뉴에서는 다음 세 가지 정렬 옵션을 제공합니다:

  • 작은 값부터 큰 값 순으로 정렬

  • 큰 값부터 작은 값 순으로 정렬

  • 기타 정렬 옵션

앞의 두 옵션은 각각 오름차순 및 내림차순으로 정렬하며, 기타 정렬 옵션은 해당 값 영역에 따라 다음과 같이 동작합니다:

Value Area

Dialog

Behavior

일반 값 영역

sort-by-value1

값 기준 정렬(Sort by Value) 대화상자가 표시됩니다.

총계 영역

sort-by-value2

값 기준 정렬(Sort by Value) 대화상자가 표시되지만, 다음과 같은 조건과 함께 정렬 방향은 비활성화됩니다:

- Grand Total 열인 경우, 방향은 기본적으로 위에서 아래로입니다.

- Grand Total 행인 경우, 방향은 기본적으로 왼쪽에서 오른쪽입니다.

- Grand Total 행과 열 모두인 경우, 대화상자가 표시되지 않습니다.

행 헤더 영역/코너 영역

sort-by-value3

정렬 필드(Sort Field) 대화상자가 열리며, 다음과 같은 조건이 적용됩니다:

- Compact 레이아웃의 경우, Corner 영역에 정렬 옵션이 나타나지 않습니다.

- 선택한 필드가 ΣValues 필드인 경우, 값 기준 정렬(Sort by Value) 대화상자가 나타납니다.

- 선택한 Row 영역이 ΣValues 항목인 경우, 대화상자가 나타나지 않습니다.

열 헤더 영역

sort-by-value4

정렬 필드(Sort Field) 대화상자가 열리며, 다음과 같은 조건이 적용됩니다:

- 선택한 필드가 ΣValues 필드인 경우, 값 기준 정렬(Sort by Value) 대화상자가 나타납니다.

- 선택한 Column 영역이 ΣValues 항목인 경우, 대화상자가 나타나지 않습니다.

사용자 정의 필드 항목 값 기준 정렬

사용자 정의 필드 항목 값을 기준으로 피벗 테이블 데이터를 정렬하려면, sortInfo 객체의 sortByPivotReferences 속성을 사용할 수 있습니다.

아래 이미지는 "OrderDate" 필드의 "Qtr1" 데이터를 기준으로 "Category" 필드를 오름차순으로 정렬한 예시입니다.

pivot-sort-by-custom-value


다음 코드 샘플은 사용자 정의 필드 항목 값을 기준으로 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
 var sortInfo = {
  sortType: GC.Pivot.SortType.asc,
  sortValueFieldName: "Quantity",
  sortByPivotReferences: [
     {
        fieldName: "OrderDate",
        items: ["Qtr1"]
     }
    ]
}
pivotTable.sort("Category", sortInfo);

디자이너 사용

디자이너에서 필드의 필터 드롭다운에서 값 기준 정렬(Sort by Value) 을 클릭하여 데이터를 정렬할 수 있습니다. 이 옵션을 클릭하면 대상 필드의 정렬 순서를 선택할 수 있는 정렬 필드(Sort Field) 대화상자가 열리며, 여기서 기타 옵션..(More Options..) 버튼을 클릭하면 또 다른 정렬(Sort) 대화상자가 열립니다. 이 대화상자에서는 기본적으로 총합계(GrandTotal) 이 선택되어 있어 값 기준 정렬과 동일한 결과를 제공합니다. 사용자 정의 필드 항목 값으로 정렬하려면, 선택한 열의 값(Values in selected column) 의 범위 선택기를 사용해 범위를 지

행 또는 열 영역 필드의 경우 이 대화상자 옵션은 비활성화됩니다. 예를 들어, Category 필드에 대해 기타 옵션..(More Options..) 버튼을 클릭하면 버튼이 비활성화되므로, Quantity 필드를 선택한 후 기타 옵션(More Options...) 버튼을 클릭해야 합니다.

아래 이미지는 디자이너에서 사용자 정의 필드 항목 값을 기준으로 정렬하는 방법을 보여줍니다:

pivot-sort-by-custom-field-value

사용자 정의 콜백 정렬

값의 오름차순 또는 내림차순이 아닌 사용자 정의 로직을 사용하여 피벗 테이블 데이터를 정렬하려면, 사용자 정의 콜백 함수를 사용할 수 있습니다.

아래 이미지는 사용자 정의 콜백 함수를 사용하여 TotalSales 열을 정렬한 예시입니다.

pivot-sort-by-custom-callback

다음 코드 샘플은 사용자 정의 콜백 함수를 사용하여 TotalSales 열을 정렬하는 방법을 보여줍니다:

let pivotTable = spread.getActiveSheet().pivotTables.get("PivotTable");
 var sortInfo = {
       sortType: GC.Pivot.SortType.desc,
       customSortCallback: (fieldItemNameArray)=>{
       alert("sorting from custom callback")
       return fieldItemNameArray.sort((a,b)=>b-a);
    }
  };
pivotTable.sort("TotalSales", sortInfo);