2 hàm for lồng nhau thì hàm nào chạy trước năm 2024

Vòng lặp for được sử dụng để duyệt qua các phần tử trong một tập hợp. Nó thường được sử dụng khi bạn có một khối câu lệnh cần được thực thi n lần, có nghĩa là bạn biết được số lượng vòng lặp cần thực hiện.

Cấu trúc vòng lặp for trong C

Cú pháp cơ bản của vòng lặp "for" trong C như sau:

for [khởi tạo giá trị biến lặp; điều kiện lặp; cập nhật biến lặp] {
   // statements inside the body of loop
}

  • khởi tạo giá trị biến lặp: Điều này thường là một biến dùng để kiểm soát số lần lặp. Bạn có thể khởi tạo giá trị ban đầu của biến ở đây.
  • điều kiện lặp: Điều kiện được kiểm tra trước mỗi lần lặp. Nếu điều kiện trả về false, vòng lặp sẽ kết thúc.
  • for [int i = 0; i 93,"A",IF[B2>89,"A-",IF[B2>87,"B+",IF[B2>83,"B",IF[B2>79,"B-", IF[B2>77,"C+",IF[B2>73,"C",IF[B2>69,"C-",IF[B2>57,"D+",IF[B2>53,"D",IF[B2>49,"D-","F"]]]]]]]]]]]]

Câu lệnh này vẫn chính xác về mặt chức năng và sẽ hoạt động như dự kiến nhưng có thể mất nhiều thời gian để viết và nhiều thời gian hơn để kiểm tra nhằm đảm bảo rằng câu lệnh thực hiện được những gì bạn mong muốn. Một vấn đề hiển nhiên khác là bạn đã phải nhập điểm và điểm theo chữ cái tương đương bằng cách thủ công. Điều gì sẽ xảy ra khi bạn vô tình tạo lỗi đánh máy? Bây giờ, hãy tưởng tượng bạn đang cố gắng thực hiện điều này 64 lần với các điều kiện phức tạp hơn! Tất nhiên, điều đó là có thể nhưng bạn có thực sự muốn mất công sức như vậy và gặp những lỗi thực sự khó phát hiện có thể gặp không?

Mẹo: Mọi hàm trong Excel đều yêu cầu dấu ngoặc tròn mở và dấu ngoặc tròn đóng []. Excel sẽ cố gắng giúp bạn xác định điểm bắt đầu và kết thúc bằng cách tô màu cho các phần khác nhau trong công thức khi bạn chỉnh sửa công thức. Ví dụ: nếu bạn muốn chỉnh sửa công thức bên trên, khi bạn di chuyển con trỏ qua mỗi dấu ngoặc tròn đóng “]”, dấu ngoặc tròn mở tương ứng sẽ chuyển sang cùng màu. Điều này có thể đặc biệt hữu ích trong các công thức phức tạp lồng nhau khi bạn cố gắng xác định liệu mình có đủ dấu ngoặc tròn tương ứng chưa.

Ví dụ bổ sung

Dưới đây là ví dụ rất phổ biến khi tính toán Tiền hoa hồng Bán hàng dựa theo các mức Doanh thu đạt được.

  • \=IF[C9>15000,20%,IF[C9>12500,17.5%,IF[C9>10000,15%,IF[C9>7500,12.5%,IF[C9>5000,10%,0]]]]]

Công thức này cho biết IF[C9 Lớn Hơn 15.000 thì trả về 20 %, IF[C9 Lớn Hơn 12.500 thì trả về 17,5 %, v.v...

Mặc dù ví dụ này khá giống với ví dụ về Điểm trước đây nhưng công thức này vẫn là một ví dụ tuyệt vời về việc duy trì các câu lệnh IF lớn khó khăn như thế nào – bạn cần làm gì nếu tổ chức của mình quyết định thêm các mức độ bồi thường mới và thậm chí có thể thay đổi các giá trị phần trăm hoặc đô la hiện có? Bạn sẽ phải chịu trách nhiệm xử lý nhiều công việc!

Mẹo: Bạn có thể chèn ngắt dòng vào thanh công thức để dễ đọc các công thức dài hơn. Chỉ cần nhấn ALT+ENTER trước văn bản bạn muốn ngắt sang dòng mới.

Dưới đây là ví dụ về kịch bản tiền hoa hồng với lô-gic không theo thứ tự:

Bạn có thể nhìn thấy lỗi không? So sánh thứ tự của các so sánh Doanh thu cho ví dụ trước đó. Đây là cách so sánh nào? Chính xác, thứ tự này từ thấp đến cao [$5.000 đến $15.000], không thể so sánh được. Nhưng tại sao đó lại là vấn đề quan trọng? Đây là vấn đề quan trọng vì công thức không thể chuyển đánh giá đầu tiên cho mọi giá trị trên $5.000. Hãy tưởng tượng bạn có doanh thu $12.500 – câu lệnh IF sẽ trả về 10 % vì câu lệnh lớn hơn $5.000 và sẽ dừng lại ở đó. Điều này có thể rất nghiêm trọng vì trong rất nhiều tình huống, những loại lỗi này không được thông báo cho đến khi chúng gây ảnh hưởng tiêu cực. Vì vậy, khi biết rằng có một số bẫy nghiêm trọng với các câu lệnh IF phức tạp lồng nhau, bạn có thể làm gì? Trong hầu hết các trường hợp, bạn có thể sử dụng hàm VLOOKUP thay vì tạo công thức phức tạp bằng hàm IF. Khi sử dụng hàm VLOOKUP, trước tiên, bạn cần tạo bảng tham chiếu sau:

  • \=VLOOKUP[C2,C5:D17,2,TRUE]

Công thức này cho biết có thể tìm giá trị ở ô C2 trong dải ô C5:C17. Nếu tìm thấy giá trị thì trả về giá trị tương ứng từ cùng một hàng trong cột D.

  • \=VLOOKUP[B9,B2:C6,2,TRUE]

Tương tự, công thức này tìm giá trị ở ô B9 trong dải ô B2:B22. Nếu tìm thấy giá trị thì trả về giá trị tương ứng từ cùng một hàng trong cột C

Lưu ý: Cả hai hàm VLOOKUP này đều sử dụng tham đối TRUE ở cuối công thức, nghĩa là chúng tôi muốn các hàm này tìm một giá trị tương đối khớp. Nói cách khác, hàm sẽ khớp các giá trị chính xác trong bảng tra cứu cũng như mọi giá trị nằm trong khoảng này. Trong trường hợp này, bạn cần sắp xếp các bảng tra cứu theo thứ tự Tăng dần, từ nhỏ nhất đến lớn nhất.

VLOOKUP được trình bày chi tiết hơn ở đây, nhưng điều này chắc chắn đơn giản hơn nhiều so với câu lệnh IF lồng 12 mức, phức tạp! Có những lợi ích khác ít rõ ràng hơn như sau:

  • Bảng tham chiếu VLOOKUP rất rõ ràng và dễ xem.
  • Có thể dễ dàng cập nhật các giá trị trong bảng và bạn không bao giờ phải chỉnh sửa công thức nếu các điều kiện thay đổi.
  • Nếu bạn không muốn mọi người xem hoặc can thiệp vào bảng tham chiếu của mình, chỉ cần đặt bảng tham chiếu vào một trang tính khác.

Bạn có biết?

Hiện có một hàm IFS có thể thay thế nhiều câu lệnh IF lồng nhau bằng một hàm duy nhất. Vì vậy, thay vì ví dụ của chúng tôi về các điểm ban đầu chứa 4 hàm IF lồng nhau:

Chủ Đề