Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 14

Chủ đề: Tính tổng trên nhiều sheet dữ liệu không đồng đều

  1. #1
    linhti0209 Guest

    Tính tổng trên nhiều sheet dữ liệu không đồng đều

    Dự liệu em có 7 sheet, em muốn tính tổng trên sheet Total dựa vào mã cột B mà không biết dùng hàm Sumif thế nào? Em có tham khảo 1 số ví dụ trên diễn dàn, nhưng vẫn không tính ra được.
    - Tên sheet của em thì theo mã đơn hàng nên sẽ không theo thứ tự nào.
    - Số dòng trong mỗi sheet sẽ không đồng đều, có sheet có 30 dòng, có sheet thì hơn 100 dòng...
    Trong ví dụ này thì em đã rút gọn lại còn 7 sheet chứ thực thế thì trên 30 sheet lận.
    Nhờ mọi người giúp đỡ dùm em, chỉ giúp em bài này và sau này em có thể áp dụng cho nhiều sheet hơn.

    Thanks !!!

  2. #2
    lamminh1808 Guest
    (1) Bạn cần tính tổng trên cột nào ở các trang tính?

    (2) Xài VBA có chịu không?

    (*) Chú í: Các trang tính <> "Total" fải có cấu trúc hết nhau.

  3. #3
    mallboro Guest
    Mình muốn tính trên cột H (Nguyên phụ liệu hủy).
    - Thì bạn biết gì cho mình cái đó vậy. VBA mình không biết gì hết, chỉ bít là nó tốt thui. Khi nào bạn tính bằng công thức được thì chỉ thêm cho mình với. Tại file thực tế mình có rất nhiều sheet và mỗi tuần thì số lượng sheet thống kê lại tăng hay giảm bất thường nên mình không biết điều chỉnh lại code.
    Thanks bạn nhiều nha.

  4. #4
    saolaikhong Guest
    Trích dẫn Gửi bởi kazumair
    Mình muốn tính trên cột H (Nguyên phụ liệu hủy).
    - Thì bạn biết gì cho mình cái đó vậy. VBA mình không biết gì hết, chỉ bít là nó tốt thui. Khi nào bạn tính bằng công thức được thì chỉ thêm cho mình với. Tại file thực tế mình có rất nhiều sheet và mỗi tuần thì số lượng sheet thống kê lại tăng hay giảm bất thường nên mình không biết điều chỉnh lại code.
    Thanks bạn nhiều nha.
    Bạn chưa trả lới bài #2:
    - Bạn nói muốn SumIf()mà tính cột nào?
    Nếu dùng VBA thì bạn nên nói thêm:
    - Mã HS trong cột E sheet Total ở đâu ra?
    - Dữ liệu các cột A là dùng VBA lọc qua hay tự nhập thủ công?

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Mình muốn dựa vào mã ở cột B sheet total, để tính ra tổng Nguyên phụ liệu hủy ở tất cả các sheet còn lại. Điền kết quả tính ra ở cột F sheet total, ngay chỗ mình để mấy dấu chấm hỏi đó.
    - Ma HS chỉ để luư hồ sơ thui, bạn ko cần quan tâm đến nó.
    - Cột A-D tự nhập đó.

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kazumair
    Mình muốn dựa vào mã ở cột B sheet total, để tính ra tổng Nguyên phụ liệu hủy ở tất cả các sheet còn lại. Điền kết quả tính ra ở cột F sheet total, ngay chỗ mình để mấy dấu chấm hỏi đó.
    - Ma HS chỉ để luư hồ sơ thui, bạn ko cần quan tâm đến nó.
    - Cột A-D tự nhập đó.
    Tổng số mã không trùng trong 7 sheet là 51, trong sheet total chỉ có 32 mã là có trong 7 sheet con.
    Có những mã có trong 7 sheet con nhưng trong sheet total hổng có thì ráng chịu.


    Mã nguồn PHP:
    Public Sub GPE() Dim Dic As Object, Ws As Worksheet, sArr(), dArr(), I As Long, Tem As String Set Dic = CreateObject("Scripting.Dictionary") For Each Ws In ThisWorkbook.Worksheets If Ws.Name <> "total" Then sArr = Ws.Range(Ws.[B7], Ws.[B7].End(xlDown)).Resize(, 7).Value2 For I = 1 To UBound(sArr, 1) Tem = sArr(I, 1) If Not Dic.Exists(Tem) Then Dic.Add Tem, sArr(I, 7) Else Dic.Item(Tem) = Dic.Item(Tem) + sArr(I, 7) End If Next I End If Next Ws With Sheets("total") sArr = .Range(.[B2], .[B2].End(xlDown)).Value ReDim dArr(1 To UBound(sArr, 1), 1 To 1) For I = 1 To UBound(sArr, 1) Tem = sArr(I, 1) If Dic.Exists(Tem) Then dArr(I, 1) = Dic.Item(Tem) Next I .[F2].Resize(I - 1) = dArr End With Set Dic = Nothing End Sub  

  7. #7
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Anh Ba Tê có thể đưa code VBA của anh vào file excel của em luôn không vậy? Em không biết đưa thế nào cho nó chạy nữa. Bấm Alt + F11 rùi vào Insert Module, xong paste vô khung, bấm Alt + Q đóng lại mà không thấy xuất hiện kết quả gì hết đó.
    Trong sheet total anh chỉ thấy có 32 mã có trong 7 sheet vì em xóa bớt nhiều dòng cho ngắn gọn bớt. Nếu file gốc em có 25 sheet thì code của anh, chỗ số “7” em sửa thành “25” hay sao anh. Và những mã trong sheet total của em có thêm trong những sheet khác thì nó tự cập nhật hay phải viết code khác thế anh.
    Khi nào anh Ba Tê nghiên cứu được tính tổng ở sheet total bằng công thức hàm sumif lồng với indirect .... thì chỉ thêm cho em với nha.
    Thanks !!!

  8. #8
    lediem_itvn Guest
    Trích dẫn Gửi bởi kazumair
    đưa code VBA của anh vào file excel của em luôn không vậy? Em không biết đưa thế nào cho nó chạy nữa. Bấm Alt + F11 rùi vào Insert Module, xong paste vô khung, bấm Alt + Q đóng lại mà không thấy xuất hiện kết quả gì hết đó.
    Bấm Alt + F8 để chạy code. Code trên 100 sheet còn chạy được nữa mà. Không cần sửa đâu

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kazumair
    Dự liệu em có 7 sheet, em muốn tính tổng trên sheet Total dựa vào mã cột B mà không biết dùng hàm Sumif thế nào? Em có tham khảo 1 số ví dụ trên diễn dàn, nhưng vẫn không tính ra được.
    - Tên sheet của em thì theo mã đơn hàng nên sẽ không theo thứ tự nào.
    - Số dòng trong mỗi sheet sẽ không đồng đều, có sheet có 30 dòng, có sheet thì hơn 100 dòng...
    Trong ví dụ này thì em đã rút gọn lại còn 7 sheet chứ thực thế thì trên 30 sheet lận.
    Nhờ mọi người giúp đỡ dùm em, chỉ giúp em bài này và sau này em có thể áp dụng cho nhiều sheet hơn.

    Thanks !!!
    Dùng công thức sau cho F2


    Mã:
    =SUMPRODUCT(SUMIF(INDIRECT("'"&$I$1:$I$6&"'!b7:b1000"),B2,INDIRECT("'"&$I$1:$I$6&"'!h7:h1000")))
    với I1:I6 lần lượt chứa tên các sheets cần cộng

    7244

    7876

    A1 5018

    B685

    C7054

    O PER

  10. #10
    rinkatori Guest
    Trích dẫn Gửi bởi kazumair
    Anh Ba Tê có thể đưa code VBA của anh vào file excel của em luôn không vậy? Em không biết đưa thế nào cho nó chạy nữa. Bấm Alt + F11 rùi vào Insert Module, xong paste vô khung, bấm Alt + Q đóng lại mà không thấy xuất hiện kết quả gì hết đó.
    Trong sheet total anh chỉ thấy có 32 mã có trong 7 sheet vì em xóa bớt nhiều dòng cho ngắn gọn bớt. Nếu file gốc em có 25 sheet thì code của anh, chỗ số “7” em sửa thành “25” hay sao anh. Và những mã trong sheet total của em có thêm trong những sheet khác thì nó tự cập nhật hay phải viết code khác thế anh.
    Khi nào anh Ba Tê nghiên cứu được tính tổng ở sheet total bằng công thức hàm sumif lồng với indirect .... thì chỉ thêm cho em với nha.
    Thanks !!!
    Công thức thì thử ở bài #9.
    Gán vào sheet thì xem file. Khi mở file nhớ chọn Enable Macros
    Khi nào số liệu 2 ô G1 = H1 là đúng, nếu G1 < H1 thì mã trong sheet "total" chưa đủ.
    Thử khoảng 100 sheet con và 1 sheet "total" xem sao, không cần sửa code.
    (Chú ý: Ngoài các sheet con cần tổng hợp và 1 sheet "total" không được có thêm các sheet "lubu" khác)

Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •