EXACT: so sánh chính xác tuyệt đối hai chuỗi, khác hẳn dấu =
Chia sẻ
"Dấu = trong Excel không phân biệt chữ hoa chữ thường khi so hai chuỗi. Hàm EXACT làm đúng việc dấu = không làm được: so khớp tuyệt đối, kể cả kiểu chữ."
Bài về FIND và SEARCH đã nói FIND phân biệt chữ hoa chữ thường còn SEARCH thì không. Nhưng nếu chỉ cần so sánh toàn bộ hai chuỗi có giống hệt nhau hay không — không phải tìm một ký tự bên trong — dùng dấu = thông thường vẫn có một điều bất ngờ nhiều người không biết: dấu = trong Excel không phân biệt chữ hoa chữ thường.
EXACT là hàm được thiết kế đúng để làm việc dấu = không làm được: so khớp tuyệt đối, tính cả kiểu chữ.
Công thức trong bài dùng dấu phẩy (,); đổi sang dấu chấm phẩy (;) nếu Excel của bạn cấu hình theo vùng miền khác.
Điều bất ngờ: dấu = không phân biệt hoa thường
="Excel" = "excel"
Kết quả trả về TRUE — Excel coi hai chuỗi này bằng nhau, dù một chuỗi viết hoa chữ đầu, chuỗi kia viết thường toàn bộ. Với phần lớn công việc, đây là hành vi phù hợp — dò tìm tên khách hàng không cần quan tâm ai gõ hoa hay thường. Nhưng có những tình huống thật sự cần phân biệt, và đó là lúc dấu = gây ra một kết quả sai mà không hề báo lỗi gì.
EXACT — so khớp tuyệt đối, tính cả kiểu chữ
=EXACT(text1, text2)=EXACT("Excel", "excel")
Kết quả trả về FALSE — đúng bản chất, vì hai chuỗi khác nhau ở kiểu chữ. EXACT là hàm duy nhất trong Excel so sánh chuỗi theo đúng nghĩa "giống hệt từng ký tự", không bỏ qua bất kỳ khác biệt nào.
Ứng dụng thực tế: kiểm tra mã sản phẩm phân biệt hoa thường
Một số hệ thống mã hoá coi VT001 và vt001 là hai mã khác nhau hoàn toàn, dù nhìn qua tưởng cùng một mã. Dùng dấu = để đối chiếu hai danh sách mã trong trường hợp này sẽ báo "khớp" nhầm.

=IF(EXACT(A2, B2), "Khớp chính xác", "Khác kiểu chữ hoặc khác mã")
Với A2 là "VT001" và B2 là "vt001", công thức trả về "Khác kiểu chữ hoặc khác mã" — đúng như hệ thống mã hoá phân biệt hoa thường yêu cầu, điều mà một phép so sánh A2=B2 thông thường sẽ bỏ lỡ vì luôn trả về TRUE trong trường hợp này.
Vì sao VLOOKUP cũng không phân biệt hoa thường
Đúng như quy tắc chung của phép so sánh trong Excel, các hàm dò tìm quen thuộc — VLOOKUP, XLOOKUP, MATCH — cũng đi theo cùng logic với dấu =: không phân biệt hoa thường. Dò "vt001" vẫn khớp được với ô ghi "VT001".
Muốn dò tìm có phân biệt hoa thường thật sự — trường hợp hiếm nhưng có thật, ví dụ hệ thống quản lý mã hàng coi hoa/thường là hai mã khác nhau — cần kết hợp EXACT vào bên trong một công thức mảng, vì bản thân VLOOKUP không có tham số nào bật/tắt việc này:
=INDEX(C2:C6, MATCH(TRUE, EXACT(A2:A6, "VT001"), 0))
Công thức này thay thế cho VLOOKUP khi cần dò khớp tuyệt đối: EXACT(A2:A6, "VT001") so từng ô trong vùng với "VT001", tính cả hoa thường, ra một dãy TRUE/FALSE. MATCH(TRUE, ..., 0) tìm vị trí đầu tiên có kết quả TRUE. INDEX lấy giá trị tương ứng — đúng kỹ thuật đã dùng ở bài MAX, MIN, LARGE và SMALL, chỉ thay điều kiện so sánh từ LARGE sang EXACT.
EXACT còn phát hiện cả khoảng trắng thừa
Một công dụng phụ ít được biết tới: EXACT cũng coi hai chuỗi khác nhau nếu chênh lệch dù chỉ một khoảng trắng — điều mà dấu = cũng phân biệt được, nên đây không phải điểm khác biệt riêng của EXACT, nhưng đáng nhắc lại vì nó hay bị nhầm là lỗi của EXACT.
=EXACT("Excel", "Excel ")
Kết quả trả về FALSE — do khoảng trắng thừa ở cuối chuỗi thứ hai, đúng loại lỗi dữ liệu đã nói ở bài Xử Lý Lỗi Trong Excel. Gặp EXACT báo FALSE dù mắt nhìn hai chuỗi giống hệt nhau, nghi ngờ đầu tiên nên là khoảng trắng ẩn, kiểm bằng LEN hoặc bọc TRIM trước khi so sánh.
Tổng kết
Dấu = trong Excel không phân biệt chữ hoa chữ thường khi so sánh chuỗi — một hành vi mặc định phù hợp với phần lớn công việc, nhưng gây sai lệch âm thầm khi dữ liệu thật sự cần phân biệt kiểu chữ. EXACT là hàm duy nhất so khớp tuyệt đối, tính cả hoa thường lẫn khoảng trắng, và có thể ghép vào công thức mảng để dò tìm phân biệt hoa thường — việc VLOOKUP không tự làm được.
Đọc tiếp trong cùng cụm bài: DOLLAR và FIXED — định dạng số thành chuỗi tiền tệ và số cố định thập phân.
Mục lục
Muốn làm chủ Excel?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
TYPE: trả về mã số kiểu dữ liệu của một ô, kiểm tra nhanh không cần nhiều hàm IS
TYPE trả về một mã số duy nhất cho biết ô đang chứa kiểu dữ liệu gì — số, chữ, luận lý, lỗi, hay mảng — thay cho việc phải gọi lần lượt nhiều hàm ISNUMBER, ISTEXT để dò từng khả năng.
ISLOGICAL: phân biệt giá trị TRUE/FALSE thật với chuỗi chữ 'TRUE'
ISLOGICAL kiểm tra một ô có đang chứa giá trị luận lý TRUE/FALSE thật hay không — phân biệt với chuỗi chữ 'TRUE' trông giống hệt nhưng bản chất là văn bản, gây sai lệch khi đưa vào công thức khác.
ISEVEN và ISODD: kiểm tra số chẵn, số lẻ chỉ trong một hàm
ISEVEN và ISODD kiểm tra một số là chẵn hay lẻ chỉ bằng một hàm, thay cho công thức MOD dài dòng — ứng dụng thực tế: tô màu xen kẽ dòng, chia ca làm việc theo ngày chẵn lẻ.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.