표시 형식(Show As)
비중·순위·누계·차이 등 값 필드의 Show As 옵션과 기준 필드·축 설정 방법입니다.
Show As는 집계된 숫자 자체를 바꾸지 않고, 셀에 보이는 값을 비중·차이·누계·순위 등으로 변환해 표시합니다.
엑셀 피벗의 「값 표시 형식」과 같은 역할입니다.
값 필드 배치는 필드 구성을, 어떤 집계를 쓸지는 집계 함수를 참고하세요.
numberFormat / dateFormat / textFormat은 Show As와 다릅니다. 이는 Show As로 변환된 최종 값을 문자열 형태로 출력할 때 사용하는 서식입니다.
어디에 지정하나요
값 필드 옵션인 PivotValueFieldOptions에서 설정합니다.
| 속성 | 역할 |
|---|---|
showAs | 표시 변환 방식. 생략 시 'normal'(원본 집계값) |
baseField | 기준 dimension 필드명 (base* · parentPercent 계열) |
baseItem | 기준 항목 값 또는 @first / @last / @previous / @next |
baseAxis | 비교·누적·순위 방향. 'row' | 'column'. 기본 'row' |
numberFormat | 변환 후 숫자 서식. 비중류는 '0.0%' 등을 권장 |
fields: {
rows: ['상품'],
columns: ['년도', '분기'],
values: [
{ name: '주문금액', aggregate: 'sum' },
{
name: '분기 비중',
measure: '주문금액',
aggregate: 'sum',
showAs: 'colPercent',
numberFormat: '0.0%',
},
{
name: '분기 누계',
measure: '주문금액',
aggregate: 'sum',
showAs: 'running',
baseAxis: 'column',
numberFormat: '#,##0',
},
],
}동일한 측정값에 여러 Show As 옵션을 적용하려면 name과 measure를 분리하여 지정합니다. (필드 구성)
Show As 목록
ValueShowAs에 정의된 값입니다. UI 라벨은 값 필드 「표시 형식」 대화상자에 표시되는 이름입니다.
비중
| 값 | UI 라벨 | 설명 |
|---|---|---|
normal | 없음 | 집계 값을 그대로 표시 |
rowPercent | 행 합계 대비 % | 같은 행에서 행 전체 합계 대비 비중 |
colPercent | 열 합계 대비 % | 같은 열에서 열 전체 합계 대비 비중 |
totalPercent | 전체 합계 대비 % | Grand Total 대비 비중 |
parentRowPercent | 상위 행 소계 대비 % | 부모 행 그룹 소계 대비. 행 차원이 2개 이상일 때 의미 있음 |
parentColPercent | 상위 열 소계 대비 % | 부모 열 그룹 소계 대비. 열 차원이 2개 이상일 때 의미 있음 |
parentPercent | 상위 합계 대비 % | baseField로 지정한 차원 레벨 합계 대비 |
index | 인덱스 | (셀 × 총계) / (행합계 × 열합계). 1보다 크면 평균보다 큼 |
기준 항목 비교
baseField · baseItem이 필요합니다.
| 값 | UI 라벨 | 계산 |
|---|---|---|
baseValue | 기준 항목 값 | 기준 셀 값을 그대로 표시 |
basePercent | 기준 항목 값 대비 % | 현재값 / 기준값 |
baseDiff | 기준 항목 값과의 차이 | 현재값 − 기준값 |
basePercentDiff | 기준 항목 값 대비 변화율 | (현재값 − 기준값) / 기준값 |
{
name: '전년 대비',
measure: '주문금액',
showAs: 'basePercentDiff',
baseField: '년도',
baseItem: '@previous',
numberFormat: '+0.0%;-0.0%',
}baseItem에는 dimension 라벨 값(문자열·숫자) 또는 상대 위치 지정자를 할당합니다.
baseItem | 의미 |
|---|---|
| 라벨 값 | 해당 항목과 일치하는 셀을 기준 |
@first | 축의 첫 항목 |
@last | 축의 마지막 항목 |
@previous | 직전 항목 (없으면 빈 셀) |
@next | 직후 항목 (없으면 빈 셀) |
이전 값 · 누계 · 순위
같은 부모 그룹·같은 측정값의 형제 셀을 baseAxis 방향으로 비교합니다.
| 값 | UI 라벨 | 설명 |
|---|---|---|
diff | 이전 값과의 차이 | 직전 형제와의 차이 |
percentDiff | 이전 값 대비 변화율 | (현재 − 이전) / 이전 |
running | 누적 합계 | 형제 leaf를 따라 누적합. 소계·총계는 원본값 |
runningLevel | 레벨별 누적 합계 | 소계·총계도 같은 레벨 형제끼리 누적 |
percentRunning | 누적 합계 비율 | 누적합 / 형제 전체 합 |
rank | 순위 (내림차순) | dense rank. 큰 값이 1위. 소계·총계는 원본값 |
rankAsc | 순위 (오름차순) | 작은 값이 1위 |
rankLevel | 레벨별 순위 (내림차순) | 소계·총계도 같은 레벨끼리 순위 |
rankLevelAsc | 레벨별 순위 (오름차순) | 레벨별 + 오름차순 |
baseAxis
| 값 | 동작 |
|---|---|
'row' (기본) | 같은 열에서 행 방향(세로) 으로 이웃 셀을 비교 |
'column' | 같은 행에서 열 방향(가로) 으로 이웃 셀을 비교 |
열 축에 분기·월이 설정되어 있어 시간순으로 누계나 순위를 확인하려면 baseAxis: 'column' 옵션을 사용합니다.
{
name: '분기 순위',
measure: '주문금액',
showAs: 'rank',
baseAxis: 'column',
numberFormat: '0',
}숫자 서식
비중·변화율 Show As는 보통 0~1 사이 비율을 반환합니다.
값 필드에 numberFormat을 두면 그 서식을 쓰고, 없으면 테이블의 percentFormat(기본 ',0.00%') 또는 numberFormat이 적용됩니다.
| Show As 성격 | 권장 numberFormat 예 |
|---|---|
| 비중·누계 비율 | '0.0%' · '0.00%' |
| 증감률 | '+0.0%;-0.0%' |
| 누계·차이·원본 | '#,##0' · '#,##0.0' |
| 순위 | '0' |
화면에서 바꾸기
값 필드 헤더(또는 인스펙터의 값 필드) 메뉴에서 표시 형식 대화상자를 엽니다.
- 표시 형식 — Show As 종류
- 기준 축 —
baseAxis(행/열) - 기준 필드 · 기준 항목 —
baseField·baseItem(해당 옵션 선택 시에만 활성화)
API로 바꾸기
const book = control.book;
const table = control.table;
const field = table.fields.getValueField('주문금액');
field?.updateOptions({
showAs: 'colPercent',
numberFormat: '0.0%',
});
// Undo가 필요하면
book.updateItem(field, {
showAs: 'running',
baseAxis: 'column',
numberFormat: '#,##0',
});
book.updateProp(field, 'showAs', 'rank');옵션 변경 규칙은 개발 가이드를 참고하세요.
콜백으로 직접 변환하기
빌트인으로 부족한 경우 showAs에 함수를 넣을 수 있습니다.
콜백은 raw 집계값을 가진 cell을 받아 표시값을 반환합니다.
{
name: '행 비중(직접)',
measure: '주문금액',
showAs: (cell) => {
if (cell.value == null) return null;
const total = cell.field.rowTotal(cell);
return total ? cell.value / total : null;
},
numberFormat: '0.0%',
}헬퍼는 cell.field(PivotValueField)에서 호출합니다.
rowTotal · colTotal · grandTotal · parentRowTotal · parentColTotal · cellValue · siblingsAlong · indexOfSelf · baseValue · parentTotal 등입니다.
표시 텍스트·색만 바꾸고 값 변환이 필요 없으면 formatter를 쓰세요. (PivotValueFieldOptions.formatter)