Google Sheets Tips

Conditional Formatting Google Sheets: Hướng Dẫn Toàn Diện Từ Cơ Bản Đến Nâng Cao 2026

Tuân HoangTuân Hoang
27 tháng 2, 2026
Cập nhật: 25 tháng 3, 2026
16 phút đọc
Conditional Formatting Google Sheets: Hướng Dẫn Toàn Diện Từ Cơ Bản Đến Nâng Cao 2026

Bảng tính Google Sheets của bạn đang là một mảng ô trắng đơn điệu — trong khi cùng dữ liệu đó có thể trở thành dashboard trực quan tự động cập nhật màu sắc theo giá trị.

Hướng dẫn toàn diện Conditional Formatting (Định dạng có điều kiện) trong Google Sheets 2026: từ màu cơ bản đến công thức tùy chỉnh phức tạp, data bars, color scales, icon sets — kèm ứng dụng thực tế trong kinh doanh.

1. Conditional Formatting Là Gì? Tại Sao Cần Học?

Conditional Formatting (Định dạng có điều kiện) là tính năng cho phép Google Sheets tự động thay đổi màu nền, màu chữ, in đậm/nghiêng của ô dựa trên giá trị hoặc công thức bạn thiết lập. Đây là một trong những tính năng mạnh nhất và hay bị bỏ qua nhất trong Google Sheets.

Tại Sao Conditional Formatting Quan Trọng?

Phát Hiện Ngay Lập Tức

Mắt người phát hiện màu sắc nhanh hơn đọc số gấp 3–5 lần. Cảnh báo hàng tồn kho thấp hay deadline sắp hết không bị bỏ sót.

🔄

Tự Động Cập Nhật

Không cần tô màu thủ công. Khi dữ liệu thay đổi, định dạng tự động cập nhật theo — tiết kiệm hàng giờ mỗi tuần.

📊

Dashboard Không Cần Chart

Color scales và data bars biến bảng số liệu thành heatmap trực quan không cần tạo biểu đồ phức tạp.

2. Cách Mở và Thiết Lập Conditional Formatting

Để mở Conditional Formatting trong Google Sheets:

  1. Chọn vùng ô muốn áp dụng (ví dụ: B2:B100)
  2. Click menu Format (Định dạng)
  3. Chọn Conditional formatting (Định dạng có điều kiện)
  4. Panel "Conditional format rules" xuất hiện bên phải

Shortcut nhanh hơn:

Nhấn chuột phải vào vùng chọn → "View more cell actions" → "Conditional formatting"

Cấu Trúc Một Quy Tắc Conditional Formatting

Thành phần Mô tả Ví dụ
Apply to range Vùng ô áp dụng quy tắc B2:B100 hoặc A:A
Format rules Điều kiện kích hoạt Greater than, Contains, Custom formula...
Formatting style Kiểu định dạng khi điều kiện đúng Màu nền đỏ, chữ in đậm trắng

3. Quy Tắc Cơ Bản: Màu Sắc Theo Giá Trị

Google Sheets cung cấp sẵn nhiều loại điều kiện trong dropdown "Format rules". Đây là các loại thường dùng nhất:

Điều Kiện Cho Số

Điều kiện Ý nghĩa Ứng dụng
Greater than Lớn hơn giá trị nhập Highlight doanh thu vượt target
Less than Nhỏ hơn giá trị nhập Cảnh báo tồn kho dưới mức tối thiểu
Between Nằm trong khoảng Đánh dấu điểm thi trung bình
Equal to Bằng chính xác Highlight đơn hàng trạng thái "Hủy"
Is empty Ô trống Cảnh báo trường bắt buộc chưa điền
Is not empty Ô có giá trị Đánh dấu hàng đã có dữ liệu

Điều Kiện Cho Text

Điều kiện Ứng dụng phổ biến
Text contains Highlight email chứa "@gmail", đơn hàng có "Giao hàng"
Text starts with Tô màu mã đơn bắt đầu bằng "DH" hoặc "ORD"
Text ends with Lọc file có đuôi .pdf, .xlsx
Text is exactly Đánh dấu trạng thái "PAID", "CANCELLED", "PENDING"

Ví Dụ Thực Tế: Tô Màu Trạng Thái Đơn Hàng

Giả sử cột D chứa trạng thái đơn hàng (PAID, PENDING, CANCELLED, REFUNDED). Thiết lập 4 quy tắc:

  1. Apply to range: D2:D1000 | Condition: "Text is exactly" = "PAID" | Màu nền: xanh lá (#D4EDDA) | Chữ: #155724
  2. Apply to range: D2:D1000 | Condition: "Text is exactly" = "PENDING" | Màu nền: vàng (#FFF3CD) | Chữ: #856404
  3. Apply to range: D2:D1000 | Condition: "Text is exactly" = "CANCELLED" | Màu nền: đỏ nhạt (#F8D7DA) | Chữ: #721C24
  4. Apply to range: D2:D1000 | Condition: "Text is exactly" = "REFUNDED" | Màu nền: tím nhạt (#E2D9F3) | Chữ: #432874

Kết quả: bảng đơn hàng tự động có màu sắc phân biệt rõ ràng — nhìn vào là biết ngay trạng thái mà không cần đọc chữ.

4. Công Thức Tùy Chỉnh — Sức Mạnh Thực Sự

Đây là phần mà hầu hết người dùng bỏ qua — và cũng là phần mạnh nhất. Thay vì dùng điều kiện có sẵn, bạn có thể viết bất kỳ công thức Google Sheets nào trả về TRUE/FALSE để làm điều kiện.

Quy tắc quan trọng khi dùng Custom Formula:

  • Công thức phải bắt đầu bằng dấu =
  • Tham chiếu ô đầu tiên trong range (ví dụ range A2:A100 → công thức dùng A2)
  • Lock cột với $ nếu cần so sánh với cột cố định: $B2
  • Không lock hàng để công thức tự áp dụng cho từng hàng

Các Công Thức Tùy Chỉnh Hay Dùng Nhất

1. Tô Màu Hàng Xen Kẽ (Zebra Striping)

=ISEVEN(ROW())

Apply to range: A2:Z1000. Tô màu xám nhạt cho hàng chẵn, tạo hiệu ứng zebra giúp dễ đọc.

2. Highlight Hàng Có Trường Cụ Thể = Giá Trị

=$D2="CANCELLED"

Apply to range: A2:Z1000. Tô màu TOÀN BỘ HÀNG khi cột D = "CANCELLED". Rất mạnh — không chỉ tô ô đó mà tô cả hàng.

3. Highlight Deadline Sắp Hết (7 Ngày Tới)

=AND($C2>=TODAY(), $C2<=TODAY()+7)

Apply to range: A2:Z100 (cột C chứa ngày deadline). Tô vàng cho công việc sắp đến hạn trong 7 ngày.

4. Highlight Deadline Đã Quá Hạn

=AND($C2<TODAY(), $D2<>"DONE")

Tô đỏ cho hàng có deadline quá hạn VÀ chưa hoàn thành. Kết hợp 2 điều kiện với AND.

5. Highlight Doanh Thu Dưới Trung Bình

=$B2<AVERAGE($B$2:$B$100)

Tô cam cho ô doanh thu thấp hơn trung bình của cả cột. Note: dùng $B$2:$B$100 (lock cả hàng lẫn cột) để reference range không thay đổi.

6. Highlight Số Trùng Lặp

=COUNTIF($A$2:$A$100, $A2)>1

Tô vàng cho bất kỳ giá trị nào xuất hiện nhiều hơn 1 lần trong cột A.

7. Highlight Giá Trị Top 10%

=$B2>=PERCENTILE($B$2:$B$100, 0.9)

Tô xanh đậm cho 10% giá trị cao nhất — hữu ích để tìm top sản phẩm, top nhân viên bán hàng.

8. Highlight Ô Chứa Công Thức Lỗi

=ISERROR(A2)

Tô đỏ tất cả ô có lỗi (#DIV/0!, #N/A, #REF!...) — giúp phát hiện lỗi công thức nhanh chóng.

5. Color Scales và Data Bars

Ngoài Single color rules, Google Sheets còn có hai loại đặc biệt:

Color Scale (Thang Màu)

Color Scale tự động tô gradient từ màu A → màu B → màu C dựa trên giá trị tối thiểu, trung vị và tối đa. Rất phù hợp để tạo heatmap:

  • Heatmap doanh thu theo tháng/chi nhánh: Đỏ (thấp) → Vàng → Xanh (cao)
  • Nhiệt độ kho hàng theo giờ: Xanh dương → Vàng → Đỏ
  • KPI performance: Đỏ (dưới target) → Xanh lá (đạt/vượt target)

Cách thiết lập:

  1. Chọn range
  2. Format → Conditional formatting
  3. Chuyển tab sang "Color scale"
  4. Chọn preset (7 preset sẵn có) hoặc tùy chỉnh màu Min/Midpoint/Max
  5. Có thể đặt điểm midpoint là số cụ thể (ví dụ 50%) thay vì percentile

Mẹo dùng Color Scale hiệu quả:

  • Dùng 3 điểm (Min/Mid/Max) thay vì 2 để phân biệt rõ hơn
  • Đặt midpoint = 0 cho dữ liệu có cả âm lẫn dương (lợi nhuận): đỏ âm, trắng 0, xanh dương
  • Không dùng color scale cho cột text — chỉ hợp lý cho số

6. Highlight Trùng Lặp và Duy Nhất

Phát hiện dữ liệu trùng lặp là một trong những use case phổ biến nhất. Có 2 cách:

Cách 1: Dùng Custom Formula COUNTIF

=COUNTIF($A$2:$A$1000, $A2)>1    // Highlight trùng lặp
=COUNTIF($A$2:$A$1000, $A2)=1    // Highlight duy nhất

Cách 2: Kết Hợp Nhiều Cột

Highlight hàng trùng khi CẢ cột A lẫn cột B đều trùng nhau:

=COUNTIFS($A$2:$A$1000,$A2,$B$2:$B$1000,$B2)>1

7. Định Dạng Theo Ngày Tháng

Ngày tháng trong Google Sheets thực chất là số nguyên — ngày 1/1/1900 = 1, mỗi ngày tiếp theo +1. Điều này cho phép các công thức thú vị:

Bộ Quy Tắc Hoàn Chỉnh Quản Lý Deadline

Mức độ Công thức (cột C = ngày deadline) Màu
Quá hạn =$C2<TODAY() Đỏ nền
Hôm nay =$C2=TODAY() Cam nền
1–3 ngày tới =AND($C2>TODAY(),$C2<=TODAY()+3) Vàng nền
4–7 ngày tới =AND($C2>TODAY()+3,$C2<=TODAY()+7) Xanh nhạt
An toàn =$C2>TODAY()+7 Xanh nhạt

Highlight Cuối Tuần

=OR(WEEKDAY($A2,2)=6, WEEKDAY($A2,2)=7)

Tô màu xám cho hàng có ngày là thứ Bảy hoặc Chủ Nhật. WEEKDAY(date, 2) trả về 1=Thứ 2, 7=Chủ nhật.

8. Tô Màu Toàn Hàng Theo Điều Kiện

Đây là kỹ thuật rất quan trọng — thay vì chỉ tô màu một ô, bạn muốn tô màu toàn bộ hàng khi điều kiện ở một cột nào đó đúng.

Nguyên tắc:

  • Apply to range = toàn bộ bảng (ví dụ: A2:Z1000)
  • Custom formula = tham chiếu đến cột cụ thể với $ lock cột (ví dụ: =$D2="URGENT")
// Tô màu toàn hàng khi:
// 1. Trạng thái = "URGENT"
Apply range: A2:Z1000
Formula: =$D2="URGENT"
Style: Nền đỏ nhạt + chữ đỏ đậm

// 2. Số lượng tồn kho < 10
Apply range: A2:F1000
Formula: =$C2<10
Style: Nền vàng

// 3. Đơn hàng từ khách VIP (cột G = "VIP")
Apply range: A2:H500
Formula: =$G2="VIP"
Style: Nền xanh nhạt + chữ in đậm

9. Quản Lý Nhiều Quy Tắc — Ưu Tiên và Xung Đột

Khi một ô thỏa mãn nhiều quy tắc cùng lúc, quy tắc ở trên cùng danh sách sẽ được ưu tiên. Bạn có thể kéo thả để sắp xếp lại thứ tự.

Lỗi phổ biến: Quy tắc quá khái quát che mất quy tắc cụ thể hơn

Ví dụ: Nếu quy tắc "Less than 100" ở trên quy tắc "Less than 10", thì ô có giá trị 5 sẽ chỉ áp dụng màu của quy tắc đầu tiên. Giải pháp: đặt quy tắc cụ thể hơn (Less than 10) LÊN TRÊN.

Checkbox "Stop if true"

Mỗi quy tắc có option "Stop if true" — khi tick vào, nếu quy tắc này đúng thì không xét các quy tắc bên dưới nữa. Hữu ích để tránh nhiều màu chồng chéo.

10. Ứng Dụng Trong Kinh Doanh: 8 Use Cases Thực Tế

Use Case 1: Bảng Quản Lý Tồn Kho

Thiết lập 3 mức cảnh báo tồn kho:

  • Cột C (Tồn kho) < 5: Nền đỏ — Hết hàng sắp xảy ra
  • Cột C (Tồn kho) < 20: Nền vàng — Cần đặt hàng
  • Cột C (Tồn kho) > 200: Nền xanh nhạt — Tồn kho cao, xem xét giảm nhập

Use Case 2: Dashboard KPI Nhân Viên Bán Hàng

  • Cột E (% đạt KPI) < 80%: Đỏ
  • Cột E (% đạt KPI) 80%–100%: Vàng
  • Cột E (% đạt KPI) > 100%: Xanh lá
  • Toàn hàng khi nhân viên nghỉ việc: Xám nhạt (cột F = "Đã nghỉ")

Use Case 3: Theo Dõi Công Việc / Task Manager

// Gạch ngang text cho task đã xong
=$E2="DONE"   →   Style: Strikethrough + chữ xám
=$C2<TODAY() AND $E2<>"DONE"   →   Toàn hàng đỏ (quá hạn)

Use Case 4: Phân Tích ABC Sản Phẩm

  • Nhóm A (top 20% doanh thu): Nền xanh đậm — sản phẩm chủ lực
  • Nhóm B (tiếp 30%): Nền xanh nhạt
  • Nhóm C (50% còn lại): Không tô màu

Công thức nhóm A: =$D2>=PERCENTILE($D$2:$D$100, 0.8)

Use Case 5: Báo Cáo Doanh Thu Theo Tháng (Heatmap)

Dùng Color Scale cho ma trận doanh thu (hàng = chi nhánh, cột = tháng): đỏ = thấp nhất, xanh = cao nhất. Nhìn ngay ra chi nhánh nào tháng nào sụt giảm.

Use Case 6: Quản Lý Hợp Đồng / Giấy Phép Hết Hạn

// Cảnh báo hợp đồng hết hạn trong 30 ngày
=$D2<=TODAY()+30 AND $D2>=TODAY()
→ Nền vàng cam

// Hợp đồng đã hết hạn
=$D2<TODAY()
→ Nền đỏ + chữ đậm

Use Case 7: Kiểm Tra Tính Hợp Lệ Dữ Liệu

  • Email không hợp lệ: =NOT(ISNUMBER(MATCH("*@*.?*",$B2,0))) → nền đỏ
  • Số điện thoại < 10 ký tự: =LEN(TEXT($C2,"0"))<10 → nền vàng
  • Ngày sinh trong tương lai: =$D2>TODAY() → nền đỏ

Use Case 8: So Sánh Với Kỳ Trước

// Cột C = doanh thu tháng này, Cột B = tháng trước
// Tăng trưởng dương: xanh lá
=$C2>$B2

// Giảm > 20%: đỏ
=($C2-$B2)/$B2 < -0.2

11. Xây Dashboard Trực Quan Với Conditional Formatting

Kết hợp nhiều kỹ thuật trên, bạn có thể tạo dashboard trực quan không cần chart:

Template Dashboard Bán Hàng Tuần

Cấu trúc bảng: Hàng = ngày trong tuần, Cột = loại sản phẩm, Giá trị = doanh thu

  1. Color scale cho toàn bảng: đỏ → vàng → xanh theo doanh thu
  2. Tô đậm hàng có tổng doanh thu cao nhất: =SUM(B3:F3)=MAX(SUM(B3:F3),SUM(B4:F4),...)
  3. Viền đậm cho ô mục tiêu đạt: =$B3>=B$2 (B2 = target từng cột)
  4. Hàng tổng cuối bảng: dùng color scale riêng để highlight cột yếu nhất

12. Tối Ưu Hiệu Suất — Khi Nào Conditional Formatting Bị Chậm?

Conditional Formatting có thể làm chậm Google Sheets đáng kể nếu:

  • Quá nhiều quy tắc (>20 quy tắc trên cùng một sheet)
  • Range quá lớn (A:Z cho toàn cột thay vì A2:Z1000)
  • Custom formula phức tạp với hàm volatile (NOW(), RAND(), OFFSET() ...)
  • Nhiều COUNTIF/SUMIF trong formula tham chiếu range lớn

Tips tối ưu hiệu suất:

  • Giới hạn range cụ thể: A2:Z1000 thay vì A:Z
  • Dùng điều kiện sẵn có (Greater than, Contains...) thay vì custom formula khi có thể
  • Tránh INDIRECT() và các hàm volatile trong conditional formula
  • Xóa quy tắc không còn dùng định kỳ
  • Tách sheet: sheet data riêng, sheet dashboard riêng

13. Apps Script: Conditional Formatting Bằng Code

Khi cần tạo hoặc cập nhật conditional formatting tự động (ví dụ mỗi khi add data mới), Google Apps Script cung cấp API đầy đủ:

// Apps Script: Tự động tạo conditional formatting cho cột trạng thái
function applyOrderStatusFormatting() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Orders')
  const lastRow = sheet.getLastRow()
  const range = sheet.getRange('D2:D' + lastRow) // Cột trạng thái

  // Xóa tất cả conditional formatting cũ trên range này
  range.clearFormat()

  // Tạo builder
  const rules = []

  // PAID → xanh lá
  rules.push(SpreadsheetApp.newConditionalFormatRule()
    .whenTextEqualTo('PAID')
    .setBackground('#D4EDDA')
    .setFontColor('#155724')
    .setBold(true)
    .setRanges([range])
    .build())

  // PENDING → vàng
  rules.push(SpreadsheetApp.newConditionalFormatRule()
    .whenTextEqualTo('PENDING')
    .setBackground('#FFF3CD')
    .setFontColor('#856404')
    .setRanges([range])
    .build())

  // CANCELLED → đỏ
  rules.push(SpreadsheetApp.newConditionalFormatRule()
    .whenTextEqualTo('CANCELLED')
    .setBackground('#F8D7DA')
    .setFontColor('#721C24')
    .setRanges([range])
    .build())

  sheet.setConditionalFormatRules(rules)
  SpreadsheetApp.getUi().alert('Đã áp dụng conditional formatting!')
}

// Tự động chạy khi mở sheet
function onOpen() {
  applyOrderStatusFormatting()
}

Ứng dụng này đặc biệt hữu ích cho SheetStore — hệ thống tự động thiết lập conditional formatting mỗi khi sheet được tạo mới, đảm bảo nhất quán giao diện trên mọi template.

FAQ — Câu Hỏi Thường Gặp

Conditional Formatting có ảnh hưởng đến giá trị ô không?

Không. Conditional Formatting chỉ thay đổi cách hiển thị (màu sắc, font, viền) — không bao giờ thay đổi giá trị hay công thức trong ô. Bạn có thể xóa toàn bộ quy tắc mà dữ liệu vẫn nguyên vẹn.

Tại sao custom formula của tôi không hoạt động?

Nguyên nhân phổ biến nhất: (1) Quên dấu = ở đầu, (2) Tham chiếu sai ô đầu tiên của range, (3) Lock sai cột/hàng với $. Kiểm tra lại công thức bằng cách paste vào ô bình thường — nó phải trả về TRUE hoặc FALSE.

Có thể copy conditional formatting sang sheet khác không?

Có. Chọn ô có conditional formatting → Copy (Ctrl+C) → Chọn vùng đích trên sheet khác → Paste Special (Ctrl+Shift+V) → chọn "Paste format only". Lưu ý kiểm tra lại range trong quy tắc sau khi paste.

Có thể dùng Conditional Formatting với Vlookup không?

Được, nhưng cần cẩn thận về hiệu suất. Ví dụ: highlight hàng nếu mã sản phẩm không có trong danh sách: =ISNA(VLOOKUP($A2,Products!$A:$A,1,0)). Nếu danh sách Products lớn (>10K hàng), có thể bị chậm.

SheetStore có template sẵn conditional formatting không?

Có. Tất cả template SheetStore đều có sẵn conditional formatting cho: trạng thái đơn hàng, cảnh báo tồn kho, KPI nhân viên, và deadline. Người dùng chỉ cần nhập data, màu sắc tự động áp dụng. Xem demo tại đây.

Quản Lý Bán Hàng Trực Quan Với SheetStore

SheetStore tích hợp sẵn Conditional Formatting thông minh — tồn kho, đơn hàng, KPI đều có màu sắc cảnh báo tự động.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Bạn thấy bài viết hữu ích?

Đăng ký nhận thông báo khi có bài viết mới.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận