가이드
표시 형식(Show As)

표시 형식(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)

See Also