TRUE, FALSE: hai hàm không đối số, và vì sao gõ trong ngoặc kép lại thành một thứ khác hẳn
Chia sẻ
"TRUE() và FALSE() là hai hàm ngắn nhất Excel có — không nhận đối số nào, chỉ trả về đúng một giá trị luận lý cố định. Bài này cũng giải thích vì sao gõ \"TRUE\" trong dấu ngoặc kép lại tạo ra một thứ hoàn toàn khác, dùng ISLOGICAL để phân biệt."
Bài trước, POWER khép lại phần các hàm toán học. TRUE và FALSE chuyển hẳn sang nhóm luận lý — và là hai trong số những hàm đơn giản nhất Excel có: không nhận đối số nào, chỉ trả về đúng một giá trị cố định.
Cú pháp
=TRUE()
=FALSE()
TRUE() luôn trả về giá trị luận lý TRUE. FALSE() luôn trả về FALSE. Không có gì để tính toán — cả hai chỉ đơn giản là một cách khác để gõ ra hằng số luận lý.
Vì sao ít khi cần gõ TRUE() thay vì gõ thẳng TRUE
Excel tự nhận diện TRUE và FALSE gõ trực tiếp (không có dấu ngoặc kép, không có dấu ngoặc đơn) là giá trị luận lý thật, không cần gọi qua hàm:
=IF(TRUE,"Đúng","Sai")
=IF(TRUE(),"Đúng","Sai")
Hai công thức cho cùng kết quả "Đúng". Cặp hàm TRUE()/FALSE() chủ yếu còn sót lại vì lý do tương thích ngược với các bảng tính rất cũ, và đôi khi hữu ích khi cần chèn một hằng luận lý vào một chỗ mà cú pháp công thức đòi hỏi phải có dấu ngoặc theo sau, ví dụ trong định nghĩa LAMBDA hoặc giá trị mặc định tham số.
Vùng dễ nhầm nhất: gõ trong dấu ngoặc kép tạo ra một thứ khác hẳn
Đây là điểm quan trọng nhất của bài, và có liên hệ trực tiếp tới bài ISLOGICAL đã viết trước đó: gõ TRUE không có dấu ngoặc kép là giá trị luận lý thật, nhưng gõ "TRUE" có dấu ngoặc kép lại là một chuỗi văn bản trông giống hệt, hiển thị y hệt nhau trên bảng tính:
=ISLOGICAL(TRUE)
=ISLOGICAL("TRUE")
ISLOGICAL(TRUE) cho TRUE — đúng là giá trị luận lý. ISLOGICAL("TRUE") cho FALSE — chỉ là chữ, không phải luận lý, dù hiển thị giống hệt nhau trên màn hình.
Hệ quả: hai thứ trông giống nhau nhưng tính toán khác hẳn
=TRUE+5
="TRUE"+5
TRUE+5 cho ra 6 — Excel tự động quy đổi giá trị luận lý TRUE thành 1 khi đưa vào phép tính số học, FALSE thành 0. "TRUE"+5 thì báo lỗi #VALUE! — vì đây là một chuỗi chữ, không có cách nào cộng một chữ với một số.
Ứng dụng nhỏ: TRUE()/FALSE() làm giá trị mặc định trong LAMBDA
=LAMBDA(so,hienThem,IF(hienThem,so&"đ",so))(1000,TRUE())
Khi định nghĩa một hàm LAMBDA tuỳ chỉnh có tham số luận lý, gọi rõ TRUE()/FALSE() ở vị trí truyền tham số đôi khi giúp công thức dễ đọc hơn là chỉ gõ TRUE/FALSE trần, đặc biệt trong công thức dài có nhiều tham số cùng lúc.
Tổng kết
TRUE() và FALSE() là hai hàm không đối số, trả về đúng một giá trị luận lý cố định — hiếm khi cần thiết vì gõ thẳng TRUE/FALSE cho cùng kết quả. Điều quan trọng hơn là phân biệt giá trị luận lý thật với chuỗi văn bản "TRUE"/"FALSE" trông giống hệt nhau nhưng tính toán khác hẳn — dùng ISLOGICAL để kiểm tra khi không chắc chắn.
Đây là bài cuối trong cụm 5 bài về các hàm cơ bản dễ bị bỏ qua, bắt đầu từ REPLACE.
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ủ đề
OR: chỉ cần một điều kiện đúng là đủ
OR trả về TRUE khi có ít nhất một điều kiện đúng — dùng để gắn cờ ngoại lệ hoặc gộp nhiều trường hợp chấp nhận được vào một công thức duy nhất, thay vì lồng nhiều lớp IF lặp lại.
NOT: đảo ngược một giá trị luận lý, đôi khi diễn đạt rõ ý hơn viết điều kiện thuận
NOT đảo ngược TRUE thành FALSE và ngược lại. Đơn giản nhưng đôi khi giúp công thức đọc rõ ý hơn hẳn — nhất là khi ghép với các hàm ISBLANK, ISERROR vốn đã mang sẵn ý phủ định trong tên gọi.
AND: kiểm tra tất cả điều kiện cùng đúng, và một quy tắc tính toán dễ bị bỏ qua
AND trả về TRUE khi tất cả điều kiện đưa vào đều đúng — một trong những hàm được dùng nhiều nhất bên trong IF. Excel không tính AND theo kiểu ngắn mạch như nhiều ngôn ngữ lập trình, nên mọi đối số đều được tính hết, kể cả khi không cần thiết.
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.