Tham chiếu vùng dữ liệu bằng tên của vùng (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

milan061084

Thành viên chính thức
Tham gia
4/1/09
Bài viết
70
Được thích
18
Em có một vấn đề thế này, mong các bác giúp cho.
Trong file của em có các vùng dữ liệu với kích thước giống hệt nhau (bôi màu vàng trắng xem kẽ, 3x4), mỗi vùng được đặt tên tương ứng. Cạnh đó, có một vùng trống (xanh lá cây) với kích thước bằng đúng kích thước các vùng dữ liệu nói trên. Trong ô màu đỏ, em sẽ chọn tên của vùng.
Và điều em mong muốn là: khi tên vùng được chọn trong cell màu đỏ, dữ liệu của vùng có tên đó sẽ hiện ra ở vùng màu xanh lá cây.
Nếu cần macro xin các bác giúp đỡ, em mới học VBA, việc này quá sức em. Em xin cám ơn ạ!
 
........................
Và điều em mong muốn là: khi tên vùng được chọn trong cell màu đỏ, dữ liệu của vùng có tên đó sẽ hiện ra ở vùng màu xanh lá cây.
Nếu cần macro xin các bác giúp đỡ, em mới học VBA, việc này quá sức em. Em xin cám ơn ạ!
Bài này dùng hàm Index và Indirect, bạn xem file đính kèm nhé!
 

File đính kèm

Cái này không cần dùng đến Name sẵn có của các vùng
Công thức tại ô I1. Bạn copy kéo qua và xuống cho các ô khác :
PHP:
=INDEX($D$1:$F$12,ROW()+IF($L$1="a",0,IF($L$1="b",4,8)),COLUMN(A:A))
 

File đính kèm

Lần chỉnh sửa cuối:
Cải tiến một chút để không phụ thuộc vào nơi xuất dữ liệu ra.
=INDEX(INDIRECT($L$1),ROWS($1:1),COLUMN($1:1))
Sau đó Copy Down (Ctrl+D) và Copy Right (Ctrl+R)
 
Đa tạ các bác đã giúp đỡ. Xong quả này, công việc của em sẽ rút ngắn nhiều lắm. Cảm ơn các bác một lần nữa ạ.
 

File đính kèm

Cải tiến một chút để không phụ thuộc vào nơi xuất dữ liệu ra.

Sau đó Copy Down (Ctrl+D) và Copy Right (Ctrl+R)
Bác ơi, em thấy công thức này không thay đổi cột được, vẫn giữ nguyên cột 1+-+-+-+.
Em thay đổi như bác hoangdanh282vn thì OK
=INDEX(INDIRECT($L$1),ROWS($1:1),COLUMN(A:A))
 
Bác ơi, em thấy công thức này không thay đổi cột được, vẫn giữ nguyên cột 1+-+-+-+.
Em thay đổi như bác hoangdanh282vn thì OK
=INDEX(INDIRECT($L$1),ROWS($1:1),COLUMN(A:A))
Sorry bạn, chữ "Column" trong công thức của mình đúng ra phải thêm "S" vào nữa mới đúng, giống như chữ ROW phải có S. Do gõ phím bị nhầm. Cảm ơn bạn.
=INDEX(INDIRECT($L$1),ROWS($1:1),COLUMNS($1:1))
 
Bác ca_dafi cho em hỏi với: em dùng Excel 2003, khi gõ công thức COLUMNS() thì nó luôn ra 256 với mọi array. Em thử mãi mà nó vẫn ra vậy.
Cám ơn bác
 
Bác ca_dafi cho em hỏi với: em dùng Excel 2003, khi gõ công thức COLUMNS() thì nó luôn ra 256 với mọi array. Em thử mãi mà nó vẫn ra vậy.
Cám ơn bác
Xin lỗi bạn, mình uống nhầm thuốc rồi, dạo này sao tự dưng ngớ ngẩn quá +-+-+-+! Công thức của mình dùng columns($1:1) là sai, dùng Column(A:A) mới đúng.

Cảm ơn bạn nhiều lắm.
 
Xin lỗi bạn, mình uống nhầm thuốc rồi, dạo này sao tự dưng ngớ ngẩn quá +-+-+-+! Công thức của mình dùng columns($1:1) là sai, dùng Column(A:A) mới đúng.

Cảm ơn bạn nhiều lắm.
Cho em hỏi chút - trong trường hợp số lượng dòng cho mỗi loại dữ liệu khác nhau và dữ liệu phân tán (không nằm cùng khối) thì có xử lý được bằng công thức trên không ah?
 
Web KT

Bài viết mới nhất

Back
Top Bottom