Hàm IIf

Trả về một trong hai phần, tùy theo việc đánh giá của một biểu thức.

Bạn có thể dùng IIf bất kỳ tại đâu bạn có thể dùng biểu thức. Bạn dùng IIf để xác định xem một biểu thức khác đúng hay sai. Nếu biểu thức là đúng, IIf trả về một giá trị; nếu biểu thức sai, IIf trả về một giá trị khác. Bạn xác định các giá trị mà IIf trả về.

Xem một số ví dụ

Cú pháp

IIf ( expr ; truepart ; falsepart )

Cú pháp hàm IIf có những tham đối sau:

Tham đối

Mô tả

expr

Bắt buộc. Biểu thức bạn muốn đánh giá.

truepart

Bắt buộc. Giá trị hoặc biểu thức được trả về nếu expr là Đúng.

falsepart

Bắt buộc. Giá trị hoặc biểu thức được trả về nếu expr là Sai.


Chú thích

IIf luôn đánh giá cả hai truepart và falsepart, mặc dù nó chỉ trả về một trong hai phần này. Do điều này, bạn nên theo dõi các hiệu ứng phụ không mong muốn. Ví dụ, nếu các kết quả đánh giá falsepart trong một phép chia theo lỗi bằng không, một lỗi xuất hiện ngay cả khi expr là Đúng.

Ví dụ

Sử dụng IIf trên một biểu mẫu hoặc báo cáo    Giả sử bạn có một bảng Khách hàng có chứa một trường được đặt tên là Quốc_gia_Vùng_lãnh_thổ. Trong một biểu mẫu, bạn muốn thể hiện liệu tiếng Italy có phải là ngôn ngữ chính của liên hệ không. Bạn có thể thêm điều khiển và sử dụng IIf trong thuộc tính Nguồn Điều khiển, chẳng hạn như:

=IIf([Khu vực Quốc gia]="Ý", "Tiếng Ý", "Ngôn ngữ khác nào đó")

Khi bạn mở biểu mẫu trong dạng xem Biểu mẫu, điều khiển hiển thị "Tiếng Ý" bất kể khi nào giá trị cho Khu vực Quốc gia là Ý, và "Ngôn ngữ khác nào đó" bất kỳ khi nào Khu vực Quốc gia là bất kỳ giá trị nào khác.

Sử dụng IIf trong các biểu thức phức tạp    Bạn có thể sử dụng bất kỳ biểu thức nào làm bất kỳ thành phần nào của câu lệnh IIf. Bạn cũng có thể "lồng" biểu thức IIf để đánh giá một loạt các biểu thức biểu độc lập. Để tiếp tục với ví dụ trên, bạn có thể muốn kiểm tra một vài giá trị Quốc_gia_Vùng_lãnh_thổ khác, rồi hiển thị ngôn ngữ thích hợp phụ thuộc vào giá trị tồn tại:

=IIf([Khu vực Quốc gia]="Ý", "Tiếng Ý", IIf([Khu vực Quốc gia]="Pháp", "Tiếng Pháp", IIf([Khu vực Quốc gia]="Đức", "Tiếng Đức", "Ngôn ngữ khác nào đó")))

Văn bản "Ngôn ngữ khác nào đó" là đối số falsepart của hàm IIf trong cùng. Vì mỗi hàm IIf được lồng vào là đối số falsepart của hàm IIf có chứa nó, văn bản "Ngôn ngữ khác nào đó" chỉ được trả về nếu tất cả đối số expr của tất cả các hàm IIf đánh giá là Sai.

Ví dụ khác, giả sử bạn làm việc ở thư viện. Cơ sở dữ liệu thư viện có một bảng được đặt tên là Kiểm xuất có chứa một trường, được đặt tên là Ngày Đến hạn, có chứa ngày mà một cuốn sách cụ thể đến hạn phải trả lại. Bạn có thể tạo một biểu mẫu biểu thị trạng thái của một mục được kiểm xuất trong một điều khiển bằng cách sử dụng hàm IIf trong thuộc tính Nguồn Điều khiển của điều khiển đó, như thế này:

=IIf([Ngày Đến hạn]<Ngày(),"QUÁ HẠN",IIf([Ngày Đến hạn]=Ngày(),"Đến hạn hôm nay","Chưa Đến hạn"))

Khi bạn mở một biểu mẫu trong dạng xem Biểu mẫu, điều khiển hiển thị "QUÁ HẠN" nếu giá trị của Ngày Đến hạn thấp hơn ngày hiện tại, "Đến hạn hôm nay" nếu nó bằng với ngày hiện tại, và "Chưa Đến hạn" nếu ngược lại.

Lưu ý: Để sử dụng các toán tử lô-gic như "And" hoặc "Or" trong tham đối expr của hàm IIf, bạn phải đặt biểu thức lô-gic trong hàm Eval. Xem bảng ví dụ sau đây.

Sử dụng IIf trong một truy vấn    

Hàm IIf thường được sử dụng để tạo ra các trường được tính toán trong các truy vấn. Cú pháp cũng giống như vậy, ngoại trừ trong một truy vấn, bạn phải bắt đầu biểu thức bằng một biệt danh trường và dấu hai chấm (:) thay vì dấu bằng (=). Để sử dụng ví dụ trước đó, bạn cần nhập nội dung sau vào hàng Trường của lưới thiết kế truy vấn:

Ngôn ngữ: IIf([Khu vực Quốc gia]="Ý", "Tiếng Ý", "Ngôn ngữ khác nào đó")

Trong trường hợp này, "Ngôn ngữ:" là bí danh trường.

Để biết thêm thông tin về việc tạo truy vấn và các trường được tính toán, xem bài viết Tạo truy vấn chọn đơn giản.

Sử dụng IIf trong mã VBA    

Lưu ý: Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.

Ví dụ này dùng hàm IIf để đánh giá tham số TestMe của thủ tục CheckIt và trả về từ "Lớn" nếu số tiền lớn hơn 1000; nếu không, nó trả về từ "Nhỏ".

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

Các ví dụ khác

Biểu thức

Kết quả

=IIf([Mã Sân bay]="ORD","Chicago",IIf([Mã Sân bay]="ATL","Atlanta",IIf([Mã Sân bay]="SEA","Seattle","Khác")))

Nếu [Mã Sân bay] là "ORD", trả về "Chicago". Nếu không, nếu [Mã Sân bay] là "ATL", trả về "Atlanta". Nếu không, nếu [Mã Sân bay] là "SEA", trả về "Seattle". Nếu không, trả về "Khác".

=IIf([Ngày Vận chuyển]<Ngày(),"Được vận chuyển",IIf([Ngày Vận chuyển]=Ngày(),"Vận chuyển hôm nay","Không được vận chuyển"))

Nếu [Ngày Vận chuyển] trước ngày hôm nay, trả về "Được vận chuyển". Nếu không, nếu [Ngày Vận chuyển] bằng ngày hôm nay, trả về "Vận chuyển hôm nay". Nếu không, trả về "Không được vận chuyển."

=IIf([Ngày Mua]<#1/1/2008#,"Cũ","Mới")

Nếu [Ngày Mua] trước ngày 01/01/08, trả về "Cũ". Nếu không, trả về "Mới."

=IIf(Eval([Volts] Nằm Giữa 12 Và 15 Và [Amps] Nằm Giữa 0,25 Và 0,3),"OK","Ngoài định cỡ")

Nếu [Volts] nằm giữa 12 và 15 và [Amps] nằm giữa 0,25 và 0,3, trả về "OK". Nếu không, trả về "Ngoài định cỡ."

=IIf(Eval([Khu vực Quốc gia] Tại ("Canada","Mỹ","Mexico")),"Bắc Mỹ","Khác")

Nếu [Khu vực Quốc gia] là "Canada", "Mỹ" hoặc "Mexico", trả về "Bắc Mỹ". Nếu không, trả về "Khác".

=IIf([Trung bình]>=90,"A",IIf([Trung bình]>=80,"B",IIf([Trung bình]>=70,"C",IIf([Trung bình]>=60,"D","F"))))

Nếu [Trung bình] là 90 hoặc lớn hơn, trả về "A". Nếu không, nếu [Trung bình] là 80 hoặc lớn hơn, trả về "B". Nếu không, nếu [Trung bình] là 70 hoặc lớn hơn, trả về "C". Nếu không, nếu [Trung bình] là 60 hoặc lớn hơn, trả về "D". Nếu không, trả về "F".

Lưu ý: Nếu bạn đang sử dụng hàm IIf để tạo một trường được tính toán trong một truy vấn, hãy thay dấu bằng (=) bằng biệt danh trường và dấu hai chấm (:). Ví dụ: Trạng thái: IIf([Ngày_Vận_chuyển]<Date();"Đã vận chuyển";IIf([Ngày_Vận_chuyển]=Date();"Vận chuyển hôm nay";"Chưa vận chuyển"))

Phát triển kỹ năng Office của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×