Nhờ thêm code chuyển dòng thành cột (2 người xem)

  • Thread starter Thread starter nthxe
  • Ngày gửi Ngày gửi

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

nthxe

Trình còi
Tham gia
14/6/08
Bài viết
260
Được thích
114
Chào các bác,

Tôi có 1 file excel được tổ chức như sau:

Cột A: Tên Công ty
Cột B: Tên sản phẩm
Cột C: Mã Sản phẩm
Cột D: Đơn vị tính
Từ cột E đến cột P: Giá bán của sản phẩm đó trong 12 tháng

Đề bài:

Sắp xếp dữ liệu trên sang sheet khác với thứ tự như sau:

Cột A: Tên sản phẩm
Cột B: mã sản phẩm
Cột C: Đơn vị tính
Từ cột D đến cột J: Một số tham số tính toán từ dữ liệu
Từ cột K trở đi: Giá của sản phẩm đó của các công ty.

Hiện nay, tôi đã làm chuyển được giá từ hàng sang cột nhưng tên từng công ty muốn đặt lên hàng trên của giá trong 12 tháng thì chưa làm được. Hiện nay nó vẫn nằm ở cột A trong sheet kết quả.

Mong các bác sửa giúp.

Cảm ơn
 

File đính kèm

Chào các bác,

Tôi có 1 file excel được tổ chức như sau:

Cột A: Tên Công ty
Cột B: Tên sản phẩm
Cột C: Mã Sản phẩm
Cột D: Đơn vị tính
Từ cột E đến cột P: Giá bán của sản phẩm đó trong 12 tháng

Đề bài:

Sắp xếp dữ liệu trên sang sheet khác với thứ tự như sau:

Cột A: Tên sản phẩm
Cột B: mã sản phẩm
Cột C: Đơn vị tính
Từ cột D đến cột J: Một số tham số tính toán từ dữ liệu
Từ cột K trở đi: Giá của sản phẩm đó của các công ty.

Hiện nay, tôi đã làm chuyển được giá từ hàng sang cột nhưng tên từng công ty muốn đặt lên hàng trên của giá trong 12 tháng thì chưa làm được. Hiện nay nó vẫn nằm ở cột A trong sheet kết quả.

Mong các bác sửa giúp.

Cảm ơn

ĐỌC YÊU CẦU CỦA BẠN THÌ THẤY NÓ SẮP XẾP LẠI THỨ TỰC Các cột thôi chứ có đổi dòng đổi cột gì đâu?
 
Upvote 0
Khả năng diễn đạt kém, mời bác em file đính kèm ạ
 
Upvote 0
Theo yêu cầu của bạn thì bạn bỏ mất dữ liệu của tháng. Chi tiết này cho vào đâu? Nếu bỏ hẳn thì chọn chi tiết tháng nào?
 
Upvote 0
Theo file gốc, chỉ có 12 cột là giá bán trong 12 tháng của mỗi công ty và mỗi mặt hàng sẽ xuất hiện ở nhiều dòng khác nhau tương ứng với từng công ty

File mong muốn:

Mỗi mặt hàng chỉ xuất hiện ở 1 dòng, các cột là giá bán trong 12 tháng của các công ty kế tiếp nhau.

Cái này em đã làm dc rồi, còn vướng mắc là chưa chỉ rõ được 12 cột giá là của công ty nào ạ.
 
Upvote 0
Yêu cầu của bạn, theo ngôn ngữ CSDL gọi là phản chuẩn, Access thì gọi việc này là Cross Tab.
Vì là phản chuẩn cho nên nó chỉ trông được khi bạn có số cột đã đồng bộ. Tức là tất cả sản phẩm đều phải có số nhà sản xuất in hệt nhau, hoặc nếu không in hệt thì chỉ trệch 1 ít (những chỗ trệch có thể bỏ trống). Nếu số nhà sản xuất không thể canh cho ngay nhau thì tôi có thể bảo đảm với bạn là bảng này không ai đọc nổi.

Bạn suy nghĩ kỹ trước khi thực hiện.
 
Upvote 0
Tôi là dân ngoại đạo về CSDL nên cũng ko rõ chuẩn phải thế nào. Chắc do khả năng diễn đạt kém nên các bác thấy khó hiểu.

Đề bài của tôi là:

Nhiều công ty bán cùng 1 sản phẩm, hiện đang được xắp sếp mỗi công ty theo 1 dòng nên 1 sản phẩm sẽ nằm ở nhiều dòng khác nhau tương ứng với công ty có bán sản phẩm đó.
Mong muốn tổng hợp lại để một sản phẩm nằm ở 1 dòng, dữ liệu ở các cột là giá bán trong 12 tháng của các công ty đồng thời có chỉ rõ giá đó là của công ty nào bán.

Hiện nay tôi đã làm được phần đầu của yêu cầu, phần sau (chỉ rõ giá đó là của công ty nào) thì chưa được ạ
 
Upvote 0
Tôi là dân ngoại đạo về CSDL nên cũng ko rõ chuẩn phải thế nào. Chắc do khả năng diễn đạt kém nên các bác thấy khó hiểu.

Đề bài của tôi là:

Nhiều công ty bán cùng 1 sản phẩm, hiện đang được xắp sếp mỗi công ty theo 1 dòng nên 1 sản phẩm sẽ nằm ở nhiều dòng khác nhau tương ứng với công ty có bán sản phẩm đó.
Mong muốn tổng hợp lại để một sản phẩm nằm ở 1 dòng, dữ liệu ở các cột là giá bán trong 12 tháng của các công ty đồng thời có chỉ rõ giá đó là của công ty nào bán.

Hiện nay tôi đã làm được phần đầu của yêu cầu, phần sau (chỉ rõ giá đó là của công ty nào) thì chưa được ạ

bạn có thể cho kết quả bạn muốn vào trong file ko?
tôi đọc tới đọc lùi mà ko hiểu bạn kêu làm cái gì?
 
Upvote 0
Vâng, tôi đã up lại file, trong sheet expeted, phần tôi bôi màu xanh là phần tôi chưa làm được.

Cảm ơn các bác
 

File đính kèm

Upvote 0
Vâng, tôi đã up lại file, trong sheet expeted, phần tôi bôi màu xanh là phần tôi chưa làm được.

Cảm ơn các bác

xem trước đã, xem có đúng tinh thần như vậy chưa, nếu đúng thì tôi tìm cách làm mấy cái hàm còn lại
Mã:
Sub running()
Dim original As Variant, kq(), i, j, k, GTMax, GTMin As Long, d As Object
With Sheet1
    original = .[a3].Resize(.[a60000].End(3).Row, 16).Value
End With
Set d = CreateObject("Scripting.Dictionary")
ReDim kq(1 To UBound(original), 1 To 23)

For i = 1 To UBound(original)
    If Not d.exists(original(i, 1)) Then
        k = k + 1
        d.Add original(i, 1), k
        GTMax = original(i, 5)
        GTMin = original(i, 5)
        For j = 1 To 16
            If j > 4 Then
                kq(i, j + 7) = original(i, j)
                If original(i, j) > 0 Then kq(i, 5) = kq(i, 5) + 1
                If GTMax < original(i, j) Then GTMax = original(i, j): kq(i, 11) = GTMax
                If GTMin > original(i, j) Then GTMin = original(i, j): kq(i, 10) = GTMin
            Else
                kq(i, j) = original(i, j)
            End If
        Next
    
    End If
Next

Sheet2.[a7].Resize(k, 23).Value = kq
Set d = Nothing

End Sub
 
Upvote 0

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

Back
Top Bottom