INDIRECT làm việc với tham số mảng? Tất nhiên rồi

Chia sẻ bởi:api_publisher
★★★★★
Quảng cáo

Tóm tắt: Hướng dẫn thực hành Excel, trình bày theo từng bước, có công thức mẫu và lưu ý áp dụng nhanh trong công việc.

Thông thường khi ta viết hàm INDIRECT, chẳng hạn như =INDIRECT(“A1”), hàm sẽ trả về kết quả là giá trị tại ô A1. Điều này rất dễ hiểu phải không nào? Tuy nhiên, khi sử dụng INDIRECT làm việc với tham số mảng với ví dụ =INDIRECT({“A1″;”A2”}), kết quả trả về sẽ là lỗi #VALUE! Rất nhiều người đã mặc định rằng, INDIRECT không làm việc được với tham số mảng. Nhưng điều đó có chính xác không, hãy cùng SprinGo tìm hiểu trong bài viết này nhé.

INDIRECT với mảng

Hãy nhìn hình dưới để có một hình dung cụ thể hơn:

INDIRECT làm việc với tham số mảng? Tất nhiên rồi
Indirect trả về #VALUE! khi làm việc với tham số mảng

Tuy nhiên, nếu ta đặt thêm một số hàm, chẳng hạn như hàm CELL với công thức =CELL(“address”,INDIRECT({“A1″;”A2”})), ta sẽ nhận được kết quả đúng.

INDIRECT làm việc với tham số mảng? Tất nhiên rồi
Hàm CELL sẽ trả về thông tin liên quan tới tham chiếu như địa chỉ ô, nội dung trong ô, độ rộng cột, vị trí hàng…

Tới đây chắc hẳn nhiều bạn sẽ thắc mắc tại sao kết quả của CELL với #VALUE! lại ra được giá trị đúng. Để làm rõ hơn, ta sẽ đi vào từng bước thực thi hàm INDIRECT.

Đầu tiên, khi tính toán với 1 mảng {“A1″;”A2”}, Excel sẽ truyền và tính toán từng giá trị trong mảng vào trong tham số hàm. Trong phiên bản Office 365, với Dynamic array, ta có thể dễ dàng nhìn thấy kết quả đã được tự mở rộng sang ô bên dưới – nói cách khác, hàm INDIRECT đã được thực thi 2 lần bao gồm =INDIRECT(“A1”) và =INDIRECT(“A2”).

Tuy nhiên, kết quả mà hàm INDIRECT trả về không phải là giá trị. Hay nói cách khác, việc trả về giá trị là công việc của Excel, còn hàm INDIRECT thực thi công việc trả về tham chiếu (tương tự với hàm OFFSET sẽ được nói ở bên dưới).

Vậy, mảng mà INDIRECT trả về trông ra sao?

Mảng đối tượng

Bởi Office không phải là phần mềm mã nguồn mở, nên không có cách nào để biết chính xác. Tuy nhiên, nếu biết một chút về lập trình, ít nhiều ta sẽ nghe tới array object. Nếu ta coi mỗi ô là một object, thì kết quả trả về của hàm =INDIRECT({“A1″;”A2”}) có thể được biểu diễn như sau:

{[object_1];[object_2]}

Trong đó, mỗi object sẽ biểu thị 1 ô và gồm một vài cặp thuộc tính – giá trị chẳng hạn như:

{
“address”:$A$1,
“contents”:1,
“row_num”:1,
“row_height”:3,

}

Nếu ta hiểu theo cách này, có thể giả định rằng khi duyệt trả giá trị trong mảng, Excel chỉ trả về được giá trị nếu đó là một mảng giá trị 2 chiều chứ không thể trả về đối tượng (vì không biết nhìn vào thuộc tính nào chăng?). Và đồng thời, trong Excel ta có những hàm sẽ đọc thuộc tính đối tượng như hàm CELL. Từ suy luận này, ta có thêm một số hàm khác như hàm ROW hay COLUMN.

INDIRECT làm việc với tham số mảng? Tất nhiên rồi
Có bao giờ bạn thắc mắc khi hàm ROW hoạt động, làm thế nào để hàm này biết được dòng bao nhiêu chưa?

Mở rộng bài toán, ta đến với trường hợp OFFSET. Theo tài liệu Microsoft, OFFSET sẽ trả về tham chiếu tới vùng, nên ta hoàn toàn có thể tạo ra một mảng gồm nhiều vùng và hiển thị thông tin bằng việc đặt vào trong hàm CELL.

INDIRECT làm việc với tham số mảng? Tất nhiên rồi

Vậy kết luận lại, ta có thể nói rằng: INDIRECT có làm việc với tham số mảng, chỉ là Excel không hiển thị được kết quả như mong muốn mà thôi.


Nếu bạn muốn học thêm những kiến thức về tin học văn phòng cũng như lập trình phục vụ công việc, hãy tham khảo đường link sau: Các khoá học

Tìm hiểu thêm những bài viết liên quan:

Hàm INDIRECT trong Excel kèm ví dụ: https://blog.hocexcel.online/ham-indirect-trong-excel.html

Doanh nghiệp: 0969 798 944 | Cá nhân: 0984 394 338
Địa chỉ: KĐT Vinhome Gardenia Hàm Nghi, Cầu Diễn, Nam Từ Liêm, Hà Nội

Lưu ý:
  • Nội dung nêu trên là phần giải đáp, tư vấn của chúng tôi dành cho khách hàng của SPRINGO. Nếu quý khách còn vướng mắc, vui lòng gửi về Email hrspring.vn@gmail.com.
  • Nội dung bài viết chỉ mang tính chất tham khảo.
  • Điều khoản áp dụng theo Luật tại thời điểm viết bài.
  • Mọi ý kiến thắc mắc về bản quyền của bài viết vui lòng liên hệ qua địa chỉ mail hrspring.vn@gmail.com.
Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm