Bài viết: Chuyển đổi dữ liệu dạng ma trận (ngang dọc) thành dạng phẳng

Liên hệ QC

kyo

Nguyễn Khắc Duy
Thành viên danh dự
Tham gia
4/6/06
Bài viết
901
Được thích
2,714
Chuyển đổi dữ liệu dạng ma trận (ngang dọc) thành dạng phẳng


Sẽ có những lúc bạn cảm thấy bức bối vì dữ liệu của bạn đang thể hiện dạng ma trận, còn bạn lại muốn chuyển nó thành dạng phẳng (với dòng là các thông tin và cột là các trường dữ liệu như cơ sở dữ liệu). Để dễ hình dung, bạn có thể xem sự khác biệt của 2 loại dữ liệu đó ở đây:

tpfu4VnB4cyQ3xyHv_7vfRvAtbMMxTtlCdJ_ixd9egILFz2XeUQAvn_6Cm2Wf9MCMq4qkyWL5N5RRv9MZLmErdgOPvMMK1hSgEJR2iuQk3AxK0XHAnI8G5y88WgEgZTmwa7rmMai7fMKaMZE4kDuPgQG1xXQbR0hCS_Cro1RLnnnVKSvWhe6xmzl29Sf6fTBPxy3bSm-LA0dhSQMefFAsy-WQ9jTEdLFc0zegc3-IOCQPbboCYBQ8n6og-nxZH7Q1YVgzKQBblvPthrOJ4xDysjcAlV_dVEXS4klZV4_KD1I1ZZ3-jeLQe3SiQM_ET9zDhonauudh3yTzRO24l-CB-bE-pYvB80a8i_daYY2k2Knjov0FQ_PLkzC5mMsYpgpkXwNoCJy4j1-kyaq252Ome8ymxVEMUuKM359rJb5AEmTBp_Iecq94qZ_6y4akinUjE8DVLrXLIG3N-NSwahWYRZveS-G6I2oZxEf4LrEK-k2tH9W4egQPDWPaZSKIauSjYP73s93AqKCLPIWE45Y_Z2ASPrnjvVNX_1k2v0b6UXdhWBYuIXGeA9wzAbv-1Bi_CMGIP8UhPun4L9OD3_bQzrSprLpg22PXQx7mjO4YX_TPnLN9blX=w580-h621-no


Như hình, với dữ liệu kiểu ma trận, nó trông có vẻ dễ dàng trong việc tra cứu, tìm kiếm bằng mắt thường và kiểu phân bố này thường thấy trong các file về kế hoạch, chẳng hạn kế hoạch sản xuất, kế hoạch nhân sự, kế hoạch đào tạo,… Tuy nhiên, vấn đề là, khi bạn cần xử lý dữ liệu khối lớn hoặc lọc theo điều kiện phức tạp, kiểu dữ liệu này bỗng dưng trở thành một cơn ác mộng khi nó khiến bạn phải lao tâm suy nghĩ về một công thức phức tạp hơn hoặc thậm chí phải dùng VBA để đáp ứng nhu cầu của bạn.

Còn với dữ liệu dạng phẳng như hình dưới, nó trông có vẻ khá khó chịu nếu bạn nhìn (khi bạn không quen) nhưng nó lại là kiểu dữ liệu chuẩn dùng để tra cứu, thiết lập các công thức,… bởi vì Excel xử lý dữ liệu chủ yếu là theo hàng dọc (và đây cũng là dạng dữ liệu chuẩn trong tổ chức cơ sở dữ liệu).

Vậy làm cách nào để chuyển? Sẽ có rất nhiều cách giải quyết vấn đề này, từ việc dùng công thức, dùng công cụ Excel cho đến dùng VBA, tuy nhiên kyo xin giới thiệu đến bạn một công cụ cực kỳ đơn giản nhưng giúp bạn giải quyết vấn đề này rất nhanh chóng.

Giả sử bạn có dữ liệu như sau:

0QiBiZr9NRE8wLXyTgWRHn9u7gZdAdngjp6rkQERw6n_EY7XXTcf4Ex7Mk5kQlcpZFO2p0-3EsheH4e_R--Z0nEknRsLvRCu6PbUowfxpFnYOvR8rDTV6icaAUbcpQN0-bo25MVVOgFhhss9kPNaN4s2C91MYXU3J6a-0hiplfRpOxluFL8Qgbif_cGm2CqCoBPSP58q7Z1uzRnP8T2MzavHvhr-TAaEiE9aWwhmkl54R14sM1CHSFDiOGRvwaDjJcGnHXsr_I675epk2x2hi1CpwiNvd1vHQjFaSTJeQ4m3jQtPJXWbvFTkw77eX2FFFnkkExy0iw7ePrDcKEZxLAcn86JxZrLiu_u0u_vtMYUXR9gE6_3IH13KPY0VeAUtszHhfDJqVfplVYyW9Y9Kiq3XqWcXEtWR-IWMDPfs0YwEBTaaBi7bFQ463E3b_nCZFS9qbhMBwzp0MzbcxW3FAfab1AZB3swTyHdkO9WsRZVL5D7f33dS-CiAZ3mMZYV8HNMVS85G7ZatxpT3boL1HtGZ1Tqys3_l2yFJEbWfckdkQQ1q9CVbYw-GM6dEH9_F4XqG2lJo323LarNcPXwAndaB2KKvzR1tUxF7HCKvIdUgiyNTeCO5=w1333-h565-no


Bây giờ, để chuyển nó, trước hết bạn cần sử dụng chức năng Wizard của PivotTable (dùng tổ hợp phím Alt + D + P) -> chọn Multiple Consolidation Ranges -> Next.

BxIBavEp-MqOT2J1aFcFv9JCg-oKJTb0Hfhdo43HzyPyYx46He47fuyvLmreVfxinUh1znPi9hjdDP0jyribMXzPKRxWsyqt__pMUTSdJNK-aPHbpcwIZPX4VRbTw6F6v01R3aw612DtYU0_xT-GRUyI6r6X28dYdccTLJV6ucM2G4ayftfTk1VipHw-EfYmwRyJ39rvjnsHF5oJtQ8n3Mf6xFEZoK49lkTSp0hAelCJgch-dadAxmwgbd5ieBpTEtXCO818aijLECvIDsww2L4_S4crk72gutIhC_iQ-XvboDcrJ6xwsyeDZhFx8UC89zW2IdgRkBMfQkorEgmkcGHh8MYUlrwg57PmB6hVscrazLw5MxcgA4bIZeV6sOmjEZwC6IcllLCjsT7LX90qn4A5ubW1Z50hqQJarnr3pkBvyZymgY3VRj7doJx0qx4uSzBIrCQWtDd6UVM7yryA98FrMPXLMLgfLC-EX3QheKf8UCy5ckRHNaq5S7_b6-42Fr6uKZDFTKrBnZt0AUc6afGabwVEp_N-u5ICQy77wKcqLOJP639W8sDkUpyMhmls61usxTPxDUpONjDZoYvNmIvNnXxRZ-SPMTtiYyEKev0gxvj1sjmw=w443-h340-no


Tiếp theo bạn chọn I will create the page fields -> Next.

7dfc1xkPPP7EHcfg7zz44DU_y0WYsU113_YuO0I1fnZDCWqI5fiA3Ealg-y5kv186URqkkibGI08BnAxJEVvV3T_hu2AjL99vm-yKnGrqPIuxnQK2m2NLj4xjnGgUdm-_x-m77GUhBZY0xmdq8CjnzTdRjUw-YkIpQIpHfEPl9aP-OtDVXvOXaLHRXf5B92TWIjDkPOL-h3JdtnGxs9Iln-lvJiVykSQYM1TRo88qxFcK5sAtqcyVN1d-6dxP8Q_1krNvVQPG-W_P06H5Nu-QrIDtxPs5AWtbJpiNBedVfmLE0EDyztU-d6GXzpSXVzSPsy8UGiQW13SnrVcB8BBI8xQHfbV7o-UTY5xe6BVx2WMV2oLZg3OFEvRDehfwk9Gyy_rCp8JEvafWijF_Xu6Vm5EwAFzCneTDIrxR_VBKC9fyLXSjopO2_SV4VvxIJ4NmtSDo3-l_wc5kYtr9TZuNrseLzxWDuILYMhSd2hTVlcl0ZB9FRSn_J3OCJw_3c9U-TNDMwqQjKTDK4ysGbhBw0Qs8RuC5wPh0Os7hEA2USeN1CYfMTe6K_PoFdfoBJbCz-fK7mmIL27zYzvypZxrG-W3_tKlvu-bXhEOPb59XFE-B8HYo6IB=w437-h257-no


Sau đó bạn quét chọn bảng dữ liệu của bạn -> Next.

chbR6FQjkDbII_Ahee2-aZlCCHblXdtQZAxr8oUOfS5nDleP9CY9SRnBJS_B3MqfOfqHwywl6ziOMuiISY8Cp3kdy7svWUJKUoLO_s1SgTnsL8yEeuUXTOzfEVq5bpu1BJj0UNOuMCjiUyAh6fP7KLEzivEIjIfKPmf7t-JNXgU75zYki3O2yjRChxjYbQnogd68gA2Qs8azWHOICIRP3HjIhfue3SH69SpqfyA_AHrPl5OxmD2mqAir8f-KIuopwP4sB5KXGst8FL7P-Ar9CCLLtn11jPbJ7g6L-1SpHWaNsrjk7w_mcYLc2n2TsCwj8qcKhgwyC8zVm0OHydPF3WhVzSCEa9XM5F3XhFRJLvwJs4zbGHoG7NaidUPb4N5F7fvxiuRoT-yyEnJpponBw9LCdSZo_VKdwrIGHORIWvsyE-Tm3OVYRNqWgFr7xTj1B9PtCIGEaSQ4bCXh-4U9QJ506C_LMkox6oVEzLzdYQ2ofCbZ9kO8N33I2Zgm94nc837ynuJ-2kjOiHYtjB1Ju-6EjtvJG7iTdPCWwmM8-UhpXE-Ut9M7G1DgMNqAByhLWDO85C0MTMAVTebhzltCWbSfpPLRVDVBHvu64KNxacAHmTByDvfR=w356-h450-no


Và cuối cùng bạn chọn chỗ cho PivotTable mới xuất hiện (tại một sheet mới hoặc tại một ô được chỉ định nào đó) -> Finish. Và dữ liệu của bạn sẽ tự động chuyển thành PivotTable.

F_fV1cH-gDW_3kC_KCCdp7QpZ-QPzCS0StPGh4cmB2-m-mcQCiW0muD8HikqfZ6dDiCEVoiYW6mbvzVQejudKpTl4bCzrs-ICFv6dIwNr1IrH4TrttLp4WTVidWzrESzFT2_IpfpYA4QeXM3-H3YZqFzivffKjL2DBY0CbzqQpGN-HbYj-o0mg0PO4om10CDYVq-d3T2TQ6eZC1ZjvH_BdcvBIuyrn6I5sKvkHUN8k__dH8ImPw_r4GumBYklnCQHbJXH3NXGSHy2bc3RUTuhtN8prGFX2b7Nn9RGNeUIlMK1LInAXP1MGwYYP-_1rDLQAkrJxjB4jKH4U_ui8QbGzBlbyOSqDzqYIJoqPmcsVtOzAMAcLdiNQmNfceAZQ-EACtzeVZQiRwL5vSEotJHgPa88A8CGO8Nn36pDQc6o52PpA6xFd8OgoW15PkfZDXdWtvgQcCLa9_ohbVquJev6qyw_zuvYDCKqS4D4YA3CXj8ZhcmKYPaf3c3W_AiuTkLOReg5IIVp9uQkGIOn4tZtf2hO_DM6tQpnn1U3IpjZSMTf2bUJ4tZ2j0g3HmhVSai72dsOoFPHDf7qVQeE_8LjJ_Xl739GRrgms0y7iH5d4vfn-wFJjhv=w967-h478-no


Bây giờ dữ liệu của bạn đã là PivotTable rồi, bạn chỉ việc tìm đến ô cuối cùng góc phải của PivotTable (cũng là ô Sum Total của cả dòng lẫn cột) -> nhấp chuột hai lần để hiện dữ liệu của toàn PivotTable, và bạn sẽ có được dữ liệu như sau:

6Nz9P2-0tN-n5jAo954uFK3tJC_cx2o8VbFN4YEdqLDF1Ur4NH7t0cTp5aac-sdcPavI1B-gR0xXkxq3ToY46_KdfkP1OHnsJqgnGno1mUxd9xeLoYOhLIUFm-5wGqe3Bl4BJ0Q1cAnULK3y1n8q7cJ4fUtBwvKe9ySPViO112xNs9njALx5rj6ZdY1gdrde9b6-OyUVVcI72Fv6fmyx3VKySGJdRo_MI8AMllxDim1_K1BVqN1-atT6abWPcg5dR6hhdi61LD8vL6oBxFbv5n2_NIDfBlKWWn2-MavExH5BbMQkprycuHUJ86XX2gYmxi-GTpC7-zIlZsJnJcacJlgDQ_Y6_-vzNuXHqMDUdu3wN4ql-ODrUcZi49n_YvGJAeq4xx8qng43mMWc0ullLG91kSRNIq_hdHeN_W5WXySKhjXYo7OqBUYKRZquV0LXINAoOhS4fi-b39246BrD2B4gBZu65g4RVsn3aCiflLPRYykZMkO2M1n2VsxjOI0ph-uoHH6eZg7Y80bM9YaIAO_VNfImqQnpe7L9K_9We00afji-bzaNf6OmSwbQpDo3WG6cy7XX2gj5wY0GvRUtMfkL8Nkwx8ZBKRqMmr3f3EYnGjG7Zht-=w459-h291-no


FdXzaCTalznA31mcq0TqX3YB5f1rpUqBJuYO1IF9A6-EYQYe0cSAXcPlUmUqn1MrY5aWdMcMnsGfx8HtQAWwL-ZwMCziIP1zRCkOxI-0xezzl3i0gZgRugNaBHn_iF0CL7i86dUF960IuWocOhSaYhOUCTDB27T5OsZ0q1z6GrixRziIqtf4S8m5XnaXUWeY3QTGLyZBTJrsOe0Y9Pf5Udzb4qXiupzU-e566Dc30HeS_gH8Xf6Mh8UkGhtWfWACJPhexY53dvv0-fPu1J2bg2XZ9cb_U995y4ISpMiQbXJT1_2rdzbvbFuCNmbWZ8oyz4sYTrqnjBwAC4gpvhQ6EHJUsLG4wPTXO08bQMkaFdXc-tJI87DJgWutFx78ndnn2aAr4RYkBqmqezeAjw1IIGa9w-rHlp9cpxbOtMKIq5ElNkl-St_7bvk51cSNiEwUAX3rth3XOaw1uO1xN2aRqHbIflxWShMjPwEOByBD8MuxMuhMK_koYOx1A5A-aCQRV_fNqg66YZjfy_xM8N2IUindHXg06u5J3BDjZ4a8erUbMv5SMgbIX0AAQliRQSTWEz1QSuqlqfEZGvrNT2dU8FpUJrjMUqO1XLkw6z5q8lU7Isk1Rr69=w261-h473-no


Rất dễ phải không? Bây giờ dữ liệu của bạn đã chuyển sang dạng phẳng rồi.

Trong trường hợp bạn không nhớ tổ hợp phím trên, bạn có thể tìm thấy nút bấm để kích hoạt công cụ đó bằng cách vào thẻ File -> Option -> Chọn Quick Access Toolbar -> Chọn Commands Not in the Ribbon -> Tìm PivotTable and PivotChart Wizard -> Add -> OK.

iTS8XFOGJaKcjQOeFGabd1mKoEY5mjQEht3Q32EVftm6cleqWt6jHvN1imMQYrflfR_xkhjOhrouMVY6C7lAYwdV7NlHZ_ly-EuXi-VrPsREJ333RYmPWj4nQH4MjpyC-LCK784fMA12g0-IOqZwKW1eaw22Q8_Bz7Io2pebk-NjMrmjMpX1VvJlraicHVoSdzpzzoXo0_GOJWJruH5b_SAqGPgKMnu7V6Vzx3k9oRRgZP27z8YULWJkFrpU6e8K6EElqZURR8dw8YKklvIIV_2xd_5wz4oeovBU9dR7QoSv6KncG0y9tzLIONDzT4Wm9XeiicO1_kb1WT_Q2ixLgYo5peeMBk7-maES5mmKdDyv1kWqQMZeolBNlN1FkN4HCq89eeZJohVuMG9rTAivVe84W7TtSDGEfgpxM3EJLiy2KryQWLXHn33Y68sQFVUVnKvkKM-pPnmj6T1pjyZnKMFSxHayDqvNuvBW8ebATJ9FuvDvcGlOa4xd5bfiuY3yP_QPxJn2yxQzOJhWTUIPQasIeFKV32layL9qjJf9kWfratazwvy4FCs5eiX7YLsFtt7P_ryoyz9OWKjSkMDwDWlAUGH8FQ21twdZlPnL1yvUTYnqLJOV=w840-h686-no


Và bạn sẽ thấy nút đó ở đây:

wE11qvU8uW9_TKfFNQQxdsyw6e2BcGzwC9gSBl9YwTRpJ53kyyQkdQtiodp9zYtF1TgFqnwEDn9bFrMM2kGiYxFqyGJSrCN8NK-fjjVANZIEgu7JORAC8Ttppqqn5xRPSPyhSsn7PhQZc5qKC6tB7OutFY57MchvHBp--OK5BIEOISwL-W8iGMyv2LznmUdVwgKa7yoaTHMOphMJIL8siduIuMeLa0_SNQRzeF-uRbNANR0zQXcV7Z-hEKg5NtLOQ0-D0ynltysaevOq89OtzzR4peAvlWzQx-Cf7Kb9newiP4K3LAoNg9FVLOoQQTb0p_nuKpT6rd6YR44hgUk8KxBRNvxijkYiFU4apJdWWCeTAL81iaLwe8bFrsKza4tzbg3oOR1MxSy9hr0OfpbW2gKuVShspxmsFbm2Nt3jloXNmyc8Npt__xFSpWWvDW5TJCPrqkr8pYx_cDQ34MB3gYOS6Ry2HnwY96wIvKfqUV9CEuKZTewDKiTIpFVSvJYHgvPTJJ2_G4-RAOvn5T8-ZehIg4cknlzGTugp_Qgnm0GqLnOdcKKMk4QqUwlluuy-4v3BufHetns42BoknSRlZAG3dtNYYIXO1Fq2jKKxO8N3YksxjzaV=w392-h179-no


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

Một số bài viết có liên quan:
1/ Spreadsheet Design: TRÌNH BÀY BẢNG TÍNH
2/ Chiêu số 23: Bật, tắt chức năng Conditional Formatting bằng 1 checkbox
3/ Chiêu thứ 21: Tô màu dòng xen kẽ
4/ Chiêu số 19: Đánh dấu những ô chứa công thức bằng Conditional Formatting
5/ Sử dụng định dạng có điều kiện (Conditional Formatting) để làm nổi bật ngày tháng trong Excel
6/ Chiêu số 18: Điều khiển Conditional Formating bằng checkbox
7/ Chiêu số 11: Tìm dữ liệu xuất hiện 2 hoặc nhiều lần bằng công cụ Conditional Formating
8/ Chiêu thứ 8: Giới hạn vùng cuộn của bảng tính
9/ Ebook: Dữ liệu & Báo cáo trong Excel 2013
10/ Phân tích tồn kho theo phương pháp ABC
 
Lần chỉnh sửa cuối:
Upvote 0
Bài Hay, cảm ơn anh

Mến

Tiểu Uyên
 
chào bạn!
Bạn cho mình hỏi là có cách nào chuyển ngược lại ko bạn?
Thanks!
 
chào bạn! & cho mình hỏi là có cách nào chuyển ngược lại ko bạn?
Mình thử sức với vấn đề bạn nêu theo fương thức FIND() & kết quả được đưa ra trong hình:
PHP:
Option Explicit
Sub ChuyenSangDangMaTran()
 Dim Cls As Range, Rng As Range, sRng As Range, Rg0 As Range, Cll As Range
 Dim MyAdd As String
 Dim Rw As Integer, CR As Boolean, Col As Byte
 Set Rng = Range([A1], [A1].End(xlDown))
 Rw = Rng.Rows.Count
 Set Rg0 = Range("F1").Resize(, Rw)
 Rg0.Resize(9).ClearContents
 For Each Cls In Range([e2], [e2].End(xlDown))
    Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        MyAdd = sRng.Address
        Do
            For Each Cll In Rg0
                If Cll.Value = sRng.Offset(, 1).Value Then
                    CR = True:          Exit For
                End If
            Next Cll
            If CR Then
                Cells(Cls.Row, Cll.Column).Value = sRng.Offset(, 2).Value
                CR = Not CR
            Else
                Col = Rg0(Rg0.Columns.Count).End(xlToLeft).Offset(, 1).Column
                Cells(1, Col).Value = sRng.Offset(, 1).Value
                Cells(Cls.Row, Col).Value = sRng.Offset(, 2).Value
            End If
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
    End If
 Next Cls
End Sub
 

File đính kèm

  • Chuyển Bảng.JPG
    Chuyển Bảng.JPG
    70.7 KB · Đọc: 43
Mình cũng đã rơi vào trường hợp như này và chuyển ngược lại từ data phẳng sang ma trận và nhập vao file theo dõi cv. Ngồi nghĩ tìm cách chuyển mãi mới nhớ ra Pivotabel làm việc này vưa nhanh lại đơn giản. Và thế là công viêcbớt overheat đi rất nhiều. Thanks
 
Web KT
Back
Top Bottom