Tổng hợp dữ liệu nhiều sheet trong cùng 1 file excel (3 người xem)

Liên hệ QC

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

bosscomhcvp

Thành viên mới
Tham gia
24/8/18
Bài viết
21
Được thích
0
Chào các anh/chị
Em đang cần xử lý bài toán như sau: File excel dữ liệu khách hàng sửa chữa, từng sheet là từng khách hàng, sheet cuối cùng là sheet tổng hợp, trong sheet khách hàng sẽ có: ngày tháng, số phiếu, tên khách hàng, tên hàng, chứng từ liên quan, ... Em đang muốn tổng hợp các thông tin ở các sheet đó vào sheet tổng hợp (dữ liệu bôi vàng là dữ liệu cần lấy). Có cách nào để khi thêm khách hàng, cột tổng hợp tự động cập nhật dữ liệu vào không ạ?
Anh/chị nào biết chỉ em với ạ.
 

File đính kèm

Chào các anh/chị
Em đang cần xử lý bài toán như sau: File excel dữ liệu khách hàng sửa chữa, từng sheet là từng khách hàng, sheet cuối cùng là sheet tổng hợp, trong sheet khách hàng sẽ có: ngày tháng, số phiếu, tên khách hàng, tên hàng, chứng từ liên quan, ... Em đang muốn tổng hợp các thông tin ở các sheet đó vào sheet tổng hợp (dữ liệu bôi vàng là dữ liệu cần lấy). Có cách nào để khi thêm khách hàng, cột tổng hợp tự động cập nhật dữ liệu vào không ạ?
Anh/chị nào biết chỉ em với ạ.
Bạn làm quy trình ngược rồi.
Tất cả dữ liệu cần thiết cho 1 phiếu xuất kho bạn nhập vào sheet TH.
Muốn in hay xem phiếu xuất kho nào thì chọn số phiếu hay gì đó mà xem trong 1 sheet Phiếu Xuất.
Chẳng lẽ có 1000 phiếu là tạo 1000 sheet?
Chỉ cần 2 sheet, 1 sheet TH có thể 100000 dòng, 1 sheet Phiếu xuất (là biểu mẫu cố định).
 
Hướng bạn gợi ý mình làm được rồi ạ.
Cái bài của mình là mình có phiếu xuất riêng lẻ rồi và muốn tổng hợp lại, phiếu xuất đã có từ phần mềm kế toán mà không có tính năng tổng hợp riêng từng đối tượng khách hàng trên đó nên mình mới phải làm excel ạ.
 
Chào các anh/chị
Em đang cần xử lý bài toán như sau: File excel dữ liệu khách hàng sửa chữa, từng sheet là từng khách hàng, sheet cuối cùng là sheet tổng hợp, trong sheet khách hàng sẽ có: ngày tháng, số phiếu, tên khách hàng, tên hàng, chứng từ liên quan, ... Em đang muốn tổng hợp các thông tin ở các sheet đó vào sheet tổng hợp (dữ liệu bôi vàng là dữ liệu cần lấy). Có cách nào để khi thêm khách hàng, cột tổng hợp tự động cập nhật dữ liệu vào không ạ?
Anh/chị nào biết chỉ em với ạ.
Minh gợi ý 1 cách. Sheet1 bạn đặt tên là PX1801, trên Sheet tổng hợp tại cột số phiếu, dòng 1 bạn nhập PX1801 sử dụng hàm tìm kiếm kết hợp với hàm Indirect dữ liệu sẽ được lấy từ Sheet PX1801 vào các cột tương ứng.
 
Lần chỉnh sửa cuối:
Vậy thì bạn nên đính kèm 1 vài file excel phiếu xuất từ phần mềm kế toán ra và úp lên đây. Kèm file tổng hợp của bạn chỉ cần 1 Sheet là đủ.
Bạn không cần phải copy phiếu xuất vào file excel tổng hợp của bạn...
Mình gửi mẫu các file dữ liệu, bạn xem giúp mình
Bài đã được tự động gộp:

Minh gợi ý 1 cách. Sheet1 bạn đặt tên là PX1801, trên Sheet tổng hợp tại cột số phiếu, dòng 1 bạn nhập PX1801 sử dụng hàm tìm kiếm kết hợp với hàm Indirect dữ liệu sẽ được lấy từ Sheet PX1801 vào các cột tương ứng.
Bạn có thể làm thử vào file giúp mình được không?
 

File đính kèm

Lần chỉnh sửa cuối:
Chỉ có thể làm bằng VBA. Nếu bạn biết xài, không biết thì search cách xài code VBA.

Đưa code này vào File tổng hợp. Chạy code -> cửa sổ mở ra: chọn nhiều file 1, 2, 3, ...n file -> OK

Mã:
Public Sub GPE()
Dim dArr(1 To 10000, 1 To 8), sArr, I As Long, K As Long, Wb As Workbook, Ws As Worksheet, Item, Ng
Application.ScreenUpdating = False
With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = True 'False
    .Filters.Add "Microsoft Excel Files", "*.xls*", 1
    If Not .Show = -1 Then
        MsgBox "Ban chua chon File", vbInformation, "----Mr.GPE----"
        Exit Sub
    End If
For Each Item In .SelectedItems
    If Left(Item, 1) <> "~" Then
    Application.DisplayAlerts = False
    Application.AskToUpdateLinks = False
        Set Wb = Workbooks.Open(Item)
        Set Ws = Wb.Sheets(1)
        sArr = Ws.Range("A1:Z1000").Value
        For I = 18 To UBound(sArr)
            If Len(sArr(I, 6)) And sArr(I, 6) <> "C" & ChrW(7897) & "ng" Then
                K = K + 1
                dArr(K, 1) = K
                dArr(K, 2) = Mid(Ws.[P9].Value, 7, 100)
                Ng = Ws.[B7].Value
                dArr(K, 3) = DateSerial(Val(Right(Ng, 4)), Val(Mid(Ng, InStr(1, Ng, "tháng") + 6, 2)), Val(Mid(Ng, 6, 2)))
                dArr(K, 4) = Ws.[L11].Value
                dArr(K, 5) = Ws.[J12].Value
                dArr(K, 6) = sArr(I, 6)
                dArr(K, 7) = sArr(I, 26)
                dArr(K, 8) = Ws.[M1000].End(3).Value
            End If
        Next
        Wb.Close
    End If
Next
End With
If K Then
    Range("A5").Resize(10000, 8).ClearContents
    Range("A5").Resize(K, 8).Value = dArr
End If
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Application.ScreenUpdating = True
End Sub
Cảm ơn bạn rất nhiều!
Bài đã được tự động gộp:

Cảm ơn bạn rất nhiều!
Mình làm được rồi. Cảm ơn bạn nhiều ạ <3
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom