Cần giúp lấy dữ liệu từ bảng Data và trích gộp thành bảng dữ liệu mới.

Liên hệ QC

ladykiller81

Thành viên chính thức
Tham gia
13/7/08
Bài viết
69
Được thích
3
Xin chào ACE, em có bảng dữ liệu được trích xuất từ CSDL của cty gồm các cột sau (Có thể xem rõ hơn trong file đính kèm) : Ten_Cha, SL_Cha, DV_Cha, Ten_Con, SL_con, DV_con. Yêu cầu là em muốn xây dựng 1 bảng dữ liệu mới như trong file đính kèm. Dùng công thức hay code VBA đều được hết. Xin cảm ơn các ace.
 

File đính kèm

  • trichdulieu.xlsx
    19.4 KB · Đọc: 13
Xin mọi người cho e cao kiến, em đang bị rối không biết pải làm sao. Hiện e đã tạo ra được 1 bảng dữ liệu như trong hình và kết quả mong muốn như trong hình luôn. Có lẽ phần trên e diễn đạt không rỏ làm mọi người không hiểu. E chỉ muốn gộp lại những mục trung gian cho ra đến phần vật liệu sau cùng (RM-, PK-, Overhead-, Labor-). Xin ace chỉ giúp, cảm ơn rất nhiều.bangdulieu.png
ketquamongmuon.png
 

File đính kèm

  • trichdulieu2.xlsx
    17.1 KB · Đọc: 11
Xin mọi người cho e cao kiến, em đang bị rối không biết pải làm sao. Hiện e đã tạo ra được 1 bảng dữ liệu như trong hình và kết quả mong muốn như trong hình luôn. Có lẽ phần trên e diễn đạt không rỏ làm mọi người không hiểu. E chỉ muốn gộp lại những mục trung gian cho ra đến phần vật liệu sau cùng (RM-, PK-, Overhead-, Labor-). Xin ace chỉ giúp, cảm ơn rất nhiều.View attachment 209573
View attachment 209574
Bao nhiêu cột cần lấy vậy bạn? Cột G và H trong file của bạn không thỏa điều kiện nên không lấy. Tuy nhiên 2 cột này có phát sinh dữ liệu cần lấy hay là không?
 
Bao nhiêu cột cần lấy vậy bạn? Cột G và H trong file của bạn không thỏa điều kiện nên không lấy. Tuy nhiên 2 cột này có phát sinh dữ liệu cần lấy hay là không?
Cảm ơn Hai Lúa Miền Tây! Cột G và H là 2 cột dữ liệu trung gian để có dữ liệu côt I đến cột L, không cần lấy đâu.
 
Cảm ơn Hai Lúa Miền Tây! Cột G và H là 2 cột dữ liệu trung gian để có dữ liệu côt I đến cột L, không cần lấy đâu.
Bạn thử code sau nhé:
Mã:
Sub LayDL_HLMT()
    Dim strSQL As String
    strSQL = "Select F1,F2,F3,val(F4) from [Sheet1$A3:L] where F3 like 'RM-%' or F3 like 'PK-%' or F3 like 'Overhead-%' or F3 like 'Labor-%'" & _
             " Union all Select F1,F2,F5,Val(F6) from [Sheet1$A3:L] where F5 like 'RM-%' or F5 like 'PK-%' or F5 like 'Overhead-%' or F5 like 'Labor-%'" & _
             " Union all Select F1,F2,F9,Val(F10) from [Sheet1$A3:L] where F9 like 'RM-%' or F9 like 'PK-%' or F9 like 'Overhead-%' or F9 like 'Labor-%'" & _
             " Union all Select F1,F2,F11,Val(F12) from [Sheet1$A3:L] where F11 like 'RM-%' or F11 like 'PK-%' or F11 like 'Overhead-%' or F11 like 'Labor-%'"
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet1.Range("N3").CopyFromRecordset .Execute(strSQL)
    End With
End Sub
 
Bạn thử code sau nhé:
Mã:
Sub LayDL_HLMT()
    Dim strSQL As String
    strSQL = "Select F1,F2,F3,val(F4) from [Sheet1$A3:L] where F3 like 'RM-%' or F3 like 'PK-%' or F3 like 'Overhead-%' or F3 like 'Labor-%'" & _
             " Union all Select F1,F2,F5,Val(F6) from [Sheet1$A3:L] where F5 like 'RM-%' or F5 like 'PK-%' or F5 like 'Overhead-%' or F5 like 'Labor-%'" & _
             " Union all Select F1,F2,F9,Val(F10) from [Sheet1$A3:L] where F9 like 'RM-%' or F9 like 'PK-%' or F9 like 'Overhead-%' or F9 like 'Labor-%'" & _
             " Union all Select F1,F2,F11,Val(F12) from [Sheet1$A3:L] where F11 like 'RM-%' or F11 like 'PK-%' or F11 like 'Overhead-%' or F11 like 'Labor-%'"
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=No"""
        Sheet1.Range("N3").CopyFromRecordset .Execute(strSQL)
    End With
End Sub
Chân thành cảm ơn bạn Hai Lúa rất nhiều. Để mình thử code xem sao.
Đã thử code chạy rất ngon! một lần nửa cảm ơn tất cả ace quan tâm và đặc biệt bạn Hai Lúa Miền Tây (cao thủ GPE) :)
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom