[]
        
(Showing Draft Content)

GROUPBY

이 함수는 수식을 사용하여 데이터 요약을 생성할 수 있게 해줍니다. 행 필드를 따라 그룹화하고 관련 값을 집계할 수 있습니다. 추가로, 그룹화된 데이터에 대해 정렬 및 필터링도 수행할 수 있습니다.

구문

GROUPBY(row_fields,values,function,[field_headers],[total_depth],[sort_order],[filter_array],[field_relationship])

인수

함수는 다음과 같은 인수를 가집니다.

인수

설명

예제

row_fields

행을 그룹화하고 행 머리글을 생성하는 데 사용되는 값이 포함된 열 지향 배열 또는 범위입니다.

  • 한 열을 기준으로 행 그룹화: =GROUPBY(A1:A62, E1:E62, SUM)

  • 여러 열을 기준으로 행 그룹화: =GROUPBY(A1:B62, E1:E62, SUM)

  • 인접하지 않은 열을 기준으로 행 그룹화: =GROUPBY(CHOOSECOLS(A1:D62, 1, 4), E1:E62, SUM)

values

집계할 데이터가 포함된 열 지향 배열 또는 범위입니다.

  • 한 열 집계: =GROUPBY(A1:A62, E1:E62, SUM)

  • 여러 열 집계: =GROUPBY(B1:B62, E1:G62, MAX)

  • 인접하지 않은 열 집계: =GROUPBY(B1:B62, CHOOSECOLS(E1:G62, 1, 3), MEDIAN)

function

그룹화된 데이터를 요약할 함수입니다.

  • 단일 함수 참조 사용: =GROUPBY(A1:A62, E1:E62, SUM)

  • 단일 LAMBDA 함수 사용: =GROUPBY(B1:B62, E1:E62, LAMBDA(a, IF(COUNT(a) > 2, "↑", "↓")))

  • HSTACK을 이용한 다중 집계: =GROUPBY(B1:B62, E1:E62, HSTACK(COUNT, LAMBDA(a, IF(COUNT(a) > 2, "↑", "↓")), PERCENTOF))

  • VSTACK을 이용한 다중 집계: =GROUPBY(B1:B62, E1:E62, VSTACK(COUNT, LAMBDA(a, IF(COUNT(a) > 2, "↑", "↓")), PERCENTOF))

  • HSTACK과 집계 이름 변경 사용: =GROUPBY(A1:B62, E1:E62, VSTACK(HSTACK(COUNT, LAMBDA(a, IF(COUNT(a) > 2, "↑", "↓"))), {"c", "good"}))

  • VSTACK과 집계 이름 변경 사용: =GROUPBY(A1:B62, E1:E62, HSTACK(VSTACK(COUNT, LAMBDA(a, IF(COUNT(a) > 2, "↑", "↓"))), {"c"; "good"}))

  • 여러 값 열에 대한 다중 집계: 열과 집계의 개수가 같아야 합니다.

  • 임시 LAMBDA 함수를 이용한 다중 집계: =GROUPBY(A1:A13, C1:C13, VSTACK(MAP({1, 2, 3, 4}, LAMBDA(_m, LAMBDA(_x, @INDEX(_x, _m) / SUM(_x)))), "2024 Q" & {1, 2, 3, 4}), 1, 0)

field_headers [선택]

row_fields와 values에 머리글이 있는지, 결과에 필드 머리글을 반환할지 여부를 지정하는 숫자입니다.

옵션:

생략(기본) - values 인수를 기준으로 데이터에 머리글이 있다고 가정

0 - 없음

1 - 있음(표시하지 않음)

2 - 없음(생성함)

3 - 있음(표시함)


total_depth[선택]

행 머리글에 합계가 포함될지 여부를 결정합니다.

옵션:

생략(기본) - 전체 합계 및 가능하면 부분 합계 포함

0: 합계 없음

1: 전체 합계만 포함

2: 전체 및 부분 합계 포함


sort_order

행을 어떻게 정렬할지 나타내는 숫자입니다. 숫자는 row_fields의 열 다음에 values의 열에 해당합니다. 숫자가 음수이면 내림차순/역순으로 정렬됩니다.

생략(기본): row_fields 값에 따라 A에서 Z로 오름차순 정렬

여러 열로 정렬 시: row_fields의 열과 values의 열에 대응하는 1차원 배열을 제공합니다.


filter_array

해당 데이터 행을 고려할지 여부를 나타내는 부울값으로 구성된 열 지향 1차원 배열입니다.

=GROUPBY(B:B, E:E, COUNT, , , , G:G > 200)

field_relationship

row_fields에 여러 열이 제공될 때 관계 필드를 지정합니다.

옵션:

0: 계층(기본) - 이후 필드 열 정렬 시 이전 열의 계층 구조를 고려함

1: 표 - 각 필드 열이 독립적으로 정렬됨. 계층 구조를 필요로 하는 부분 합계는 지원되지 않음


참고

GROUPBY 함수는 Excel 가져오기 및 내보내기를 지원합니다.

예제

GROUPBY(A1:A62, E1:E62, SUM)

다음 코드는 데이터 집합에서 GROUPBY 함수 사용 예를 보여줍니다.

 // Allow the Dynamic Array to True
 spread.options.allowDynamicArray = true;
 spread.setSheetCount(3);
 
 let sheet2 = spread.getSheet(1);
 sheet2.name("GROUPBY Function");
 let data = [
     ["YEAR", "Category", "Product", "Status", "Sales", "Rating"],
     [2023, "Electronics", "Smart TV", "Active", 15000, 4.5],
     [2023, "Fashion", "Designer Jeans", "Discontinued", 8000, 4.7],
     [2024, "Food", "Organic Granola", "Active", 5000, 4.8],
     [2023, "Books", "Bestseller Novel", "Active", 12000, 4.6],
     [2024, "Electronics", "Laptop", "Active", 20000, 4.9],
     [2023, "Beauty", "Skincare Set", "Discontinued", 7000, 4.4],
     [2023, "Home & Garden", "Garden Tools", "Active", 6500, 4.3],
     [2024, "Health", "Fitness Tracker", "Active", 9500, 4.6],
     [2023, "Toys", "Action Figure", "Active", 4800, 4.7],
     [2024, "Automotive", "Car Accessories", "Discontinued", 3200, 4.5],
     [2023, "Sports", "Basketball", "Active", 7600, 4.8],
     [2024, "Office Supplies", "Notebooks", "Active", 11000, 4.4],
     [2023, "Pet Supplies", "Dog Food", "Discontinued", 5600, 4.6],
     [2024, "Music", "Headphones", "Active", 13000, 4.9],
     [2023, "Outdoor", "Camping Tent", "Discontinued", 4400, 4.5],
     [2024, "Jewelry", "Silver Necklace", "Active", 2800, 4.7],
     [2023, "Tools", "Power Drill", "Active", 3900, 4.4],
     [2024, "Baby", "Stroller", "Active", 1700, 4.6],
     [2023, "Kitchen", "Blender", "Active", 2500, 4.8],
     [2024, "Clothing", "Casual Shirt", "Discontinued", 6200, 4.5],
     [2023, "Art", "Oil Paintings", "Active", 1900, 4.7],
     [2024, "Hobbies", "Model Trains", "Active", 3100, 4.4],
     [2023, "Tech Gadgets", "Smart Watch", "Discontinued", 7300, 4.6],
     [2024, "Travel", "Luggage", "Active", 4600, 4.8],
     [2023, "Home Decor", "Wall Clock", "Active", 2200, 4.5],
 ];

 // Sheet2 - GROUPBY Function
 sheet2.setArray(0, 0, data);
 sheet2.tables.add("table2", 0, 0, data.length, 6, GC.Spread.Sheets.Tables.TableThemes.medium2);
 sheet2.setFormula(2, 8, "=GROUPBY(A2:A26,E2:E26, SUM)");