# 수식

- Human documentation: [https://docs.univer.ai/ko-KR/guides/bases/features/core/formulas](https://docs.univer.ai/ko-KR/guides/bases/features/core/formulas)

- Agent Markdown: [https://docs.univer.ai/ko-KR/guides/bases/features/core/formulas.md](https://docs.univer.ai/ko-KR/guides/bases/features/core/formulas.md)

- Requested language: `ko-KR`

- Content language: `ko-KR`

- Documentation version: `1.0.4`

- Source: [bases/features/core/formulas.ko-KR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/bases/features/core/formulas.ko-KR.mdx)

---

베이스 수식 필드는 테이블 데이터에서 레코드 값을 계산합니다. `UniverBasesPlugin`은 수식 엔진 종속성을 자동으로 등록합니다.

## 수식 지원 등록

```ts
import { UniverBasesPlugin } from '@univerjs-pro/bases'
import { UniverBasesUIPlugin } from '@univerjs-pro/bases-ui'

univer.registerPlugin(UniverBasesPlugin)
univer.registerPlugin(UniverBasesUIPlugin)
```

## 수식 필드 만들기

```ts
const formulaTableName = table.getFormulaName()
const total = table.addField('Total', univerAPI.Enum.BaseFieldType.Formula, {
  field: {
    config: {
      formula: `=SUM(${formulaTableName}[[#This Row],[Price]],${formulaTableName}[[#This Row],[Tax]])`,
    },
  },
  externalReferences: [],
})
```

모든 수식 필드 쓰기에는 `externalReferences`가 필요합니다. 호스트 베이스의 필드만 참조하는 수식에는 `[]`를 사용하세요. 유닛 간 수식은 [`buildReference`](https://docs.univer.ai/ko-KR/reference/facade/formula.md#buildreference)를 사용하고 모든 안정적인 소스 바인딩을 이 배열에 전달해야 합니다.

## 참고 사항

* 수식 필드는 계산으로 얻는 값이므로 애플리케이션 코드에서 수식 셀에 직접 값을 쓰지 마세요.
* 수식 표현식은 `Table[[#This Row],[Price]]`와 같은 구조화된 필드 참조를 사용합니다.
* 대용량 스냅샷을 가져온 뒤에는 사용자에게 결과를 표시하기 전에 수식을 다시 계산하세요.
