[]
캐스케이드 스파크라인(Cascade Sparkline)은 연간 매출, 총 수익, 순세금 등과 같이 시간에 따른 값의 변화를 분석하는 데 주로 사용됩니다. 재무, 영업, 법률, 건설 분야 등에서 널리 활용됩니다.
다음은 CASCADESPARKLINE
수식에서 사용되는 다양한 매개변수입니다:
옵션 | 설명 |
---|---|
pointsRange | 값이 포함된 셀 범위를 나타내는 참조입니다. 예: |
pointIndex | 해당 포인트의 인덱스를 나타내는 숫자 또는 참조입니다. |
labelsRange | 레이블이 포함된 셀 범위를 나타내는 참조입니다. 예: |
minimum | 표시 영역의 최소값을 나타내는 숫자 또는 참조입니다. 예: 직접 설정한 최소값이 기본 최소값보다 작지 않으면 기본값이 사용됩니다. |
maximum | 표시 영역의 최대값을 나타내는 숫자 또는 참조입니다. 예: 직접 설정한 최대값이 기본 최대값보다 크지 않으면 기본값이 사용됩니다. |
colorPositive | 첫 번째 또는 마지막 포인트가 양수일 때 해당 스파크라인 박스의 색상을 나타내는 문자열입니다. (선택 사항, 기본값: 중간에 있는 양수 박스는 이 색상의 더 밝은 색으로 표시됩니다. |
colorNegative | 첫 번째 또는 마지막 포인트가 음수일 때 해당 스파크라인 박스의 색상을 나타내는 문자열입니다. (선택 사항, 기본값: 중간에 있는 음수 박스는 이 색상의 더 밝은 색으로 표시됩니다. |
vertical | 박스 방향이 세로인지 가로인지를 나타내는 불리언 값입니다. (선택 사항, 기본값: 스파크라인 전체를 구성하는 모든 수식에 대해 동일한 방향 설정이 필요합니다. |
itemTypeRange | 데이터 범위의 항목 유형을 나타내는 배열 또는 참조입니다. 값은
|
colorTotal |
|
다음은 CASCADESPARKLINE
수식을 활용한 대표적인 두 가지 사용 사례 중 첫 번째입니다.
Cascade Sparkline은 “영업 사원의 지출 및 급여”를 스파크라인으로 시각화하는 데 사용할 수 있으며, 아래 수식은 해당 시나리오에 사용된 예시입니다:
= CASCADESPARKLINE(pointsRange, pointIndex, labelsRange, minimum, maximum, colorPositive, colorNegative, vertical)
다음 코드 샘플은 위 수식을 사용하여 캐스케이드 스파크라인을 생성합니다.
Ask ChatGPT
activeSheet.addSpan(0, 0, 1, 3);
activeSheet.getCell(0, 0, GC.Spread.Sheets.SheetArea.viewport).value("A salesman's expenses and pay")
.font("20px Arial")
.hAlign(GC.Spread.Sheets.HorizontalAlign.center)
.vAlign(GC.Spread.Sheets.VerticalAlign.center)
.backColor("purple")
.foreColor("white");
activeSheet.getRange(1, 2, 7, 1, GC.Spread.Sheets.SheetArea.viewport).setBorder(new GC.Spread.Sheets.LineBorder("transparent", GC.Spread.Sheets.LineStyle.thin),
{ inside: true });
activeSheet.setValue(1, 0, "Salary");
activeSheet.setValue(2, 0, "Performance pay");
activeSheet.setValue(3, 0, "Pay for customers");
activeSheet.setValue(4, 0, "Food spending");
activeSheet.setValue(5, 0, "Hotel expenses");
activeSheet.setValue(6, 0, "Financial management");
activeSheet.setValue(7, 0, "Deposit");
activeSheet.setValue(1, 1, 3500);
activeSheet.setValue(2, 1, 2500);
activeSheet.setValue(3, 1, -1000);
activeSheet.setValue(4, 1, -1000);
activeSheet.setValue(5, 1, -900);
activeSheet.setValue(6, 1, 300);
activeSheet.setFormula(7, 1, '=sum(B2:B7)');
activeSheet.setColumnWidth(0,150);
activeSheet.setColumnWidth(1,100);
activeSheet.setColumnWidth(2, 340);
activeSheet.setRowHeight(0, 30);
activeSheet.setRowHeight(1, 30);
activeSheet.setRowHeight(2, 30);
activeSheet.setRowHeight(3, 30);
activeSheet.setRowHeight(4, 30);
activeSheet.setRowHeight(5, 30);
activeSheet.setRowHeight(6, 30);
activeSheet.setRowHeight(7, 30);
activeSheet.setFormula(1, 2, '=CASCADESPARKLINE(B2:B8,1,A2:A8,,,"#8CBF64","#D6604D",false)');
activeSheet.setFormula(2, 2, '=CASCADESPARKLINE(B2:B8,2,A2:A8,,,"#8CBF64","#D6604D",false)');
activeSheet.setFormula(3, 2, '=CASCADESPARKLINE(B2:B8,3,A2:A8,,,"#8CBF64","#D6604D",false)');
activeSheet.setFormula(4, 2, '=CASCADESPARKLINE(B2:B8,4,A2:A8,,,"#8CBF64","#D6604D",false)');
activeSheet.setFormula(5, 2, '=CASCADESPARKLINE(B2:B8,5,A2:A8,,,"#8CBF64","#D6604D",false)');
activeSheet.setFormula(6, 2, '=CASCADESPARKLINE(B2:B8,6,A2:A8,,,"#8CBF64","#D6604D",false)');
activeSheet.setFormula(7, 2, '=CASCADESPARKLINE(B2:B8,7,A2:A8,,,"#8CBF64","#D6604D",false)');
사용 사례 2
계단식 배열 스파크라인은 초기 값이 어떻게 증가하고 감소하여 최종 값에 도달하는지를 구체적으로 나타내는 데에도 사용할 수 있습니다. 이를 위해 Cascade 수식에서 itemTypeRange
매개변수를 사용할 수 있습니다. itemTypeRange
매개변수는 조직에서 발생하는 순 유입과 순 유출을 보여주기 위해 회계 및 재무 애플리케이션에서 유용하게 사용됩니다.
CASCADESPARKLINE(pointsRange, pointIndex, labelsRange, minimum, maximum, colorPositive, colorNegative, vertical, itemTypeRange, colorTotal)
다음 예시는 itemTypeRange
매개변수를 워크시트의 E2:E15 셀 범위에 적용한 경우입니다. 이 예시에서는 CASCADESPARKLINE 수식을 사용하여 회사의 순 매출에 대한 통합 손익 시나리오를 보여줍니다. 'Operating Profit', 'Profit before tax', 'Net Profit'에 해당하는 스파크라인은 합계 열(total columns)을 나타내므로 각 항목의 itemType
값은 "="
입니다. 양의 변화와 음의 변화를 나타내는 스파크라인은 각각 "+"
와 "-"
itemType
을 사용합니다.
다음 코드는 이 사용 사례에서 수식을 사용하여 Cascade 스파크라인을 생성하는 예제입니다.
// 셀에 텍스트 설정
sheet.setText(0, 1, '000$');
sheet.setText(0, 2, 'LABELS');
sheet.setText(0, 3, 'ITEMS');
sheet.setText(0, 4, 'ITEM TYPE');
// displayLabels 배열 생성
var displayLabels = [
'CONSOLIDATED PROFIT & LOSS ACCOUNT', 'Net Sales',
' Cost of Sales', ' Research and development', ' Selling, general and administrative', ' Customer Finance impairment',
' Impairment of goodwill', ' Amortization of goodwill', 'Operating Profit', ' Share of results of associates', ' Financial income and expenses',
'Profit before tax', ' Tax', ' Minority interests', 'Net Profit'
];
// items 배열 생성
var items = [
29616, 17278, 7052, 6239, 292, 103, 206, 1554, 3300, 1506, 3252, 1484, 92, 1676
];
// labels 배열 생성
var labels = [
29616, 12338, 5286, -953, -1245, -1348, -1554, 1554, 4854, 6360, 3252, 1768, 1676, 1676
];
// itemTypes 배열 생성
var itemTypes = [
'+', '-', '-', '-', '-', '-', '-', '=', '+', '+', '=', '-', '-', '='
];
// 배열 설정
sheet.setArray(0, 0, displayLabels);
sheet.setArray(1, 2, items);
sheet.setArray(1, 3, labels);
sheet.setArray(1, 4, itemTypes);
// CASCADESPARKLINE 수식 설정
sheet.setFormula(1, 1, '=CASCADESPARKLINE(D2:D15, SEQUENCE(COUNTA(D2:D15),1,1,1),C2:C15,,,"#66C2A5","#FF7722",false,E2:E15,"#A9A9A9")'0);