Fusion 집계와 순위 함수
범위, 배열 또는 여러 값으로 집계를 계산합니다. 각 함수의 서명에 표시한 입력형과 조건을 따릅니다. 서명의 대괄호는 선택 인수, ...는 반복 인수를 뜻합니다.
합과 곱
sum([value: number, ...]): number
sum_distinct([value: number, ...]): number
product([value: any, ...]): number
sum_product([value: any, ...]): number
sum은 합을, sum_distinct는 중복 숫자를 한 번씩만 포함한 합을 반환합니다. sum(23, 45, 32)와 sum_distinct(23, 45, 32, 45)의 결과는 모두 100입니다.
product는 입력의 숫자들을 곱합니다. 예를 들어 product(6*2)는 12입니다.
sum_product는 입력들의 같은 위치 원소를 곱한 뒤 합합니다. 모든 입력의 차원이 같아야 하며 숫자가 아닌 값은 0으로 처리합니다. sum_product(A1:A3, B1:B3)은 A1×B1 + A2×B2 + A3×B3입니다.
평균과 중앙값
avg([range: range, ...]): number
mean([value: number, ...]): number
median([value: number, ...]): number
avg는 범위 또는 나열한 값의 숫자 평균을 계산합니다. avg(5, 7, 11)은 23/3, 즉 약 7.6667입니다.
mean은 숫자들의 평균입니다. mean(5, 8, 12)는 25/3, 즉 약 8.3333입니다.
median은 숫자들의 중앙값을 반환합니다. median(10, 11, 19, 20, 21)은 19입니다. median(A1:A100)처럼 범위도 사용할 수 있습니다.
개수
| 서명 | 동작 |
|---|---|
count([range: range, ...]): number | 입력 그룹의 항목 수 |
count_distinct([range: range, ...]): number | 고유 항목 수. 배열에도 적용 가능 |
count_numeric([value: any, ...]): number | 숫자 항목만 센 개수 |
countif(range: range, criteria: any): number | criteria와 같은 항목 수 |
countifs([range: range, criteria: any, ...]): number | 모든 범위 및 조건 쌍을 만족하는 위치의 개수 |
이름과 숫자가 섞인 A1:A100에서는 count_numeric(A1:A100)으로 숫자만 셉니다. countif(A1:A100, 'Dog')는 Dog가 나타난 횟수를 세며 고유값 개수와 구분합니다.
=countifs(A1:A100, 'Red', B1:B100, 2)
이 예시는 A열이 Red이고 같은 행의 B열이 2인 경우를 셉니다.
최댓값과 최솟값
max([value: any, ...]): any
min([value: any, ...]): any
숫자, 날짜 또는 timestamp 그룹의 가장 큰 값과 가장 작은 값을 반환합니다.
| 입력 | max | min |
|---|---|---|
| 1, 5, 23 | 23 | 1 |
| 5, 8, 12 | 12 | 5 |
date(2021, 2, 2), date(2021, 2, 1) | 2021-02-02 | 2021-02-01 |
| 2021-02-02 00:00:01, 2021-02-02 00:00:02 | 00:00:02인 timestamp | 00:00:01인 timestamp |
Timestamp 예시 값은 parse_timestamp('2021-02-02 00:00:01', 'yyyy-MM-dd HH:mm:ss')처럼 파싱하여 사용합니다. max(A1:A100) 또는 min(A1:A100)으로 범위를 집계할 수도 있습니다.
백분위수
percentile(array: array, pp: number): number
정렬되지 않은 양수 및 음수 배열을 받을 수 있습니다. pp는 0 이상 1 이하이며 0은 최솟값, 0.5는 중앙값, 1은 최댓값입니다.
| 호출 | 결과 |
|---|---|
percentile(array(7.25, 5.3, 8, 10), 0.25) | 6.7625 |
percentile(array(12, 20, 10, 25, 28, 30, 34, 60), 0) | 10 |
범위와 셀 참조를 사용하는 percentile(A2:A9, A13)도 가능하며, percentile(array_flatten(A2:A9), A13)처럼 배열로 펼칠 수도 있습니다.
순위
rank(number: number, collection: array, sortOrder: number): number
collection 안에서 number의 순위를 반환합니다. 숫자가 아닌 항목은 무시합니다.
- sortOrder가 0이면 내림차순입니다.
- 0이 아니면 오름차순입니다.
A1:A4가 각각 94, 79, 83, 96인 예시에서 rank(94, A1:A4, 0)은 2이고 rank(94, A1:A4, 1)은 3입니다. 다른 행으로 수식을 복사할 때 비교 범위를 유지하려면 A$1:A$4처럼 행을 고정합니다.
표준편차와 분산
| 서명 | 모집단과 표본의 구분 |
|---|---|
stddev([value: number, ...]): number | 표본 표준편차 |
stddev_p([value: any, ...]): number | 입력을 전체 모집단으로 보는 표준편차 |
variance([value: number, ...]): number | 불편 표본 분산 |
variance_p([value: any, ...]): number | 입력을 전체 모집단으로 보는 편향 분산 |
A1:A3가 23, 45, 32이면 stddev(A1:A3)은 약 11.06이고 variance(23, 45, 32)는 약 122.33입니다. 입력이 모집단의 일부 표본이면 _p 함수 대신 stddev와 variance를 사용합니다.
조건에 맞는 값 합계
sumif(criteria_range: range, condition: any, sum_range: range): number
sumifs(sum_range: range, [criteria_range: range, condition: any, ...]): number
sumif는 criteria_range가 condition과 같은 위치의 sum_range 값을 더합니다. 두 범위의 크기는 같아야 합니다.
=sumif(A1:A50, 'John', C1:C50)
A열이 이름이고 C열이 나이인 예시에서 John의 나이를 합합니다.
sumifs는 이후에 나열한 모든 조건을 만족하는 위치만 합합니다. 모든 조건 범위는 합계 범위와 크기가 같아야 합니다.
=sumifs(A1:B5, C1:D5, 10, H4:I8, 'John')
이 예시는 C1:D5의 대응 셀이 10이고 H4:I8의 대응 셀이 John인 위치에 있는 A1:B5 값을 더합니다.
중복 소계를 제외한 집계
subtotal(function_code: number, [range: range, ...]): number
function_code가 지정한 집계를 뒤의 범위들에 적용합니다. 범위 안에 다른 subtotal이나 중첩 소계가 있으면 이중 계산을 피하기 위해 제외합니다.
| function_code | 집계 |
|---|---|
| 1 또는 101 | AVG |
| 2 또는 102 | COUNT_NUMERIC |
| 3 또는 103 | COUNT |
| 4 또는 104 | MAX |
| 5 또는 105 | MIN |
| 6 또는 106 | PRODUCT |
| 7 또는 107 | STDDEV |
| 8 또는 108 | STDDEV_P |
| 9 또는 109 | SUM |
| 10 또는 110 | VARIANCE |
| 11 또는 111 | VARIANCE_P |