> ## Documentation Index
> Fetch the complete documentation index at: https://learn.cleeksy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Công thức (Formula)

> Tính toán trường dữ liệu bằng Formula.

Formula (công thức) là computed field dùng để tính ra một giá trị dựa trên các field khác. Formula giúp chuẩn hoá logic tính toán và giảm thao tác thủ công.

## Dùng khi nào?

* Cần tính **thành tiền**, **số ngày trễ**, **điểm ưu tiên**, hoặc trạng thái phụ (derived status)
* Cần chuẩn hoá cách hiển thị từ nhiều field (ví dụ: tạo “Display title”)
* Cần tạo điều kiện hỗ trợ lọc/nhóm (ví dụ: `Overdue = true/false`)

## Thực hành tốt

* Giữ công thức **đơn giản** và dễ kiểm chứng
* Ưu tiên dùng:
* [Tra cứu (Lookup)](/build-apps/data-modeling/lookup) để kéo dữ liệu liên kết
* [Tổng hợp (Rollup)](/build-apps/data-modeling/rollup) để tổng hợp nhiều record
  rồi mới dùng Formula để “kết hợp” kết quả nếu cần

## Ví dụ phổ biến

### 1) Thành tiền

`Amount = Quantity × Unit Price`

### 2) Overdue (quá hạn)

`Overdue = (Today > Need-by date) AND (Status chưa Closed)`

### 3) Tiêu đề hiển thị

`Display = Code + " — " + Title`

<Note>
  Chi tiết cú pháp và các toán tử nên được tiêu chuẩn hoá theo Reference để tránh mỗi app một kiểu.
</Note>

Liên quan: [Bộ lọc & toán tử (Filters & operators)](/reference/filters-operators)

## Lưu ý

* Formula là field **chỉ đọc**
* Nếu công thức khó hiểu, nên tách thành 2–3 formula nhỏ để dễ kiểm thử
* Tránh dùng formula để “giấu” logic nghiệp vụ quan trọng — logic chuyển bước nên đặt ở Workflow/Controls

Liên quan: [Controls trong hệ thống (workflow vs validation vs roles)](/foundations/controls-in-system)

## Bước tiếp theo

* Tra cứu dữ liệu liên kết: [Tra cứu (Lookup)](/build-apps/data-modeling/lookup)
* Tổng hợp từ bảng con: [Tổng hợp (Rollup)](/build-apps/data-modeling/rollup)
