# 가상 분석

## Content

가상 분석은 하나 이상의 입력값이 변경될 때 수식 결과가 어떻게 달라지는지 평가하는 모델링 기법입니다.
셀 값을 수동으로 수정하고 반복적으로 다시 계산하는 대신, 가상 분석을 사용하면 다양한 시나리오를 체계적으로 탐색하고 결과가 서로 다른 가정에 어떻게 반응하는지 확인할 수 있습니다.
SpreadJS는 가상 분석을 수행하기 위해 다음과 같은 두 가지 상호 보완적인 방식을 제공합니다.

* `SJS.TABLE` 워크시트 함수를 사용하는 **데이터 표 분석(Data Table Analysis)**
* `GC.Spread.Sheets.CalcEngine.goalSeek` 메서드를 사용하는 **목표값 찾기 분석(Goal Seek Analysis)**

두 기능 모두 시나리오 기반 평가를 지원하지만, 목적과 동작 방식은 서로 다릅니다.

## 데이터 표 분석 (SJS.TABLE)

`SJS.TABLE`은 여러 입력 조합에 대해 결과 셀 또는 범위를 평가하고, 수집된 결과를 동적 배열로 반환합니다.
표준 워크시트 수식으로 구현되어 있으므로 다음과 같은 특징이 있습니다.

* 일반 워크시트 다시 계산에 참여
* 편집, 복사 및 다른 함수 내부 중첩 가능
* 인접 셀로 결과를 자동 확장(Spill)

또한 `SJS.TABLE`은 다음을 지원합니다.

* 동적 배열 및 인라인 배열
* 하나의 수식에서 여러 입력 변수 사용
* 시트 간 참조 및 이름 정의 범위

데이터 표 분석은 미리 정의된 입력값 집합에 대한 결과를 비교하는 데 가장 적합합니다.

## 목표값 찾기 분석

`goalSeek`는 수식이 원하는 목표 결과에 도달할 때까지 지정된 셀의 값을 조정하는 명령형 계산 메서드입니다.
`SJS.TABLE`과 달리 Goal Seek은 다음과 같습니다.

* 변경 셀 값을 직접 수정
* 내부 수치 해석 알고리즘 사용
* `boolean` 또는 `Promise<boolean>` 반환
* 워크시트 수식이 아닌 CalcEngine API를 통해 동작

목표값 찾기는 특정 상환 금액을 만들기 위해 필요한 이자율을 구하는 것과 같은 역산 문제를 해결하는 데 가장 적합합니다.

## 비교

| 기능 | 데이터 표 (`SJS.TABLE`) | 목표값 찾기 (`goalSeek`) |
| --- | ----------------- | ----------------- |
| 유형 | 워크시트 수식 | CalcEngine API 메서드 |
| 실행 모델 | 선언형 | 명령형 |
| 주요 목적 | 여러 입력 조합 평가 | 목표 결과를 위한 입력값 찾기 |
| 반환값 | 동적 배열 | `boolean` 또는 `Promise<boolean>` |
| 워크시트 셀 수정 | 아니요 | 예 |

## 관련 항목

| **항목** | **설명** |
| --- | --- |
| [SJS.TABLE 함수](/spreadjs/docs/v19/features/what-if-analysis/data-table/sjs-table-function) | 구문, 매개변수 및 일반적인 사용 패턴 |
| [입력 및 결과 규칙](/spreadjs/docs/v19/features/what-if-analysis/data-table/sjs-table-function/input-and-result-rules) | 출력 크기 및 입력 매칭 동작에 대한 상세 규칙 |
| [성능 및 계산](/spreadjs/docs/v19/features/what-if-analysis/data-table/performance-and-calculation) | 다시 계산 제어 및 진행 상태 모니터링 |
| [Excel 호환성](/spreadjs/docs/v19/features/what-if-analysis/data-table/excel-compatibility) | 가져오기/내보내기 동작 및 호환성 제한 사항 |
| [목표값 찾기](/spreadjs/docs/v19/features/what-if-analysis/goal-seek) | API 참조 및 해결 동작 |

## SpreadJS 디자이너에서 가상 분석 사용

SpreadJS 디자이너에서는 **가상** **분석** 메뉴에서 가상 분석 도구를 사용할 수 있습니다.
사용 가능한 옵션은 다음과 같습니다.

* Goal Seek
* Data Table

![image-20260421.860739.png](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/36b63360-fb01-457c-a448-c3ce32aaf454/image-20260421.860739-20260529.62fd3b.png?width=800)
디자이너 인터페이스 및 구성 워크플로에 대한 자세한 내용은 [가상 분석](/spreadjs/docs/v19/spreadjs-designer-component/spdesignerwork/what-if-analysis)을 참조하세요.