Code tách data để sử dụng Pivot Table

Liên hệ QC

thanhduytlv

Thành viên mới
Tham gia
4/7/10
Bài viết
35
Được thích
4
Kính chào cả nhà GPE.
Mình cần tách dữ liệu từ sheet "DL" theo nhu cầu:
Cột A" Mã hàng, Cột B: Tên hàng, Cột C: quy cách, Cột D: giá.
5 cột còn lại là cột sản lượng.
Yêu cầu là:
Tách dữ liệu gồm các cột A+B+C+D và thêm F
Tiếp theo là A+B+C+D và thêm E
Cứ như thế đến khi hết cột
( Dữ liệu có thể tăng thêm theo hàng và cột )
Mục đích: Để làm báo cáo bằng Pivot Table
Rất mong cả nhà có thể giúp dùm sớm.
Cám ơn cả nhà.
 

File đính kèm

  • TEST DATA.xlsx
    36.8 KB · Đọc: 25
Tách dữ liệu gồm các cột A+B+C+D và thêm F
Tiếp theo là A+B+C+D và thêm E
Cứ như thế đến khi hết cột
Là sao? Hiểu chết liền! Hên xui không biết và không muốn biết nữa đâu.
Sheet kết quả tên là "GPE"
PHP:
Option Explicit

Public Sub sGpe()
Dim sArr(), dArr(), I As Long, J As Long, N As Long, K As Long, R As Long, Col As Long
Col = Sheets("SL").Range("E2").End(xlToRight).Column
sArr = Sheets("SL").Range("A2", Sheets("SL").Range("A2").End(xlDown)).Resize(, Col).Value
R = UBound(sArr)
ReDim dArr(1 To R * Col, 1 To 6)
For N = 5 To Col
    For I = 2 To R
        K = K + 1
        For J = 1 To 4
            dArr(K, J) = sArr(I, J)
        Next J
        dArr(K, 5) = sArr(I, N)
        dArr(K, 6) = sArr(1, N)
    Next I
Next N
Sheets("GPE").Range("A2").Resize(1000000, 6).ClearContents
Sheets("GPE").Range("A2").Resize(K, 6) = dArr
End Sub
 
Lần chỉnh sửa cuối:
Kính chào cả nhà GPE.
Mình cần tách dữ liệu từ sheet "DL" theo nhu cầu:
Cột A" Mã hàng, Cột B: Tên hàng, Cột C: quy cách, Cột D: giá.
5 cột còn lại là cột sản lượng.
Yêu cầu là:
Tách dữ liệu gồm các cột A+B+C+D và thêm F
Tiếp theo là A+B+C+D và thêm E
Cứ như thế đến khi hết cột
( Dữ liệu có thể tăng thêm theo hàng và cột )
Mục đích: Để làm báo cáo bằng Pivot Table
Rất mong cả nhà có thể giúp dùm sớm.
Cám ơn cả nhà.
Sao không làm báo cáo bằng VBA luôn mà phải chuyển qua Pivot Table.
 
Sao không làm báo cáo bằng VBA luôn mà phải chuyển qua Pivot Table.

Dạ VBA em không biết ạ!
Làm được bằng Pivot mới là bờ rồ...
Ai làm được Pivot mà ra tất tần tật báo cáo thì người đó mới bờ rồ hơn với vợ ba...
 
Dạ VBA em không biết ạ!
Làm được bằng Pivot mới là bờ rồ...
Ai làm được Pivot mà ra tất tần tật báo cáo thì người đó mới bờ rồ hơn với vợ ba...
Cái này chịu khó mò một tí thì làm được (cơ bản có chịu khó mò hay không).
 
Cái này chịu khó mò một tí thì làm được (cơ bản có chịu khó mò hay không).

Anh có chắc là Pivot làm được tất không?
Tất nhiên là có thể được...,nhưng:
Làm báo cáo họ quan trọng cái tính đẹp mắt..., họ thích trình bày này nọ nữa chứ không phải chỉ mỗi con số tính toán ra trên đó.
 
Anh có chắc là Pivot làm được tất không?
Tất nhiên là có thể được...,nhưng:
Làm báo cáo họ quan trọng cái tính đẹp mắt..., họ thích trình bày này nọ nữa chứ không phải chỉ mỗi con số tính toán ra trên đó.
Cái này tôi thấy đúng, vì cùng một bảng phân tích, nhưng rõ ràng ai làm đẹp mắt hơn thì được đánh giá cao hơn.
 
Cái này tôi thấy đúng, vì cùng một bảng phân tích, nhưng rõ ràng ai làm đẹp mắt hơn thì được đánh giá cao hơn.
Cũng chưa chắc đâu.
Thông thường mấy ông Bộ khi ban hành một thông tư thì đính kèm theo nó là một loạt các bảng, biểu, khi làm báo cáo thì đơn vị thực hiện việc bắc buộc phải làm theo các bảng, biểu này. Vì vậy, cần phải thiết kế File theo dõi thế nào đó để thuận tiện cho việc tổng hợp và đưa kết quả vào các bảng, biểu này một cách nhanh nhất.

Lãnh đạo thường đánh giá năng lực dựa vào kết quả làm việc và việc thực hiện báo cáo nhanh hay chậm, chứ không ai đánh giá việc làm đẹp (làm đẹp chỉ là việc trang trí hoa lá cành cho dễ nhìn mà thôi).
 
Lần chỉnh sửa cuối:
Cũng chưa chắc đâu.
Thông thường mấy ông Bộ khi ban hành một thông tư thì đính kèm theo nó là một loạt các bảng, biểu, khi làm báo cáo thì đơn vị thực hiện việc bắc buộc phải làm theo các bảng, biểu này. Vì vậy, cần phải thiết kế File theo dõi thế nào đó để thuận tiện cho việc tổng hợp và đưa kết quả vào các bảng, biểu này một cách nhanh nhất.

Lãnh đạo thường đánh giá năng lực dựa vào kết quả làm việc và việc thực hiện báo cáo nhanh hay chậm, chứ không ai đánh giá việc làm đẹp (làm đẹp chỉ là việc trang trí hoa lá cành cho dễ nhìn mà thôi).
Tôi cũng ước gặp được lãnh đạo như vậy đó. Chứ giờ tôi cũng lớn tuổi rồi, cứ so sánh lọ kia với bọn trẻ, thật là rầy quá đi!
 
Tôi cũng ước gặp được lãnh đạo như vậy đó. Chứ giờ tôi cũng lớn tuổi rồi, cứ so sánh lọ kia với bọn trẻ, thật là rầy quá đi!
Lãnh đạo bây giờ nó khác xưa rất nhiều nó không cần người giỏi mà chỉ cần người biết nghe nên có làm chậm đôi chút cũng không thành vấn đề.

Nếu bạn nêu là người lớn tuổi là so với mấy em nhỏ trong đơn vị, tôi tham gia diễn đàn cho vui và để giết thời gian chứ tôi đã nghĩ hưu 3 năm rồi.
 
Là sao? Hiểu chết liền! Hên xui không biết và không muốn biết nữa đâu.
Sheet kết quả tên là "GPE"
PHP:
Option Explicit

Public Sub sGpe()
Dim sArr(), dArr(), I As Long, J As Long, N As Long, K As Long, R As Long, Col As Long
Col = Sheets("SL").Range("E2").End(xlToRight).Column
sArr = Sheets("SL").Range("A2", Sheets("SL").Range("A2").End(xlDown)).Resize(, Col).Value
R = UBound(sArr)
ReDim dArr(1 To R * Col, 1 To 6)
For N = 5 To Col
    For I = 2 To R
        K = K + 1
        For J = 1 To 4
            dArr(K, J) = sArr(I, J)
        Next J
        dArr(K, 5) = sArr(I, N)
        dArr(K, 6) = sArr(1, N)
    Next I
Next N
Sheets("GPE").Range("A2").Resize(1000000, 6).ClearContents
Sheets("GPE").Range("A2").Resize(K, 6) = dArr
End Sub
Cám ơn bạn Ba Tê rất nhiều.
Tuy chưa hiểu hết ý nhưng vẫn viết đúng (90%) yêu cầu. Khâm phục bạn quá.
Không biết bạn bao nhiêu tuổi nhưng rất đáng gọi là " thầy".
Mình năm năm 39 tuổi.
Rất cám ơn thầy nhiều lắm.
 
Web KT
Back
Top Bottom