Cách nói sử dụng hàm rẻ nhánh không đúng lắm, vì chính xác nó là hàm điều kiện (conditional function). Theo tôi biết gồm có 3 hàm: IF, SWICTH, CHOOSE. Cả 3 hàm này đều sử dụng được trong excel và access. Riêng hàm IF thì trong access chuyển thành IIF (có lẽ để tránh nhầm lẫn khi sử dụng câu lệnh SQL trong VBA).
Cấu trúc hàm:
1/- IF(kiểm tra điều kiện đúng, [giá trị trả về nếu đúng], [giá trị trả về nếu sai]), <trong access IIF(kiểm tra điều kiện đúng, [giá trị trả về nếu đúng], [giá trị trả về nếu sai])>
Ví dụ: Hàm IF (IIF) đã quá quen thuộc tôi xin không nói gì thêm.
2/- SWITCH (
Điều kiện kiểm tra, Giá trị để so khớp1 ... [2-126], Giá trị trả về nếu có kết quả khớp1 ... [2-126], Giá trị trả về nếu không có kết quả phù hợp) <Hàm SWITCH chỉ xử lý tối đa 126 trường hợp>
Ví dụ: SWITCḤ(
ĐK,"đói",
"ăn", "
Khát",
"Uống",
"Mệt",
"Ngủ",
"Đi chơi")
Các trường hợp giá trị
Điều kiện kiểm tra sẽ được trả về giá trị kết quả nằm kế tiếp.
Giạ́ trị ô điều kiện = 1 kết quả trả về A, = 2 kết quả trả về B, nếu khác sẽ trả về C.
Chú ý: Cú pháp trong access sẽ khác hơn SWITCḤ(
ĐK =
"đói",
"ăn",
ĐK = "
Khát",
"Uống",
ĐK ="Mệt",
"Ngủ"), access buột mỗi điều kiện phải có 1 đối số kết quả, không có đối số ngoại lệ. tên field điều kiện được đưa vào từng điều kiện kiểm tra. Các giá trị không nằm trong điều kiện sẽ trả về null
3/- CHOOSE (Vị trí chỉ mục, giá trị1, [giá trị2], ...) <Hàm CHOOSE xử lý tối đa 254 giá trị chỉ mục>
Nếu ta sử dụng bảng excel trên thay hàm SWITCḤ bằng hàm CHOOSE và giữ nguyên đối số ta có kết quả như sau:
Cần phải xác định giá trị của các ô trên column E nhằm xác định kết quả gọi các giá trị từ function [=CHOOSE(E2;1;"A";2;"B";"C")], trong đó E2 là vị trí của các đối số kết quả 1 <Vị trí 1>,"A" <Vị trí 2>,2 <Vị trí 3>,"B" <Vị trí 4>,"C" <Vị trí 5>, Nếu giá trị E2 khác các số 1,2,3,4,5 sẽ báo lỗi <#VALUE!> vì không tìm được giá trị tham số.
Hàm CHOOSE ít khi được sử dụng trong access vì giá trị kết quả phải đưa cố định vào công thức điều gần như tối kỵ của các tay viết phần mềm.
Những thành viên mới từ excel chuyển sang access do thói quen sử dụng function mang từ excel sang rất dễ bị gò bó bởi các công thức hệ thống. Khi quen dần với VBA sẽ thích xử lý bằng VBA hơn, Khi cần có khi tự tạo ra function (user function) phù hợp và gọn nhẹ hơn nên cũng ít khi dùng function của hệ thống. Có khoảng 70% function của excel dùng được trong access, nhưng chỉ khoảng 10% được thường xuyên sử dụng. trong khi đó số function tự tạo lớn hơn gấp nhiều lần. Thay gì dùng các hàm IIF, SWITCH, CHOOSE người ta sử dụng các cấu trúc lệnh IF...THEN, SELECT ...CASE, họa hoằng mới dùng DLOOKUP(). Thực ra nếu xử lý khoá chính, khóa ngoại cho các table một cách đầy đủ và hợp lý thì tự thân nó cho ra giá trị kết quả mà không cần sử dụng đến hàm.
* Thấy có mấy ngưới Nga tham gia forum mà không biết tiếng Nga