Menu

Thắc mắc về cách sử dụng hàm CHOOSE để trả về giá trị theo thứ tự

Liên Hạo Tâm 11/06/2026 02:34 370 lượt xem 3 trả lời

Chào các bác, dạo này em đang vật lộn với một bài toán khá khoai trong Excel mà không biết dùng hàm nào cho hợp lý.

Chuyện là em có một danh sách các mặt hàng, và em muốn dựa vào một con số thứ tự (ví dụ: 1, 2, 3...) để hiển thị tên mặt hàng tương ứng. Ví dụ:

  • Nếu nhập số 1 thì hiển thị 'Táo'
  • Nếu nhập số 2 thì hiển thị 'Cam'
  • Nếu nhập số 3 thì hiển thị 'Chuối'
  • ... và cứ thế tiếp tục.

Em có thử dùng IF lồng nhau nhưng nó dài quá và khó quản lý nếu danh sách mặt hàng lên tới vài chục.

Tình cờ em đọc được đâu đó về hàm CHOOSE, có vẻ nó sinh ra để làm việc này. Cú pháp của nó là:

CHOOSE(index_num, value1, [value2], ...)

Nhưng em vẫn chưa hình dung rõ lắm cách áp dụng nó vào trường hợp của em. Ví dụ, nếu em có danh sách mặt hàng ở 3 ô liền nhau (A1, A2, A3) và em muốn nhập số thứ tự vào ô B1 để nó trả về tên mặt hàng tương ứng, thì công thức sẽ như thế nào ạ?

Có cao nhân nào chỉ giáo cho em cách dùng hàm CHOOSE hoặc có cách nào khác tối ưu hơn không ạ? Em cảm ơn!

1

Chào bạn,

Mình hiểu vấn đề bạn đang gặp phải. Dùng IF lồng nhau với danh sách dài thực sự rất mệt mỏi. Hàm CHOOSE mà bạn đang tìm hiểu đúng là một giải pháp tuyệt vời cho trường hợp này đấy.

Cú pháp của CHOOSE là: CHOOSE(index_num, value1, [value2], ...)

Trong đó: index_num: Là con số thứ tự bạn nhập vào (ví dụ: 1, 2, 3...). value1, value2, ...: Là các giá trị tương ứng mà bạn muốn trả về.

Ví dụ, với danh sách 'Táo', 'Cam', 'Chuối', bạn có thể dùng công thức: =CHOOSE(A1, "Táo", "Cam", "Chuối") Nếu bạn nhập số 1 vào ô A1, kết quả sẽ là "Táo". Nhập 2 sẽ là "Cam", nhập 3 sẽ là "Chuối".

Hàm này rất gọn gàng và dễ đọc, đặc biệt khi danh sách của bạn dài hơn. Bạn có thể áp dụng nó trực tiếp cho danh sách mặt hàng của mình mà không cần IF lồng nhau nữa.

Chúc bạn thành công!

5

Hàm CHOOSE đúng là "cứu cánh" cho trường hợp này. Bạn dùng nó rất chính xác rồi đó.

Nếu danh sách mặt hàng của bạn nằm sẵn trong một vùng dữ liệu khác, ví dụ từ B1:B10, bạn có thể kết hợp CHOOSE với INDIRECT để công thức còn gọn hơn nữa, không cần gõ từng tên mặt hàng vào công thức.

Ví dụ: =CHOOSE(A1, INDIRECT("B1"), INDIRECT("B2"), INDIRECT("B3"))

Bạn thử xem có áp dụng được không nhé!

1

Hay quá, mình cũng vừa vật lộn với việc này hôm qua! Hàm CHOOSE đúng là giải pháp gọn gàng thật.

Mình có một ý nhỏ, không biết có tiện hơn không: nếu danh sách mặt hàng của bạn đã có sẵn trong một cột khác, bạn có thể dùng CHOOSE kết hợp với OFFSET hoặc INDEX để lấy dữ liệu trực tiếp từ cột đó. Ví dụ, nếu tên mặt hàng nằm từ B1 đến B10, bạn có thể thử:

``html =CHOOSE(A1, INDEX($B$1:$B$10, 1), INDEX($B$1:$B$10, 2), ...) `

Hoặc thậm chí còn ngắn gọn hơn nữa với OFFSET:

`html =CHOOSE(A1, OFFSET($B$1, 0, 0), OFFSET($B$1, 1, 0), ...) ``

Cách này giúp bạn đỡ phải gõ tay từng tên mặt hàng vào công thức, nhất là khi danh sách dài. Bạn thử xem sao nhé!

2

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký