Cách chuyển số liệu từ dạng bảng sang dạng cột

  • Thread starter Thread starter ibraa
  • Ngày gửi Ngày gửi
Liên hệ QC

ibraa

Thành viên mới
Tham gia
15/3/11
Bài viết
13
Được thích
0
ai có cách nào giúp mình với, mình không thể làm bằng tay được vì số lượng cần làm là rất nhiều.Mong mọi người giúp đỡ mình, thanks mọi người trước}}}}} Số liệu mình cần chuyển dưới dạng file mẫu mình gửi kèm theo
View attachment Runoff Data1.rar
 
ai có cách nào giúp mình với, mình không thể làm bằng tay được vì số lượng cần làm là rất nhiều.Mong mọi người giúp đỡ mình, thanks mọi người trước}}}}} Số liệu mình cần chuyển dưới dạng file mẫu mình gửi kèm theo
View attachment 61711
Với dữ liệu hiện có trong file thì code này là ổn:
PHP:
Sub ChuyenDL()
    Dim t As Integer
    For t = 2 To 13
        Cells(5, t).Resize(31).Copy [O1000].End(xlUp).Offset(1)
    Next
    [N2] = DateSerial([G3], 1, 1)
    [N2].AutoFill Destination:=Range("N2:N" & [O1000].End(xlUp).Row)
    [N2:O3].Insert xlDown
End Sub
Nếu thêm dữ liệu của nhiều năm nữa thì bạn cần 1 vòng For ở ngoài vòng For trên nữa.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nó có nhiều năm số liệu như cái dạng ban đầu mình gửi ý. Bạn viết hộ mình cái vòng For với . Thanks bạn rất là nhiều
View attachment Rainfall data1.rar
 
Lần chỉnh sửa cuối:
Upvote 0
Nó có nhiều năm số liệu như cái dạng ban đầu mình gửi ý. Bạn viết hộ mình cái vòng For với . Thanks bạn rất là nhiều
View attachment 61777
Bạn thử code này nhé:
PHP:
Sub ChuyenDL()
    Dim t As Integer, n As Long
    [N:O].ClearContents
    For n = 0 To [B3] - [A3]
        For t = 2 To 13
            [O65536].End(xlUp).Offset(1).Resize(31).Value = Cells(41 * n + 5, t).Resize(31).Value
        Next
        [N65536].End(xlUp).Offset(1) = DateSerial(Cells(41 * n + 3, 7), 1, 1)
        [N65536].End(xlUp).AutoFill Destination:=Range([N65536].End(xlUp), [O65536].End(xlUp).Offset(, -1))
    Next
    [N2:O3].Insert xlDown
End Sub
Cách sử dụng:
- Nên đặt phím tắt cho Macro bằng cách nhấn Alt+F8 --> chọn Macro ChuyenDL --> nhấn Options và gán tổ hợp phím (chẳng hạn Ctrl+Shift+C) --> OK.
- Muốn chuyển dữ liệu cho sheet nào thì chọn sheet đó và nhấn tổ hợp phím vừa gán.

P/S: Trong dữ liệu của bạn, tại sheet Buon Ho (84-07), dữ liệu của năm 1984 bị thiếu mất ngày 29/02 nên việc điền ngày không chính xác.
Nếu dữ liệu chỉ khuyết vào những ngày cuối tháng thì bạn có thể sử dụng code sau để việc điền ngày được chính xác:
PHP:
Sub ChuyenDL()
    Dim t As Integer, n As Long
    [N:O].ClearContents
    For n = 0 To [B3] - [A3]
        For t = 2 To 13
            [O65536].End(xlUp).Offset(1).Resize(31).Value = Cells(41 * n + 5, t).Resize(31).Value
            [N65536].End(xlUp).Offset(1) = DateSerial(Cells(41 * n + 3, 7), t - 1, 1)
            [N65536].End(xlUp).AutoFill Destination:=Range([N65536].End(xlUp), [O65536].End(xlUp).Offset(, -1))
        Next
    Next
    [N2:O3].Insert xlDown
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom