Các Công Thức Bảng Tính Cần Thiết Mà Mọi Chuyên Gia Nên Biết
Thành thạo các công thức Excel và Google Sheets mạnh mẽ nhất — VLOOKUP, INDEX/MATCH, SUMIF, logic pivot và các kỹ thuật làm sạch dữ liệu.
Bảng tính là môi trường lập trình được sử dụng nhiều nhất thế giới. Hàng triệu chuyên gia đưa ra các quyết định quan trọng dựa trên những công thức mà họ chỉ còn nhớ loáng thoáng từ một hướng dẫn nào đó ba năm trước. Thành thạo một bộ công thức cốt lõi sẽ biến bảng tính từ những bảng dữ liệu đơn thuần thành công cụ phân tích dữ liệu mạnh mẽ.
Cấu trúc của một công thức
Mọi công thức đều bắt đầu bằng = và có thể tham chiếu đến:
- Tham chiếu ô:
A1,B2:D10(tương đối) hoặc$A$1,$B$2:$D$10(tuyệt đối) - Vùng được đặt tên:
=SUM(Revenue)thay vì=SUM(B2:B100) - Hàm:
SUM,VLOOKUP,IF,TEXT, v.v. - Hằng số: số, văn bản trong dấu ngoặc kép,
TRUE/FALSE
Tham chiếu tương đối và tuyệt đối:
Khi bạn sao chép một công thức, tham chiếu tương đối sẽ dịch chuyển theo. Tham chiếu tuyệt đối (có dấu $) sẽ cố định.
=B2*C2 → Khi sao chép xuống, thành =B3*C3, =B4*C4...
=B2*$C$1 → C1 cố định (ví dụ: thuế suất), B2 dịch chuyển
Công thức tra cứu
VLOOKUP
=VLOOKUP(lookup_value, table_array, col_index, [range_lookup])
Tìm một giá trị trong cột đầu tiên của bảng và trả về giá trị từ cột khác:
=VLOOKUP(A2, $E$2:$G$100, 2, FALSE)
A2— giá trị cần tìm kiếm$E$2:$G$100— bảng dữ liệu (khóa bằng$)2— trả về cột thứ 2 của bảngFALSE— khớp chính xác (luôn dùngFALSEkhi tra cứu)
Hạn chế của VLOOKUP: Chỉ có thể tra cứu từ trái sang phải, và việc chèn cột sẽ làm lệch số chỉ mục cột.
INDEX / MATCH (lựa chọn tốt hơn)
=INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
Linh hoạt hơn VLOOKUP — có thể tra cứu theo mọi hướng:
=INDEX($G$2:$G$100, MATCH(A2, $E$2:$E$100, 0))
Trả về giá trị từ cột G tại vị trí mà cột E khớp với A2. Việc chèn cột không bao giờ làm hỏng công thức này.
XLOOKUP (Excel / Google Sheets hiện đại)
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found])
Phiên bản thay thế hiện đại cho cả hai hàm trên:
=XLOOKUP(A2, $E$2:$E$100, $G$2:$G$100, "Not found")
Cú pháp gọn gàng hơn, xử lý trường hợp không tìm thấy một cách linh hoạt, hoạt động theo mọi hướng.
Công thức có điều kiện
IF
=IF(condition, value_if_true, value_if_false)
=IF(B2>1000, "High", "Low")
=IF(C2="", "Missing", C2)
IF lồng nhau (nên dùng IFS thay thế)
=IF(B2>=90,"A", IF(B2>=80,"B", IF(B2>=70,"C","F")))
-- Gọn hơn với IFS:
=IFS(B2>=90,"A", B2>=80,"B", B2>=70,"C", TRUE,"F")
AND / OR trong điều kiện
=IF(AND(B2>100, C2="Active"), "Priority", "Normal")
=IF(OR(D2="VIP", E2>10000), "Discount", "")
Công thức tổng hợp
SUMIF / SUMIFS
Tính tổng các giá trị thỏa mãn điều kiện:
=SUMIF(range, criteria, sum_range)
=SUMIF(B:B, "Electronics", C:C) -- tính tổng C khi B = "Electronics"
-- Nhiều điều kiện:
=SUMIFS(C:C, B:B, "Electronics", D:D, ">2025-01-01")
COUNTIF / COUNTIFS
=COUNTIF(A:A, "Active") -- đếm dòng có A = "Active"
=COUNTIF(B:B, ">1000") -- đếm dòng có B > 1000
=COUNTIFS(A:A, "Active", C:C, "US") -- cả hai điều kiện
AVERAGEIF
=AVERAGEIF(B:B, "Electronics", C:C) -- tính trung bình C khi B = "Electronics"
Công thức văn bản
Nối văn bản
=CONCATENATE(A2, " ", B2) -- cú pháp cũ
=A2 & " " & B2 -- cú pháp hiện đại (được ưa dùng)
=TEXTJOIN(", ", TRUE, A2:A10) -- nối với dấu phân cách, bỏ qua ô trống
Trích xuất văn bản
=LEFT(A2, 3) -- 3 ký tự đầu tiên
=RIGHT(A2, 4) -- 4 ký tự cuối cùng
=MID(A2, 3, 5) -- 5 ký tự bắt đầu từ vị trí 3
=LEN(A2) -- tổng số ký tự
=FIND("@", A2) -- vị trí của @ trong chuỗi
Làm sạch văn bản
=TRIM(A2) -- xóa khoảng trắng đầu/cuối
=UPPER(A2) / =LOWER(A2) -- chuyển đổi chữ hoa/thường
=PROPER(A2) -- viết hoa chữ cái đầu mỗi từ
=SUBSTITUTE(A2, " ", "_") -- thay khoảng trắng bằng dấu gạch dưới
=CLEAN(A2) -- xóa ký tự không thể in
Công thức ngày và giờ
=TODAY() -- ngày hiện tại
=NOW() -- ngày và giờ hiện tại
=YEAR(A2) / =MONTH(A2) / =DAY(A2) -- trích xuất các thành phần
=DATEDIF(A2, B2, "D") -- số ngày giữa hai ngày
=DATEDIF(A2, B2, "M") -- số tháng hoàn chỉnh giữa hai ngày
=DATEDIF(A2, B2, "Y") -- số năm hoàn chỉnh (hữu ích để tính tuổi)
=NETWORKDAYS(A2, B2) -- số ngày làm việc giữa hai ngày (không tính cuối tuần)
=EDATE(A2, 3) -- ngày cách A2 3 tháng
=EOMONTH(A2, 0) -- ngày cuối cùng của tháng trong A2
Làm việc với dữ liệu: các mẫu thực tế
Loại bỏ trùng lặp với UNIQUE (phiên bản hiện đại)
=UNIQUE(A2:A100) -- danh sách các giá trị duy nhất
Mảng động với FILTER
=FILTER(A2:C100, B2:B100="Active") -- các dòng có B = "Active"
=FILTER(A2:C100, (B2:B100="Active")*(C2:C100>1000)) -- cả hai điều kiện
Sắp xếp động với SORT
=SORT(A2:C100, 2, -1) -- sắp xếp theo cột 2, giảm dần
Chuyển đổi và xuất dữ liệu
Khi công việc bảng tính đã hoàn tất và bạn cần chuyển dữ liệu sang hệ thống khác:
- Xuất sang CSV để tương thích đa nền tảng với công cụ Excel to CSV của chúng tôi
- Gộp nhiều file CSV với CSV Merger
- Chuyển sang JSON để dùng với API bằng JSON to Excel (hoạt động hai chiều)
Các lỗi thường gặp cần tránh
- Giá trị cứng trong công thức — Hãy dùng tham chiếu ô thay thế.
=B2*0.08sẽ khó hiểu sau này;=B2*$D$1với D1 được gán nhãn "Tax Rate" thì tự giải thích được. - Không khóa tham chiếu khi sao chép — Quên dấu
$khiến công thức tham chiếu sai ô. - Dùng VLOOKUP với
TRUE(khớp gần đúng) — Cách này yêu cầu dữ liệu phải được sắp xếp và cho ra kết quả bất ngờ khi dữ liệu chưa được sắp xếp. - Tham chiếu vòng — Công thức tham chiếu đến chính nó (hoặc ô tham chiếu ngược lại nó). Excel sẽ cảnh báo bạn.
- Trộn lẫn kiểu dữ liệu — Lưu số dưới dạng văn bản (căn lề trái trong ô) sẽ làm hỏng SUM và tính năng sắp xếp.
Thành thạo bảng tính là một siêu năng lực. Các công thức trên xử lý được 90% công việc dữ liệu thực tế. Hãy thực hành với các bộ dữ liệu thực và bạn sẽ dễ dàng sử dụng các công thức phức tạp một cách tự nhiên.