Excel's Logical Functions - Các hàm luận lý

Liên hệ QC

BNTT

Bùi Nguyễn Triệu Tường
Thành viên danh dự
Tham gia
3/7/07
Bài viết
4,946
Được thích
23,206
Nghề nghiệp
Dạy đàn piano
Excel’s Logical Functions - Các hàm luận lý


Danh mục các hàm luận lý


AND (logical1, logical2, ...) : Trả về TRUE nếu tất cả các đối số là TRUE, trả về FALSE nếu một hay nhiều đối số là FALSE

FALSE
(): Có thể nhập trực tiếp FALSE vào trong công thức, Excel sẽ hiểu đó là một biểu thức có giá trị FALSE mà không cần dùng đến cú pháp của hàm này

IF
(logical_test, value_if_true, value_if_false) : Dùng để kiểm tra điều kiện theo giá trị và công thức

IFERROR
http://www.giaiphapexcel.com/forum/showpost.php?p=47395&postcount=7 (value, value_if_error) : Nếu lỗi xảy ra thì... làm gì đó

NOT
(logical) : Đảo ngược giá trị của các đối số

OR
(logical1, logical2, ...) : Trả về TRUE nếu một hay nhiều đối số là TRUE, trả về FALSE nếu tất cả các đối số là FALSE

TRUE
(): Có thể nhập trực tiếp TRUE vào trong công thức, Excel sẽ hiểu đó là một biểu thức có giá trị TRUE mà không cần dùng đến cú pháp của hàm này
 
Lần chỉnh sửa cuối:
Hàm IF


Hàm IF
()


Trả về một giá trị nếu điều kiện có giá trị TRUE, và một giá trị khác nếu điều kiện có giá trị FALSE.
Cú pháp: IF(logical_test, value_is_true [, value_is_false])
logical_test : Là bất kỳ giá trị hay công thức nào có thể trả về TRUE hoặc FALSE. Ví dụ, A1=100 là một biểu thức logic. Nếu giá trị trong A1 bằng 100, biểu thức sẽ trả về giá trị TRUE, còn ngược lại thì biểu thức trả về giá trị FALSE. Đối số này có thể bất kỳ toán tử so sánh nào.

value_is_true : Giá trị trả về nếu logical_test là TRUE.

value_is_false : Giá trị trả về nếu logical_test là FALSE.​


Lưu ý
:
  • Có tới 64 hàm IF có thể lồng vào nhau (với Excel 2003 trở về trước thì con số này là 7) khi đối số value_is_truevalue_is_false xây dựng trên những điều kiện phức tạp hơn. Tuy nhiên, khi cần phải kiểm tra nhiều điều kiện, nên dùng các hàm LOOKUP(), VLOOKUP(), HLOOKUP(), hoặc CHOOSE().

  • Nếu có bất kỳ đối số nào của hàm IF() là mảng, mỗi phần tử trong mảng sẽ được tính toán khi câu lệnh IF được thực thi.

  • Microsoft Excel có cung cấp một số hàm khác mà bạn có thể dùng để phân tích dữ liệu dựa vào một điều kiện nào đó. Ví dụ như hàm COUNTIF(), COUNTIFS(), hàm SUMIF() hay SUMIFS().
 
Lần chỉnh sửa cuối:
Hàm IF (tt)


Những hàm IF lồng nhau

Trong cuộc sống đời thường, có mấy ai dễ dàng chấp nhận chuyện "một cái nếu", phải không các bạn.
Chúng ta thường sẽ dùng kiểu, nếu... rồi nhưng mà nếu... nhiều khi kéo dài đến vô tận!

Trong Excel cũng vậy. Giả sử, chúng ta xếp loại học tập, nếu điểm trung bình (ĐTB) lớn hơn 9 thì giỏi, vậy
ĐTB nhỏ hơn 9 thì dở? Chưa, ĐTB nhỏ hơn 9 nhưng lớn hơn 7 thì khá cái đã, rồi ĐTB nhỏ hơn 7 nhưng chưa bị điểm 5 thì trung bình, chỉ khi nào ĐTB nhỏ hơn 4 thì mới gọi là dở (cái này tôi chỉ ví dụ thôi, các bạn đừng sử dụng để xếp loại nhé).

Khi đó, chúng ta sẽ dùng những hàm IF() lồng nhau, IF() này nằm trong IF() kia. Sau này chúng ta sẽ học cách ghép thêm nhiều điều kiện khác vào nữa.

Ví dụ, tôi lấy lại ví dụ đã nói ở bài trước:
=IF(A1 >= 1000, "Big!", "Not big")
Bi giờ thêm chút, A1 lớn hơn 1000 là "big" rồi, nhưng chẳng lẽ 10000 thì cũng chỉ là "big" ? Có lẽ nên tặng thêm một danh hiệu cao hơn:
=IF(A1 >= 1000, IF(A1 >= 10000, "Really big!!", Big!"), "Not big")
Hoặc là, đồng ý rằng <1000 là "Not big", nhưng nó khác "Small" chứ (tui không lớn, chưa chắc tui nhỏ), vậy chúng ta thêm một định nghĩa "Small" thử xem:
=IF(A1 >= 1000, "Big!", IF(A1 < 100, "Small", "Not big"))
Bạn để ý nhé, ở đây tôi đặt cái IF "con" không giống như ở trên, sao cũng được bạn à, miễn là đừng sai cú pháp của IF().
Và nếu thích, bạn có thể ghép tất cả lại:
=IF(A1 >= 1000, IF(A1 >= 10000, "Really big!!", Big!"), IF(A1 < 100, "Small", "Not big"))
Chĩ cần một lưu ý, là những dấu đóng mở ngoặc đơn. Nếu bạn đóng và mở không đúng lúc hoặc không đủ, Excel sẽ không hiểu, hoặc là cho các bạn kết quả sai đấy.

Bài toán tính tiền thưởng dựa trên doanh số bán hàng
Có một cửa hàng quy định mức tiền thưởng trên doanh số bán hàng trong tháng cho nhân viên như sau:
- Nếu doanh số không đạt định mức đề ra, không thường
- Nếu doanh số vượt định mức, nhưng chưa tới 10% so với định mức, thưởng $1000
- Nếu doanh số vượt định mức, và vượt hơn 10% so với định mức, thưởng $10.000
Tôi đề nghị cách làm như vầy nhé:

Giả sử cột B là định mức doanh số bán, cột C là doanh số thực tế trong tháng, để tính được phần trăm vượt định mức của nhân viên, tại cột D ta dùng công thức:
=(C2-B2)/C2 (nếu muốn hiện số %, bạn định dạng cho cột D theo kiểu Percentage)
Và tại cột E, tính mức tiền thưởng, dùng công thức:
=IF(D2 < 0, "", IF(D2 < 0.1, 1000, 10000))
Dưới đây là hình minh họa cho ví dụ này:

IF4.jpg

 

Hàm AND
()


Trả về giá trị TRUE nếu tất cả các đối số là đúng; trả về giá trị FALSE nếu có một hay nhiều đối số là sai.
Có thể dùng hàm AND() bất cứ chỗ nào, nhưng thường thì hàm AND() hay được dùng chung với hàm IF().
Cú pháp: AND(logical1, [, logical2...])
logical: Có thể có từ 1 đến 255 biểu thức (trong Excel 2003 trở về trước, con số này là 30) được xét xem đúng (TRUE) hay sai (FALSE).​


Ghi chú
:
  • Các đối số phải có giá trị logic là TRUE hoặc là FALSE. Nếu đối số là mảng hay tham chiếu thì mảng hay tham chiếu đó chỉ chứa những giá trị logic.

  • Nếu đối số là mảng hay tham chiếu có chứa chữ hoặc những ô rỗng, các giá trị đó sẽ được bỏ qua.

  • Nếu dãy không chứa các trị logic, AND() sẽ trả về giá trị lỗi #VALUE!
 
Lần chỉnh sửa cuối:

Hàm OR
()


Trả về giá trị TRUE nếu có một hay nhiều đối số là đúng; trả về giá trị FALSE nếu tất cả các đối số là sai.
Có thể dùng hàm OR() bất cứ chỗ nào, nhưng thường thì hàm OR() hay được dùng chung với hàm IF().
Cú pháp: OR(logical1, [, logical2...])
logical: Có thể có từ 1 đến 255 biểu thức (trong Excel 2003 trở về trước, con số này là 30) được xét xem đúng (TRUE) hay sai (FALSE).​


Ghi chú
:
  • Các đối số phải có giá trị logic là TRUE hoặc là FALSE. Nếu đối số là mảng hay tham chiếu thì mảng hay tham chiếu đó chỉ chứa những giá trị logic.

  • Nếu đối số là mảng hay tham chiếu có chứa chữ hoặc những ô rỗng, các giá trị đó sẽ được bỏ qua.

  • Nếu dãy không chứa các trị logic, OR() sẽ trả về giá trị lỗi #VALUE!
 
Lần chỉnh sửa cuối:
Áp dụng hàm lý luận vào công thức mãng


Áp dụng hàm lý luận vào công thức mãng
Mời bạn xem bảng tính sau đây:

IF5.jpg

Nếu nhìn thoáng qua, có lẽ bạn sẽ nói rằng, có gì đâu, mấy cái TOTAL là cộng những cái có ở trên thôi.

Vậy, tại sao cái TOTAL ở B16 trống rỗng? Và cái công thức tôi trình bày đó, làm gì mà "ghê" vậy ?

Vâng, vì yêu cầu của hai cái TOTAL này là: Nếu các chỉ tiêu Advertising, Rent, Supplies, Salaries và Utilities đều lớn hơn 0 thì mới cộng chúng lại,
còn nếu chỉ có 1 trong những chỉ tiêu đó không có (Salaries của năm 2005, cell B14) thì không cộng.

Phải làm công thức mãng thôi. Trước tiên chúng ta làm nháp:
Các ô từ B3 đến B7 phải lớn hơn 0: AND(B3:B7>0)

Tổng của B3 đến B7: SUM(B3:B7)
Rồi, bây giờ ghép chữ nếu vào: =IF(AND(B3:B7 > 0), SUM(B3:B7), "")
Đây là một dạng công thức mãng. Bạn thử Enter xem, Excel sẽ báo lỗi #VALUE! liền. Bạn phải Ctrl-Shift-Enter mới được.

Thêm một ví dụ
Đề bài: Lập công thức trong F3:F8, biết rằng nó là tổng số tiền ở cột C nếu năm (year) ở cột B bằng năm ở cột E tương ứng.
(Ví dụ: ở F3 là tổng số tiền của năm 2009)

IF6.jpg


Các bạn xem lại công thức của bài trên một tí:
=IF(AND(B3:B7 > 0), SUM(B3:B7), "")

Công thức này, tôi sẽ sửa lại như sau: =SUM(IF(B3:B7 > 0, B3:B7, "")

Kết quả vẫn tương đương.

Chúng ta sẽ dùng kiểu công thức thứ hai (tính SUM) cho bài này:
=SUM(IF(YEAR($B$3:$B$18) = E3, $C$3:$C$18, 0))
(nhớ nhấn Ctrl-Shift-Enter sau khi gõ công thức)

Và đây là đáp số: (bạn thử lại xem đúng không nhé)
IF7.jpg

 
Lần chỉnh sửa cuối:
Hàm IFERROR

EXCEL2007.png
Hàm IFERROR()

Trả về một giá trị đã xác định nếu công thức có lỗi, hoặc trả về kết quả của công thức nếu công thức đó không có lỗi. Thường dùng IFERROR() để bẫy lỗi trong các công thức.
Cú pháp: IFERROR(value, value_if_error)
value: Là một biểu thức, một công thức cần kiểm tra có lỗi hay không.

value_if_error
: Giá trị trả về nếu value gây ra lỗi, là các loại lỗi sau đây: #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, hoặc #NULL!.​


Ghi chú
:
  • Nếu value hoặc value_if_error là một ô rỗng, IFERROR() sẽ xem chúng như những chuỗi rỗng ("").

  • Nếu value là một công thức mảng, IFERROR() trả về một mảng các kết quả cho mỗi ô của mảng trong value
 
Lần chỉnh sửa cuối:
Một số hàm Hàm Luận Lý khác

Những hàm sau đây cũng thuộc nhóm hàm Luận Lý, tuy nhiên ít khi chúng ta dùng đến. Chỉ xin nói sơ qua.


Hàm NOT
Cho kết quả là phép phủ định của biểu thức logíc.
Hàm NOT cho kết quả TRUE nếu biểu thức logic là FALSE và ngược lại.


Cú pháp:
NOT(logical)

____ logical: một biểu thức, một điều kiện kiểu logic

Ví dụ: NOT(3>2) TRUE

Hàm FALSE và TRUE
Bạn có thể nhập trực tiếp FALSE hoặc TRUE vào trong công thức, Excel sẽ hiểu đó là một biểu thức có giá trị FALSE hoặc TRUE
mà không cần dùng đến cú pháp của hai hàm này.




------- Hết phần EXCEL'S LOGICAL FUNCTIONS -------
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom