[Help] Nối các nội dung trong vùng dữ liệu thành 1 hàng (1 người xem)

Liên hệ QC

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

vuhungcute

Thành viên mới
Tham gia
6/4/09
Bài viết
20
Được thích
0
Chào mọi người !

Hiện mình đang có bảng số liệu với tổng là 458924 hàng. Hiện mình có vấn đề nan giải như sau:

1. Ô số liệu bắt đầu từ hàng thứ 104 (tới 118).
2. Mình đã highlight vùng dữ liệu mẫu của file.
3. Mình muốn vùng dữ liệu đó thành 1 hàng dài nối với nhau mà không cần chia thành nhiều hàng.
4. Các vùng này hiện tại theo nguyên tắc là: 7 cột, 15 hàng. Có một vài vùng nó không đồng nhất. Những vùng này mình sẽ sửa tay cũng được.

Do file quá lớn nên mình ko đính kèm, mình gửi kèm bằng link dropbox. Mình post bài có gì sai mong chỉ dẫn.

Cám ơn mọi người rất nhiều. Bác nào giúp em em xin hậu tạ chầu cafe tử tế ^^

Link file: https://www.dropbox.com/s/l3nf372saecmgsl/SWDOWN-VN-20100731.xlsx
 
Chào mọi người !

Hiện mình đang có bảng số liệu với tổng là 458924 hàng. Hiện mình có vấn đề nan giải như sau:

1. Ô số liệu bắt đầu từ hàng thứ 104 (tới 118).
2. Mình đã highlight vùng dữ liệu mẫu của file.
3. Mình muốn vùng dữ liệu đó thành 1 hàng dài nối với nhau mà không cần chia thành nhiều hàng.
4. Các vùng này hiện tại theo nguyên tắc là: 7 cột, 15 hàng. Có một vài vùng nó không đồng nhất. Những vùng này mình sẽ sửa tay cũng được.

Do file quá lớn nên mình ko đính kèm, mình gửi kèm bằng link dropbox. Mình post bài có gì sai mong chỉ dẫn.

Cám ơn mọi người rất nhiều. Bác nào giúp em em xin hậu tạ chầu cafe tử tế ^^

Link file: https://www.dropbox.com/s/l3nf372saecmgsl/SWDOWN-VN-20100731.xlsx

Dữ liệu của bạn khủng thật đấy (mình chưa từng thấy) chắc là xuất ra từ phần mềm nào đó.
Nhưng theo mình bạn không nên sửa dữ liệu (hoặc đã sửa là sửa hết luôn). Vì nếu sửa dở dang thì người giúp bạn sẽ rất khó tìm thấy quy luật để xác định từng vùng dữ liệu cần nối.
Bạn cứ để nguyên dữ liệu và giải thích cách xác định vùng dữ liệu cần nối là đc rồi.

Cái này phải dùng VBA thôi chứ công thức là treo máy luôn :D
 
Dữ liệu của bạn khủng thật đấy (mình chưa từng thấy) chắc là xuất ra từ phần mềm nào đó.
Nhưng theo mình bạn không nên sửa dữ liệu (hoặc đã sửa là sửa hết luôn). Vì nếu sửa dở dang thì người giúp bạn sẽ rất khó tìm thấy quy luật để xác định từng vùng dữ liệu cần nối.
Bạn cứ để nguyên dữ liệu và giải thích cách xác định vùng dữ liệu cần nối là đc rồi.

Cái này phải dùng VBA thôi chứ công thức là treo máy luôn :D



Cái này là đề tài khoa học mình làm tay đó bạn àh...Không phải xuất từ kho dữ liệu nào cả.

Vì ban đầu mình làm theo hàng, nhưng do yêu cầu của người hướng dẫn nên mình phải chuyển đổi lại cái dữ liệu này thành 1 hàng. Bạn giúp mình với nhé.

Thanks bạn nhiều ^^
 
Cái này là đề tài khoa học mình làm tay đó bạn àh...Không phải xuất từ kho dữ liệu nào cả.

Vì ban đầu mình làm theo hàng, nhưng do yêu cầu của người hướng dẫn nên mình phải chuyển đổi lại cái dữ liệu này thành 1 hàng. Bạn giúp mình với nhé.

Thanks bạn nhiều ^^

Trong Excel 2007 trở lên chỉ có 16.384 cột, dữ liệu thực tế của bạn hơn số đó thì bạn xử lý thế nào?
 
Trong file mình gửi có highlight đoạn mẫu. Cứ đúng 7 cột 15 hàng là thành 1 hàng dữ liệu duy nhất (tương đương 1 hàng 99 cột).
 
Ra đâu cũng đc bạn. Sheet mới, hoặc nằm kế bên vùng hightlight để đối chiếu cũng đc ^^.

Bạn giúp mình nhé ^^ Thanks bạn nhiều

Tôi làm thử cho bạn 7 khối, bạn tự nghiên cứu và tối ưu nhé.

Mã:
Sub Gop()
    Dim sSQL As String, cnn As Object, rst As Object
    Dim i As Byte, recArray As Variant, recCount As Long, iRow As Long, iRun As Long
    Set cnn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.Recordset")
    cnn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & _
              ";Extended Properties=""Excel 12.0;HDR=No;IMEX=1"";")
    iRow = 104
    For iRun = 0 To 7
        sSQL = ""
        For i = 1 To 7
            sSQL = sSQL & " SELECT F" & i & " AS GOP " & _
                           "FROM [Sheet1$A" & iRow & ":G" & iRow + 14 & "] " & _
                           "WHERE F" & i & " IS NOT NULL UNION ALL "
        Next
        Set rst = cnn.Execute(Left(sSQL, Len(sSQL) - 10))
        recArray = rst.GetRows
        recCount = UBound(recArray, 2) + 1
        Sheet2.Cells(Sheet2.[A65536].End(3).Offset(1).Row, 1).Resize(1, recCount).Value = recArray
        iRow = iRow + 15
    Next
    Sheet2.Select
    Erase recArray
    rst.Close: Set rst = Nothing
    cnn.Close: Set cnn = Nothing
 
End Sub
 
Tôi làm thử cho bạn 7 khối, bạn tự nghiên cứu và tối ưu nhé.

Mã:
Sub Gop()
    Dim sSQL As String, cnn As Object, rst As Object
    Dim i As Byte, recArray As Variant, recCount As Long, iRow As Long, iRun As Long
    Set cnn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.Recordset")
    cnn.Open ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & _
              ";Extended Properties=""Excel 12.0;HDR=No;IMEX=1"";")
    iRow = 104
    For iRun = 0 To 7
        sSQL = ""
        For i = 1 To 7
            sSQL = sSQL & " SELECT F" & i & " AS GOP " & _
                           "FROM [Sheet1$A" & iRow & ":G" & iRow + 14 & "] " & _
                           "WHERE F" & i & " IS NOT NULL UNION ALL "
        Next
        Set rst = cnn.Execute(Left(sSQL, Len(sSQL) - 10))
        recArray = rst.GetRows
        recCount = UBound(recArray, 2) + 1
        Sheet2.Cells(Sheet2.[A65536].End(3).Offset(1).Row, 1).Resize(1, recCount).Value = recArray
        iRow = iRow + 15
    Next
    Sheet2.Select
    Erase recArray
    rst.Close: Set rst = Nothing
    cnn.Close: Set cnn = Nothing
 
End Sub


Hướng dẫn chi tiết giúp mình được không bạn...Mình cực gà phần excel !$@!!
 
Tôi đã làm trong file, bạn nhớ Enable Macro khi mở file nhé.

Mình coi file của bạn làm rồi. Mà sao nó lại thiếu 1 giá trị vậy bạn ơi ?

Ví dụ: cái highlight số cuối cùng phải là 398,7371.

Rùi giờ mình làm hết cho các số liệu đó như thế nào bạn nhỉ ?

Thanks bạn nhiều lắm luôn í }}}}}
 
Mình coi file của bạn làm rồi. Mà sao nó lại thiếu 1 giá trị vậy bạn ơi ?

Ví dụ: cái highlight số cuối cùng phải là 398,7371.

Rùi giờ mình làm hết cho các số liệu đó như thế nào bạn nhỉ ?

Thanks bạn nhiều lắm luôn í }}}}}

Nó phải theo thứ tự chứ bạn, cái mà bạn nói cuối cùng nó nằm ở cột A, sau khi cột A xong thì mới ghép đến cột B, bạn kiểm tra kỷ nhé.
 
Nó phải theo thứ tự chứ bạn, cái mà bạn nói cuối cùng nó nằm ở cột A, sau khi cột A xong thì mới ghép đến cột B, bạn kiểm tra kỷ nhé.

Theo như file chạy kế quả thì số cuối cùng là: 415,1934

http://gyazo.com/8164c29ecdfb736b75da7fe2c2bac5fb

Còn bản số liệu của mình số cuối cùng là: 398,7371

http://gyazo.com/c7a4b3551dfd04ef7cdf8701fae77ee2

Cái này mất số 398,7371
 
Cái này hình như là hệ tọa độ điểm point nào đó...........
 
Xin lỗi theo ý như bạn thì tôi không làm được.

Vậy nếu hàng đó mình bổ sung các giá trị 0 để nó đủ nội dung thì đc ko bạn ?

Hoặc dã dụ hàng đó để đó cũng được. Mình sẽ copy tay cho nó vào hàng cuối. Bạn hướng dẫn cho mình làm trên file của mình được không ?

Thanks bạn nhiều lắm
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn thử xem đúng ý bạn chưa.

Chọn khối dữ liệu cần nối.
Chạy macro
 

File đính kèm

Web KT

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

Back
Top Bottom