Công thức tính tổng trên nhiều sheet

Liên hệ QC

edu8

Thành viên mới
Tham gia
19/12/06
Bài viết
5
Được thích
2
Tôi có 1 tệp chứa 46 sheet dữ liệu và 1 sheet tổng. Tôi muốn cộng tổng 46 ô A1 của các sheep với nhau thì phải dùng công thức nào. Bình thường tôi làm thủ công rất mất thời gian. Mong các cao thủ chỉ giúp.
Xin cảm ơn nhiều
 
edu8 đã viết:
Tôi có 1 tệp chứa 46 sheet dữ liệu và 1 sheet tổng. Tôi muốn cộng tổng 46 ô A1 của các sheep với nhau thì phải dùng công thức nào. Bình thường tôi làm thủ công rất mất thời gian. Mong các cao thủ chỉ giúp.
Xin cảm ơn nhiều
Cái này hình như phải dùng Macro hoặc Indirect gì đấy, vào web mình cũng học được vài chiêu.
 
ThuNghi đã viết:
Tại Sh tong, =SUM(Sheet1:Sheet56!A1), vd là cộng các số tại A1

Anh Sơn nhà ta đã có đoạn code rất hay này:

Public Sub Consolidate2()
'Hop nhat thong tin tren tung sheet
'Chuong trinh se tu dong tinh tong tat ca cac o trong mot vung nao do cua tat ca cac sheet
'Can chu y dia chi cua cac o dang R1RC
'Neu ban chua quen voi cach nay thi vao Tools/Options, chon tab General
'roi danh dau vao tuy chon R1C1 reference style de xac dinh vung cho de dang
Dim arrayData()
Dim i As Integer
Dim sh As Worksheet
ReDim arrayData(1 To ActiveWorkbook.Worksheets.Count - 1)
Sheets("Master").Select
i = 0
For Each sh In Worksheets
If sh.Name <> ActiveSheet.Name Then
i = i + 1
'Vung R800C13:R800C19 tuong tu nhu vung M800:N800
arrayData(i) = sh.Name & "!R800C13:R800C15"
sh.Cells(800, "M").Formula = "=sum(M1:M799)"
sh.Cells(800, "N").Formula = "=sum(N1:N799)"
sh.Cells(800, "O").Formula = "=sum(O1:O799)"
End If
Next sh
Range("M800").Select
Selection.Consolidate Sources:=arrayData(), _
Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False
End Sub

Bạn edu8 nghiên cứu xem, nếu không dùng được hỏi tiếp nhen
 
minh dung` ham` indirect ket' ho.p voi' sumoffset
la` duoc, minh da tung` lam` toi' 150 sheet
 
anhchanghamhoc đã viết:
minh dung` ham` indirect ket' ho.p voi' sumoffset
la` duoc, minh da tung` lam` toi' 150 sheet

Em post lên đi để mọi người cùng nghiên cứu học hỏi.
 
Các bác chú ý, đây là chỉ tình trên 1 cell thôi. Dùng ndirect ket' ho.p voi' sumoffset thì không biết phải dùng đến bao nhiêu cell nhỉ ?
Tại sao trong bài toán này không dùng cách nhanh nhất là cộng thủ công nhỉ ? Hoặc nếu dùng Indirect cũng được, chỉ 1 cell nhưng thật là dài, hơn nữa nếu tên sheet thay đổi thì sẽ lập tức bị lỗi.
Thân !
 
Chỉnh sửa lần cuối bởi điều hành viên:
Bạn làm thử cách này nhé minh thấy cũng nhanh mà đơn giản.
Bạn dùng hàm Sum và kích chuột vào ô A1 của sheet 1 và bạn giữ Shift sau đó kích chuột sang ô A1 của sheet 46 là được mà.
 
Nếu đơn thuần là sum các sheet con vào sheet tổng theo tiêu đề cột và tiêu đề hàng, các bạn hãy thử công cụ consolidate của excel thử xem.

Xem thêm bài viết tại đây về công cụ consolidate
http://www.giaiphapexcel.com/forum/showthread.php?t=10217
 
Lần chỉnh sửa cuối:
Chào các bác,

Em có các sheet 001, 002, 003 có chứa các đơn hàng, em muốn tổng hợp lại số lượng đã bán thì làm thế nào ạ

Em cảm ơn nhiều
 

File đính kèm

  • Tong hop hang.xlsx
    29.2 KB · Đọc: 125
Mình cần tính tổng của 1 loại sp của các sheet ra 1 sheet tổng hợp. ai biết chỉ dùm mình với
 

File đính kèm

  • BK NK TP T10-2015.xls
    225.5 KB · Đọc: 154
Mình cần tính tổng của 1 loại sp của các sheet ra 1 sheet tổng hợp. ai biết chỉ dùm mình với

Bạn chạy Macro sau:
Mã:
Option Explicit
Public Sub GPE()
Dim Dic As Object, Ws As Worksheet, sArr, dArr
Dim I As Long, K As Long, CoL As Long, Tem As String
ReDim dArr(1 To 65000, 1 To 3)
Set Dic = CreateObject("Scripting.Dictionary")
For Each Ws In Worksheets
    If Ws.CodeName <> "Sheet1" And Ws.CodeName <> "Sheet5" Then
        sArr = Ws.Range(Ws.[B3], Ws.[B65000].End(3)).Resize(, 4).Value
        For I = 1 To UBound(sArr)
            Tem = UCase(sArr(I, 1))
            If Not Dic.Exists(Tem) Then
                K = K + 1
                Dic.Add Tem, K
                    dArr(K, 1) = sArr(I, 1)
                    dArr(K, 2) = sArr(I, 2)
                    dArr(K, 3) = sArr(I, 4)
                Else
                    dArr(Dic.Item(Tem), 3) = dArr(Dic.Item(Tem), 3) + sArr(I, 4)
            End If
        Next I
    End If
Next Ws
With Sheet5
    .[B3:D65000].ClearContents
    .[B3].Resize(K, 3) = dArr
End With
Set Dic = Nothing
End Sub
 
Xin lỗi em đào mộ. Bác nào giúp em tính tổng theo từng tháng ở sheet Tong hop được ko ạ? E dùng Sumproduct đúng như theo hướng dẫn nhưng ko ra :( :((
 

File đính kèm

  • Tinh tong nhieu sheet.xlsx
    627.3 KB · Đọc: 243
Xin lỗi em đào mộ. Bác nào giúp em tính tổng theo từng tháng ở sheet Tong hop được ko ạ? E dùng Sumproduct đúng như theo hướng dẫn nhưng ko ra :( :((
bài này chỉ dùng công cụ consolidate có sẵn là tuyệt đỉnh.Không có công thức nào chơi lại
 
em muốn tổng hợp file sau thì phải làm sao nhờ mấy anh chỉ em với
tên sheet của em ko theo qui luật và nằm trước sheet tổng hợp
 

File đính kèm

  • DUTOAN.xls
    4.5 MB · Đọc: 61
Xin phép bạn mình cmt để lưu post
 
Web KT
Back
Top Bottom