Bài viết: Offset truyền kỳ (kỳ 2)

Liên hệ QC

TranThanhPhong

Ngày mai trời lại sáng!
Thành viên danh dự
Tham gia
16/3/07
Bài viết
2,104
Được thích
19,156
Giới tính
Nam
Kỳ 2: Offset và Validation List

a. Có bao giờ bạn muốn tạo một Validation List mà nội dung của nó thay đổi theo sự thay đổi của một List khác (danh sách). Bài viết này sẽ hướng dẫn từng bước cách làm:

Giả sử bạn có danh sách gồm 2 cột: OS (hệ điều hành) và Versions (Phiên bản) (Xem file đính kèm). Bây giờ bạn muốn tạo một Validation List để khi tại ô G3 ta chọn một OS nào đó thì danh sách trong ô H3 sẽ chỉ hiển thị các Versions của OS mà ta đang chọn (xem hình 6).

51EwRpM3xLBph2n26GwV90uM1qQyGZL2JitUmsqq9l97C7os7xmw2lxFrIjjyM8dw2TuRynbW0jm8S7wP2HzQP07In40MiuXUx-vDhUBhhBQvpsIrHnUHYxPPgsdq96_esPhZwAIcbtEHZSGUKRbZGL5M8RMRLCSLk66Bem7fGrhMceo_n-OzuEc-7hjE04pRTY-KQ5UlvDyBEWbXJBpKgxR7OKXd5oI_x1HrFoK_XrdEaLpJCtQbB069qaULghedFEx3Q-kj_bZUhO2mO9aLCMnqqp3iQcNQPPPHRKKNP2CyDYSGdwbgJSjZ76PBRSs2ukTTeNahw3mxiNV1I2rZV6LeBljItdGeKV_dBj7rmCRv3wNR7CrUd05GUwK9sKsLyxzzKfqePoTsk8aEaKth-dfbECDd_5rr1id0grcp8joFOWURMxiTncaQD2ndHL7aufUdui9zWfhwps-BL_OVJqkNBCInM_FRpit34BZH-JXV-swBgWyV4B83XwZUobO-3QHeJTE3iHxb9-UwzYft5iSh2o_rvMMiKp_nxTBq1DZpL1KhaGX69-zMdS20woXCKdXTwhqlhPQQAYO3O46kzk9XTymHMQFjaFqn8vt892MnxM4ZNtW=w530-h221-no


Qui trình thực hiện:

B1. Tạo một danh sách A1:B34 (xem file đính kèm), với 2 cột OS và Versions. Lưu ý một OS có thể có nhiều Version.

B2. Đặt tên cho vùng A2:A34 với tên là "OS". Bạn quét chọn vùng A2:A34 | nhấn tổ hợp <Ctrl+F3> | Chọn New… gõ OS vào hộp Name, chọn Scope là Worksheet Offset2 hoặc Workbook đều được và tại Refers to gõ vào =A2:A34 | Nhấn nút OK (Excel 2007). Nếu dùng các phiên bản Excel trước thì sau khi nhấn <Ctrl+F3> là có thể khai báo việc đặt tên vùng và sao đó nhấn nút Add để hoàn thành.

CC_hW-gxRpErrs8k0uurtfm1S0yx_P-VN5hWPw9GuxFWeA0Ds2APZYoJDSKyYfdlpmIJA3qjFtNa8jEblPI7wdwVXxzppALUF3quhF4ZwgewU_CErVaYMJCHKtUQ8Wzq0D1x1WFUsl46H4iL6OqIH_7PNw8DlvQwunbLGVtziEkdjlHtlDmTFPzAIiIzfWcpZUMlh8pHNhNatmWaGiW8KJ5kSU1emB5xk1b-te9dBW66umXMX2JkmM92v-PCPzylPOM3XEiV4CUyWqOFZlBIkoQZ4zTlBmlemCvZGvxBdKmZ5m4ISFWALrlAJnXQ4axKNjakHVnmUGH1Jj9-W93XeIyvGVf7N7LM3cDyJL2ICXznC9yvL7ZL8Xz4Yb2JESHDw_-p3NBEmLXbOHpoABdSNV6Jy_JDj7yMr74ug7TJMFjBzfUBO1SCZtFigvndPvGFTlQCWhtHYPYQWMuih4XWlahifWOzIGUcaR_h61DpwU1Eul8e7yiqd62rMMfKdV-KdFibjdjREToRBx-WoL-0X3cvvJ7HuP3GWvbD1KNN2bEd6qFfUosvbbMn1ggWcksLj-exM1zA0NcwUjCsbJndxLEVcdkdV92lUtmNjfrAoJ3cpiBUqWZK=w719-h284-no


B3. Tạo một danh sách chứa tên các hệ điều hành được trích ra từ cột OS (danh sách này không trùng lặp). Bạn quét chọn các ô D2:D34 dùng để chứa danh sách kết quả trích lọc không trùng | nhập vào công thức mảng trích lọc sau:

=IF(ISERR(INDEX(OS,SMALL(IF(MATCH(OS,OS,0)=ROW(INDIRECT("1:"&ROWS(OS))), MATCH(OS,OS,0),""),ROW(INDIRECT("1:"&ROWS(OS)))))),"",
INDEX(OS,SMALL(IF(MATCH(OS,OS,0)=ROW(INDIRECT("1:"&ROWS(OS))), MATCH(OS,OS,0),""),ROW(INDIRECT("1:"&ROWS(OS))))))

Kết thúc công thức bằng tổ hợp phím <Ctrl+Shift+Enter>. Công thức trên sẽ trích ra các loại hệ điều hành (OS) và mỗi loại chỉ lấy một lần, các dòng trùng sẽ thay bằng "".

g1pBgC8Pk3USENtJPaAdHH3-ITB2Qfii2mClHqzb_3DGpTZnRtbK6SJ9CiQy6wJdWISPRIN9EFQUgfSBPZeuSXbGTqwfi-WZJrP4Zah-kC_16twE3tYmrR3er02_9_ZxsShuTbt3YfIqBijGyxE39J6ruHqws8YJtz0wr6kvmrn__-ZhOXI4rBGIG87q_BcUOyARgVVkGhdaBh3VISzCjUV173FvYRQBlMQqnNP1PYdHLCJlzp0L21HVuIRoXHGQAiCilsIaNLi6A7nQ-KUfeb9qq4JLNKDZcNSnc9IYidA_dSLdCli8Lxx80h3mI0w24ptNAoL5NU5-eU_631pJqjyO7RAgfjKfqaz7X4q4VrdSPDrJmhNMMk2TZKMOZISClA1s3nrjtoBYKbs63QVO3afY4KIw4BR7UU25QnNjfyZ1MRfzW5wW3gl0giiWOabVeLcGbyx8QCuf6dxfpV9C_RmcJWdac7fs84Gb5DKHfauF9WAGUZVk4GHGEf9iOQQ83ZeGdXV3sYzHike2QdqxNsL2EhqT8kosyRmuab-Qbw5Bz-a9JQvq6TiX_6-oZmn4-mSxBDMJ4jgALhCN_WIpsPYkZVLKF7xT6m7pKDRTbt2izSngF7Bh=w512-h272-no


B4. Sau khi đã có danh sách các OS duy nhất, bạn hãy đặt tên cho danh sách này. Lưu ý, có khả năng có những loại OS khác do vậy ở đây khi đặt tên là dùng hàm Offset để tham chiếu đến vùng dữ liệu động.

Bạn nhấn <Ctrl+F3> | Chọn New… | đặt tên cho vùng là OSValList tại Name | tại Refers to nhập vào công thức sau;
=OFFSET(Offset2!$D$2,0,0,COUNTA(Offset2!$D$2:$D$34)-COUNTIF(Offset2!$D$2:$D$34,""),1)

Công thức trên giúp trả về vùng tham chiếu các OS duy nhất một cách động.

Qjd7y7m6uMx9JY3l6akfNmTnHOqKVoXPg3ybEd2KGVINTyoUF0-lNGMIky3BrDN0QTc_K-kAAXk2rhscf7HawSIhUuMO-sqAJGRTK3SGBwySXzFGP9l0bBzL5QjoxTYyFcAftobL9U507ccbdI3mZZ8RrGENO7sn9gcvZ2Mo3HeiMwPhAQcjHqRpCyCF_S0iPcoysh06l6wIKTl8kv76teQBbifH2JAUaS_UJapLe9IghLySSav4BioLT4xid4DDLPhbraRc6x2rZwKXdu48F5RWiRYOCk1k_3nFDSMxg_fDgOLl9PMt3xmRjmok0_kLHvzmpsOGTQZzvEWPQMHKBjuaolxNZZMyBo3x2VEFZPrbe8TNUYOAAQZs3RPa21Ux4g33vFE_VvYUD2OcNps3T96ofoC81qwlTSfna1CdGj6qXKpIhNuNyk5Nb3Vp_jqR9nH48Gq0mHWVUeKLEFneAcY4GDpleQs8mAFto5-Zbewz30X4XUJyt1sWrIakkN-rBLiomNZZcY2w62_KcD9caf4RpDw8PYNGn83O2nkPUunnDcLPGkhCBNpOP6FCNPA-I8gVulw3bLHjO2TRRM5X7ktojK7GyAQZYIbjPRqMD9cgF17rxAwX=w574-h482-no


B5. Tạo bảng nhỏ như hình bên dưới. Chọn ô G3 và đặt tên là Val1Cell, chọn ô H3 đặt tên là Val2Cell (theo cách đặt tên nêu trên hoặc có thể đặt tên bằng cách gõ trực tiếp vào Name Box).

qTsVBLnt4l3HiZCjMGO0joJjrpeO_cjeqnfVeVPazopeNzUCPRu0Acsh6ynqlhhaKlff6jcJqSzX4DGz0WwXRSugsbzo0QvYZ_Peu0iACcDA_wEALKhOuyrWGq6rYeerFQWo_URlQlReJ4BNoUy_1dr7tNdrFrGKqY9BgtAbb3GGW9KUH31MQxA5axL3Uazf86X0Kexrhn_IO50ArFVHhncrPplVJYx0LP5GUmVEz7X_B9TfrgVobLSwHRW9kN2Br2PF5nOu6SzmulPabX2i7Alj6g7cuV9cHHnGwaJS1f_3yuply22QCN6c4DC8jEHhEr_J19m1DLFHQS9_NcWhCJ_SjkAvyN6wXfXPar6Ens_paXGHz_xnTa1ECRgRZ-TAgvo-y5SNE4XXDDvm2dcyDlqqRdjyXAUFApNdJlEUcPQQfkIhiLl6KyPzIekkMHwh5kjlRpUd6gQOHXvI2FzVtnjjfi2rUNr5_KErlB1nzlC35g1eqeQoO_LhfQNcCwkvPkq1uXnCPitGj59BP4M3RNmOT7DAv61WrF8UebBhj1oA9DkRL9N5-3UeS2akPqztxWOkWA6aHBtZaXCJFY_-nd4b-P1X84ue--WOLp1K_BpR86GKmRIq=w473-h196-no


B6. Đây là bước quan trọng giúp cho danh sách chọn tại H3 sẽ thay đổi phụ thuộc vào tùy chọn tại G3. Bạn đặt tên cho vùng Versions với tham chiếu trả về thay đổi theo tùy chọn của G3 như sau:

Nhấn <Ctrl+F3> | chọn New… | tại hộp Name nhập vào tên là Versions | tại Refers to nhập vào công thức sau;

=OFFSET(INDIRECT(ADDRESS(MATCH(Val1Cell,OS,0)+1,2,,,)),0,0,COUNTIF(OS,Val1Cell),1)

Công thức này giúp chọn ra vùng Versions tương ứng với việc chọn OS tại ô G3.

B7. Áp Validation cho 2 ô G3 và H3:

Chọn ô G3 | vào Data | Data Validation | Settings | chọn List | tại Source nhập vào =OSValList | nhấn nút Ok hoàn tất.

Chọn ô H3 | vào Data | Data Validation | Settings | chọn List | tại Source nhập vào =Versions | nhấn nút Ok hoàn tất.

McAUhMhqprY3UF7-f0hfentVdrMK2KwXURrAM_TpwnmLEnXF9gwtuwUVobd8wPCNasq2m1ixpLWvjj3fuaerE-2veMANQklnNtjvoKWX9c8DNc0qmKsofGYsTJmPzO11ig8KxdFuYmE40PYifuCvMiRmy2nrLFW3C8HNFjGBoaBvMRKWy1-w_01PBk6bd8FuvEkq5swOf-ywvX2kTdlXKqqNhv-HnEmDn-DDEwo5ac3jzv069dt_AstbKPMM6uYPNJ1O-lsWBRAXTQWHkaWSdn_rbPvsY8WKZQC9qMyT0I4M5XUMuwWCCw-9lbpTWjCXa7QCpgyKEumIFu2-zo_c8TV4SOw45BXQ1CUwLAt8ANSWLyxUzrIt_qLY8e8BDsFgshgm1RX4qLis1sPvk1rfJV_RyebV4qvxqOHrcY8luVc_hVFi4kwyEx_yS0_2q7Qy5uNkJB2kViUnrM0zhHyHNbbQILE-uFJzg6h-0qYd6r4G4ARiU_9WXtwPAyDJjtX-NBixqM4XvSzmdMvEi-BeFdMCD-lYZP55Ob4V3uD7XgvSRhTU4BuPzykZaWURACkQ4uRt4Y2wz7sYVXYwBkrJVnC8IlCBLDdqwhHi3FXMf2z4mmUPEMGZ=w739-h333-no


Các bước đã hoàn tất, các bạn hãy chọn thử một OS nào đó tại G3 và qua ô H3 xem danh sách Version tương ứng.

Các cải tiến cho công cụ này chúng ta có thể tiếp tục thảo luận trên GPE.

TP.

Một số bài viết có liên quan:
1/ Offset truyền kỳ (kỳ 1)
2/ SUMPRODUCT và Công thức mảng - Phép tính có nhiều điều kiện
3/ Sử dụng Excel để ra quyết định hằng ngày
4/ Excel nâng cao: Sử dụng sự lặp lại và các tham chiếu tuần hoàn
5/ 10 lý do để học công thức Excel
6/ Làm việc với công thức mảng trong Excel
7/ VLOOKUP với Cột động
8/ Sử dụng hàm Subtotal
9/ Cách viết hàm hiệu quả
10/ Dùng hàm "Đọc số thành chữ VND và USD" với thủ thuật Name và hàm Macro4
 

File đính kèm

  • Offset.rar
    12.1 KB · Đọc: 6
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Công thức mảng kia dài quá, hiểu nó cũng mệt mà để nhớ thì càng mệt hơn. Tôi đề nghị dùng cách này dễ nhớ, dễ áp dụng hơn:
- Dùng thêm cột phụ là cột C nhập công thức từ C2 là =COUNTIF(OS;INDIRECT("A"&SUM($C$1:C1)+2))
- Tại D2 nhập công thức: =INDIRECT("A"&SUM($C$1:C1)+2)

Chép công thức từ C2:D2 xuống các dòng dưới đến lúc nào hết tên Hệ điều hành thì dừng
 
Web KT
Back
Top Bottom