Cách dùng hàm IF ELSE trong Excel tự động với VBA

Nội dung được viết bởi Thanh Hằng

Hãy tưởng tượng bạn có một danh sách điểm của học sinh trong một lớp trên Excel và bạn muốn đánh dấu những học sinh nào đạt điểm 10. Nếu bạn làm việc thủ công, bạn sẽ phải kiểm tra từng học sinh có điểm là 10 để đánh dấu tên học sinh đó. 

Vậy bạn có biết rằng có một cách nhanh hơn để làm điều này trên Excel không? Đó là thực hiện tự động bằng VBA với hàm IF ELSE trong Excel. Trong bài viết này, chúng ta sẽ hướng dẫn cách sử dụng hàm IF ELSE trong VBA thông qua một số ví dụ thực tế.

Hàm IF ELSE trong Excel

Hàm IF ELSE được sử dụng để thực hiện kiểm tra một điều kiện và trả về giá trị khác nhau dựa trên kết quả của điều kiện đó. Cấu trúc cơ bản của hàm IF ELSE Excel như sau:

=IF(điều_kiện, giá_trị_nếu_đúng, giá_trị_nếu_sai)
  • điều_kiện là biểu thức logic mà bạn muốn kiểm tra.
  • giá_trị_nếu_đúng là giá trị bạn muốn trả về nếu điều kiện đúng.
  • giá_trị_nếu_sai là giá trị bạn muốn trả về nếu điều kiện sai.

Ví dụ:

=IF(A1 > 10, "Lớn hơn 10", "Không lớn hơn 10")

Trong ví dụ này, nếu giá trị trong ô A1 lớn hơn 10, hàm sẽ trả về "Lớn hơn 10". Nếu không, nó sẽ trả về "Không lớn hơn 10".

Hàm IF ELSE trong Excel
Hàm IF ELSE trong Excel

Bạn cũng có thể sử dụng trực tiếp công thức hàm IF ELSE đối với các bảng dữ liệu ngắn, đơn giản. Nhưng nếu như bạn thường xuyên phải dùng hàm IF ELSE để kiểm tra điều kiện của bảng tính hay dữ liệu file Excel của bạn rất dài và tốn thời gian khi thao tác thủ công. Lúc này, hãy sử dụng VBA giúp bạn kiểm tra điều kiện tự động với hàm IF ELSE trong Excel.

Dùng VBA kiểm tra điều kiện tự động với lệnh IF ELSE trong Excel

Cấu trúc hàm IF trong VBA dạng đơn giản

Hàm IF trong VBA thường sử dụng để xét tính logic Đúng / Sai của 1 vấn đề. Cấu trúc bao gồm:

  • Nếu mệnh đề Đúng (thỏa mãn) thì xảy ra điều gì
  • Nếu mệnh đề Không Đúng (không thỏa mãn) thì xảy ra điều gì

Cấu trúc đơn giản của IF là chỉ xét trong trường hợp mệnh đề đúng:

If điều_kiện Then
   ' Thực hiện hành động nếu điều kiện đúng
End If

Trong đó:

IF … Then: Nếu mệnh đề trong IF là đúng thì …

    …           : Câu lệnh được thực hiện

End If       : Kết thúc cấu trúc

Nếu mệnh đề không đúng, sẽ không có gì xảy ra.

Lưu ý: Dạng rút gọn này thường dùng để xét các mệnh đề ngắn gọn và đơn giản, trong đó mệnh đề chỉ quan tâm đến khả năng Đúng (thỏa mãn) của mệnh đề.

Ví dụ: Hãy kiểm tra xem giá trị tại ô A1 có lớn hơn 5 hay không? Nếu > 5 thì trả kết quả về giá trị Đúng tại ô B1 (để nguyên nếu giá trị không lớn hơn 5).

Cách kiểm tra giá trị tự động với VBA:

  • Nhấn phím tắt Alt + F11 để mở trình soạn thảo VBA.
  • Trong trình soạn thảo VBA, tạo một Module mới từ menu "Insert". Một cửa sổ soạn thảo mới sẽ xuất hiện.
Tạo module mới trong VBA
Tạo module mới trong VBA
  • Dán mã VBA sau vào cửa sổ soạn thảo này:
Sub KiemTraGiaTri()
    If Range("A1").Value > 5 Then
        Range("B1").Value = "Đúng"
    End If
End Sub
  • Nhấn F5 và đóng cửa sổ soạn thảo VBA để trở lại Excel, bạn sẽ thu được kết quả như sau:
Hàm IF trong Excel
Hàm IF một mệnh đề trong VBA

Xem thêm: HƯỚNG DẪN CÁCH VIẾT HÀM VBA TRONG EXCEL

Cấu trúc VBA IF ELSE dạng đầy đủ

Cấu trúc hàm IF ELSE trong Excel VBA đầy đủ bao gồm cả trường hợp mệnh đề “Đúng” và mệnh đề “Không Đúng”.

Cấu trúc này được viết như sau:

Cấu trúc VBA IF ELSE dạng đầy đủ
Cấu trúc VBA IF ELSE dạng đầy đủ

Từ khóa Else trong cấu trúc IF ELSE trong VBA này có nhiệm vụ xét trường hợp mệnh đề Không Đúng (không thỏa mãn).

Ví dụ: Hãy kiểm tra xem giá trị tại ô A1 có lớn hơn 5 hay không? Nếu > 5 thì trả kết quả về giá trị ''Đúng'' tại ô B1 và nếu không, thì trả kết quả về ''Sai'' tại ô B1.

Tương tự các bước chèn mã vào cửa sổ module của VBA trên, chúng ta dán mã này để thực hiện theo yêu cầu:

Sub KiemTraGiaTri()
   If Range("A1").Value > 5 Then
       Range("B1").Value = "Đúng"
   Else
       Range("B1").Value = "Sai"
   End If
End Sub

Sau khi chạy mã VBA chứa hàm hàm IF ELSE trong Excel trên, chúng ta thu được kết quả như sau:

Công thức VBA chứa hàm IF ELSE trong Excel
Công thức VBA chứa hàm IF ELSE trong Excel

Cấu trúc hàm IF ELSE trong Excel lồng nhau

Với những yêu cầu phức tạp hơn, cấu trúc một lần IF không thể đáp ứng hết các điều kiện. Do vậy, cần thiết phải sử dụng hàm IF nhiều điều kiện trong VBA  trong một công thức.

Công thức IF ELSE trong VBA có thể được viết như sau trong VBA:

Cấu trúc hàm IF ELSE trong Excel lồng nhau
Cấu trúc hàm IF ELSE trong Excel lồng nhau

Trong đó,

  • Mệnh đề đầu tiên sẽ viết bình thường
  • Từ mệnh đề thứ 2 sẽ viết với ElseIf chứ không phải chỉ có If, và viết trước từ khóa ELSE
  • Các mệnh đề khác sẽ viết giống với mệnh đề thứ 2
  • Cuối cùng khi tất cả các mệnh đề đều không thỏa mãn thì xét tại hàm ELSE trong Excel
  • Kết thúc toàn bộ cấu trúc chỉ cần 1 lần End If

Trong công thức này, các mệnh đề IF có mối quan hệ nối tiếp nhau, và các mệnh đề sẽ được thực hiện lần lượt, chứ không cùng đồng thời thực hiện tất cả. Với quy luật sau:

  • Mệnh đề nào đúng sẽ dừng lại ở mệnh đề đó.
  • Chỉ khi mệnh đề trước sai thì mới xét tiếp mệnh đề sau.

Ví dụ: Dưới đây là bảng xét thưởng cho nhân viên An, hãy điền mức thưởng phù hợp với yêu cầu sau:

bài tập Cấu trúc hàm IF ELSE trong Excel lồng nhau
Bài tập hàm IF ELSE trong Excel lồng nhau

Dựa vào giá trị ở ô B2 để xét mệnh đề so sánh giá trị ô B2 với các mức doanh thu. Nếu thỏa mãn sẽ trả kết quả về giá trị ở ô C2 tương ứng với các mức thưởng

Mã code sử dụng hàm IF ELSE trong Excel để chèn vào VBA như sau:

Sub XetThuong()
    If Range("B2").Value > 500 Then             ' Xét giá trị B2 > 500 trước
        Range("C2").Value = 200
    ElseIf Range("B2").Value > 300 Then    ' Xét giá trị B2 > 300 sau, trường hợp B2 > 500 đã xét trước đó nên trường hợp này chỉ là B2 > 300 và B2 <= 500
        Range("C2").Value = 100
    Else
        Range("C2").Value = 0
    End If
End Sub

Để học cách tự viết mã VBA giúp tối ưu hóa hiệu suất công việc, tham khảo thêm một số khóa học lập trình VBA của Gitiho ngay bên dưới nhé:

Kết luận

Hy vọng bài viết trên đã hướng dẫn các bạn đọc cách viết cũng như sử dụng VBA để kiểm tra điều kiện và trả về một giá trị với hàm IF ELSE trong Excel. Ngoài ra để biết thêm về những kiến thức hay như vậy với công cụ Excel hay VBA Excel thì đừng quên đón đọc những bài viết hữu ích trên blog Gitiho nhé!

Chúc bạn áp dụng thành công!

Hiện gói hội viên đang được ưu đãi giảm 200K. Chỉ với 182K/ tháng - Học hơn 500 khóa bất kỳ tại Gitiho! Nhấn vào banner bên dưới để tìm hiểu thêm!

5/5 - (1 bình chọn)

5/5 - (1 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông