# 입력 및 결과 규칙

## Content

이 항목은 [SJS.TABLE](/spreadjs/docs/features/what-if-analysis/data-table/sjs-table-function) 함수를 보완하여 출력 배열의 크기가 결정되는 방식과 입력값이 각 시뮬레이션 위치에 매핑되는 방식을 설명합니다.
특히 다음 항목에 중점을 둡니다.

* 확장된 결과 크기가 계산되는 방식
* 수행되는 시뮬레이션 수
* 각 시뮬레이션에 대해 선택되는 입력값
* 입력 차원이 일치하지 않을 때 처리 방식

이 규칙은 표준적이지 않은 result\_reference 형태를 사용하거나 크기가 다른 여러 입력을 조합할 때 적용됩니다.

## 차원 개요

다음 표는 `result_reference`의 형태가 결과 크기 및 시뮬레이션 동작에 어떤 영향을 미치는지 요약합니다.

| result\_reference 형태 | 출력 크기 | 시뮬레이션 수 | 입력 사용 방식 |
| ------------------- | ----- | ------- | -------- |
| 다중 셀 범위 | `result_reference`와 동일 | 1 | 첫 번째 값만 사용 |
| 단일 열 | 행 수 유지, 열 수 = 입력 중 최대 열 수 | 열별 | 각 입력의 첫 번째 행 사용 |
| 단일 행 | 열 수 유지, 행 수 = 입력 중 최대 행 수 | 행별 | 각 입력의 첫 번째 열 사용 |
| 단일 셀 | 모든 입력 중 최대 행 수 × 최대 열 수 | 출력 셀별 | 전체 위치 매핑 |

## 형태별 예제

### 기본 모델 ([전체 예제](/spreadjs/docs/features/what-if-analysis/data-table/sjs-table-function#전체-예제-—-이변수-데이터-표)에서)

예측 테이블은 다음을 사용합니다.

```auto
=SJS.TABLE(B7, C7:J7, B2, B8:B41, B1)
```

구성:

* `B7` → 순이익(Net Income) (단일 셀 result\_reference)
* `C7:J7` → 할인 값 (1 × 8)
* `B8:B41` → 가격 값 (34 × 1)

이 모델은 아래의 차원 규칙을 설명하는 데 사용됩니다.
모든 예제는 다음 수식을 사용합니다.

```auto
결과 수식: =B1*10 + C1
```

### 1\. 단일 셀 \(전체 예제 사례\)

수식:

```auto
=SJS.TABLE(B7, C7:J7, B2, B8:B41, B1)
```

형태:

* `B7` → 1 × 1
* `C7:J7` → 1 × 8
* `B8:B41` → 34 × 1

결과 크기:

```auto
34행 × 8열
```

매핑:

* 각 행은 하나의 가격 값에 대응합니다.
* 각 열은 하나의 할인 값에 대응합니다.
* 각 셀은 다음 값을 사용하여 순이익을 다시 계산합니다.
    * 가격 = 현재 행 값
    * 할인 = 현재 열 값

이는 전체 위치 확장을 보여줍니다.
![image-20260416.9f4515.png](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/36b63360-fb01-457c-a448-c3ce32aaf454/image-20260416.9f4515-20260529.6bf3c0.png?width=600)

### 2\. 단일 열 result\_reference \(기본 모델의 변형\)

순이익이 세로 범위로 참조된다고 가정합니다.

```auto
=SJS.TABLE(B8:B41, C7:J7, B2)
```

동작:

* 행 수(34)는 유지됩니다.
* 열은 8개의 할인 값에 맞게 확장됩니다.
* 할인 값마다 하나의 시뮬레이션이 수행됩니다.

각 열은 하나의 할인율에 대한 재계산 결과를 나타냅니다.
![image-20260416.fdf9bd.png](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/36b63360-fb01-457c-a448-c3ce32aaf454/image-20260416.fdf9bd-20260529.b1c852.png?width=600)

### 3\. 단일 행 result\_reference \(변형\)

가로 요약 행을 사용한다고 가정합니다.

```auto
=SJS.TABLE(C7:J7, B8:B41, B1)
```

동작:

* 열 수(8)는 유지됩니다.
* 행은 34개의 가격 값에 맞게 확장됩니다.
* 가격 값마다 하나의 시뮬레이션이 수행됩니다.

각 행은 하나의 가격에 대한 재계산 결과를 나타냅니다.
![image-20260416.b2be6c.png](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/36b63360-fb01-457c-a448-c3ce32aaf454/image-20260416.b2be6c-20260529.3e763c.png?width=600)

### 4\. 다중 셀 result\_reference

2 × 2 결과 블록을 사용하는 경우:

```auto
=SJS.TABLE(B7:C8, C7:J7, B2)
```

동작:

* 출력 크기는 2 × 2로 유지됩니다.
* 첫 번째 할인 값만 사용됩니다.
* 추가 입력값은 무시됩니다.
* 하나의 시뮬레이션만 수행됩니다.

이 경우에는 차원 확장이 발생하지 않습니다.
![image-20260416.48b914.png](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/36b63360-fb01-457c-a448-c3ce32aaf454/image-20260416.48b914-20260529.33b37f.png?width=600)

## 매칭 규칙

* 단일 값 입력은 모든 시뮬레이션에 적용됩니다.
* 단일 행 입력은 열에 따라 달라집니다.
* 단일 열 입력은 행에 따라 달라집니다.
* 다중 행 및 다중 열 입력은 행과 열 모두에 따라 달라집니다.
* 범위를 벗어난 위치는 빈 값으로 처리되며, 필요한 차원을 초과하는 추가 입력값은 무시됩니다.