Tôi Rút Gọn Công Thức Excel Từ 15 Dòng Xuống 3 Dòng Nhờ Hàm SWITCH

Công thức xếp hạng nhân viên của tôi từng là cơn ác mộng. 15 dòng IF lồng nhau với các dấu ngoặc đơn rối rắm, mỗi lần chỉnh sửa tốn 10 phút tìm đúng vị trí ngoặc đóng. Một ký tự nhầm ở dòng 8 khiến toàn bộ công thức trả về lỗi. Giờ đây cùng một logic đánh giá, tôi chỉ cần 3 dòng gọn gàng nhờ hàm SWITCH.

IF lồng nhau là thủ phạm làm công thức phình to

Bảng đánh giá nhân viên của tôi có 5 mức điểm từ 1 đến 5, mỗi mức tương ứng một xếp loại khác nhau. Với hàm IF, tôi phải viết:

=IF(A2=1,"Xuất sắc",IF(A2=2,"Tốt",IF(A2=3,"Đạt yêu cầu",IF(A2=4,"Cần cải thiện",IF(A2=5,"Kém","Không hợp lệ")))))

Đếm 5 lần IF và 5 cặp ngoặc đơn chỉ cho một bảng xếp hạng đơn giản. Mỗi khi thêm mức điểm mới, tôi phải lồng thêm một tầng IF với đủ ngoặc đóng đúng vị trí. Excel thậm chí không highlight ngoặc tương ứng khi công thức quá dài.

Vấn đề thực tế:

  • Sửa một điều kiện ở giữa phải đếm 7-8 ngoặc
  • Copy công thức sang ô khác hay bị thiếu ngoặc
  • Đồng nghiệp đọc không hiểu logic đang làm gì
  • Thêm điều kiện mới mất 5 phút thay vì 30 giây

Công thức dài 15 dòng khi format lại để dễ đọc. Phần tệ nhất là khi có lỗi, Excel chỉ báo “Lỗi công thức” mà không chỉ chính xác chỗ nào sai.

Cú pháp SWITCH đơn giản hơn nhiều

Hàm SWITCH so sánh một giá trị với danh sách các trường hợp và trả về kết quả tương ứng. Cấu trúc cơ bản:

=SWITCH(biểu_thức, giá_trị1, kết_quả1, giá_trị2, kết_quả2, ..., giá_trị_mặc_định)

Các thành phần:

  • biểu_thức: Giá trị cần kiểm tra (ví dụ ô A2)
  • giá_trị1, giá_trị2: Các trường hợp để so sánh
  • kết_quả1, kết_quả2: Kết quả trả về khi khớp
  • giá_trị_mặc_định: Trả về khi không có trường hợp nào khớp

Công thức xếp hạng nhân viên bây giờ chỉ cần:

=SWITCH(A2, 1, "Xuất sắc", 2, "Tốt", 3, "Đạt yêu cầu", 4, "Cần cải thiện", 5, "Kém", "Không hợp lệ")

Không có ngoặc lồng nhau. Không cần đếm IF. Đọc từ trái sang phải theo logic tự nhiên: nếu A2 bằng 1 thì xuất sắc, bằng 2 thì tốt, cứ thế tiếp tục. Thêm mức điểm mới chỉ cần gõ thêm hai đối số vào cuối trước giá trị mặc định.

XEM THÊM:  Cách Tôi Giảm Độ Phức Tạp Công Thức Excel Xuống Một Nửa Với Hàm LET

Chuyển đổi từ IF sang SWITCH trong 3 bước

Bước 1: Xác định biểu thức chung

Nhìn vào công thức IF lồng nhau, tìm giá trị được kiểm tra lặp đi lặp lại. Trong ví dụ trên là ô A2 xuất hiện 5 lần. Đây sẽ là đối số đầu tiên của SWITCH.

Bước 2: Liệt kê các cặp điều kiện và kết quả

Ghi ra từng điều kiện theo định dạng: giá_trị, kết_quả. Với bảng xếp hạng:

  • 1, “Xuất sắc”
  • 2, “Tốt”
  • 3, “Đạt yêu cầu”
  • 4, “Cần cải thiện”
  • 5, “Kém”

Bước 3: Ghép lại với giá trị mặc định

Viết công thức SWITCH với biểu thức ở đầu, theo sau là các cặp giá trị kết quả, cuối cùng là giá trị mặc định cho trường hợp không khớp.

Công thức IF 200 ký tự rút xuống còn 110 ký tự với SWITCH. Thời gian sửa đổi từ 5 phút xuống 30 giây. Tỷ lệ lỗi ngoặc giảm 100 phần trăm vì không còn ngoặc lồng nhau.

Ví dụ thực tế với mã sản phẩm

Bảng tính kho hàng của tôi dùng mã viết tắt cho từng loại sản phẩm. Trước đây cần IF lồng nhau dài 12 dòng để chuyển mã thành tên đầy đủ. Với SWITCH, công thức gọn hơn 70 phần trăm:

=SWITCH(B2, "DT", "Điện thoại", "LT", "Laptop", "TB", "Máy tính bảng", "PK", "Phụ kiện", "Không xác định")

Khi thêm loại sản phẩm mới, chỉ cần thêm mã và tên vào giữa công thức. Không phải đếm tầng IF hay lo thiếu ngoặc. Đồng nghiệp nhìn vào hiểu ngay logic đang làm gì.

Ứng dụng khác:

  • Chuyển đổi số tháng thành tên tháng
  • Gán phòng ban theo mã nhân viên
  • Chuyển mã trạng thái thành văn bản mô tả
  • Tính phí ship theo mã vùng

Mỗi trường hợp này với IF lồng nhau đều cần 8 đến 15 dòng. Với SWITCH giảm xuống 2 đến 4 dòng với cùng chức năng.

XEM THÊM:  Cách Sử Dụng Hàm NOT Để Đảo Ngược Điều Kiện Logic Trong Excel

Kết hợp SWITCH với các hàm khác

Hàm SWITCH trở nên mạnh mẽ khi kết hợp với TODAY và DAYS để phân loại ngày. Tôi có bảng tính theo dõi deadline dự án với công thức:

=SWITCH(DAYS(TODAY(),C2), 0, "Hôm nay", 1, "Hôm qua", -1, "Ngày mai", "Khác")

DAYS tính số ngày giữa hôm nay và ngày deadline trong ô C2. Kết quả là 0 cho hôm nay, 1 cho hôm qua, âm 1 cho ngày mai. SWITCH nhận kết quả này và trả về nhãn phù hợp.

Kết hợp với RIGHT để xử lý chuỗi:

Danh sách mã đơn hàng có định dạng 85-HN cho Hà Nội, 85-SG cho Sài Gòn, 85-DN cho Đà Nẵng. Hàm RIGHT lấy 2 ký tự cuối, SWITCH chuyển thành tên thành phố đầy đủ:

=SWITCH(RIGHT(A2,2), "HN", "Hà Nội", "SG", "Sài Gòn", "DN", "Đà Nẵng", "Không rõ")

Lồng trong IF để thêm điều kiện:

Khi cần kiểm tra điều kiện bổ sung trước khi dùng SWITCH:

=IF(A2>5, "Ngoài phạm vi", SWITCH(A2, 1, "Xuất sắc", 2, "Tốt", 3, "Đạt yêu cầu", 4, "Cần cải thiện", 5, "Kém"))

Công thức này kiểm tra xem A2 có lớn hơn 5 không. Nếu có, trả về thông báo lỗi. Nếu không, dùng SWITCH để xếp hạng bình thường.

Giới hạn cần biết

SWITCH không thể thay thế IF trong mọi trường hợp. Hàm này chỉ so sánh bằng chính xác, không hỗ trợ toán tử so sánh như lớn hơn hoặc nhỏ hơn.

Ví dụ không dùng được SWITCH:

=IF(A2<60, "Trượt", IF(A2<75, "Trung bình", IF(A2<85, "Khá", "Giỏi")))

Công thức này so sánh khoảng giá trị với dấu nhỏ hơn. SWITCH không làm được vì cần so sánh chính xác 60, 75, 85 chứ không phải tất cả giá trị trong khoảng.

Các trường hợp khác cần dùng IF:

  • So sánh hai ô với nhau (A2 lớn hơn B2)
  • Kiểm tra ô có rỗng hay không
  • Kết hợp nhiều điều kiện với AND hoặc OR
  • So sánh chuỗi chứa ký tự đại diện

Giới hạn kỹ thuật:

Hàm có tối đa 254 đối số, nghĩa là 126 cặp giá trị và kết quả cộng biểu thức và giá trị mặc định. Trong thực tế hiếm khi cần nhiều hơn 20 cặp. Nếu vượt quá, nên cân nhắc dùng VLOOKUP hoặc XLOOKUP với bảng tra cứu riêng.

XEM THÊM:  Nắm Vững Hàm FALSE Trong 5 Phút Với Ví Dụ Thực Tế

Hàm SWITCH trả về lỗi #N/A khi không có giá trị nào khớp và không có giá trị mặc định. Luôn thêm đối số cuối cùng cho trường hợp không khớp để tránh lỗi này.

Tương thích và phiên bản

Hàm SWITCH có sẵn trong Excel 2019, Excel 2021, và Microsoft 365. Các phiên bản cũ hơn như Excel 2016 và Excel 2013 không hỗ trợ hàm này. Người dùng Mac với Excel 2016 cũng không có SWITCH.

Nếu chia sẻ file với người dùng phiên bản cũ, công thức SWITCH sẽ hiển thị lỗi #NAME trên máy họ. Trong trường hợp này cần quay lại dùng IF lồng nhau để đảm bảo tương thích.

Cách kiểm tra phiên bản:

File > Tài khoản > Thông tin về Excel hiển thị phiên bản và số build. Nếu thấy Excel 2019, 2021, hoặc Microsoft 365 thì SWITCH hoạt động bình thường.

Lựa chọn thay thế:

Với Excel 2016 trở xuống, cân nhắc dùng VLOOKUP với bảng tra cứu thay vì IF lồng nhau. Tạo bảng hai cột với giá trị cần so sánh ở cột đầu và kết quả ở cột hai, sau đó dùng VLOOKUP tham chiếu đến bảng này. Công thức vẫn gọn hơn IF lồng nhau và dễ bảo trì hơn.

Năng suất tăng đo được cụ thể

Sau khi chuyển sang SWITCH cho 5 bảng tính chính, tôi tiết kiệm 2 giờ mỗi tuần. Thời gian sửa công thức giảm từ trung bình 5 phút xuống 30 giây cho mỗi lần chỉnh sửa. Tỷ lệ lỗi ngoặc thiếu giảm từ 40 phần trăm xuống 0 phần trăm.

Công thức ngắn hơn cũng giúp file Excel mở nhanh hơn. Bảng tính 5000 dòng với IF lồng nhau trước đây tốn 8 giây tính toán lại. Sau khi đổi sang SWITCH, thời gian này giảm xuống 3 giây. Excel 2019 trở lên tối ưu hóa SWITCH tốt hơn IF lồng nhau.

Đồng nghiệp giờ có thể đọc và sửa công thức của tôi mà không cần hỏi. Tài liệu hướng dẫn cho người mới giảm từ 3 trang xuống 1 trang vì SWITCH dễ giải thích hơn nhiều so với IF lồng 5 tầng.

Hàm SWITCH làm việc với Excel hiện đại từ 2019 trở lên. Nếu bạn vẫn dùng IF lồng nhau cho logic đơn giản, đây là lúc nên thử SWITCH. Bắt đầu với công thức nhỏ có 3 đến 5 điều kiện để làm quen. Khi thành thạo, áp dụng cho các công thức phức tạp hơn sẽ thấy rõ sự khác biệt về tốc độ làm việc.

Related Posts

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *