Cộng nhiều ô qua nhiều Sheet

Bạn có thể dùng hàm SUM để có thể cộng nhiều ô qua nhiều Sheet khác nhau .

Ví dụ

 

=SUM(Sheet1:Sheet10!A1:A100)

Hàm trên cho phép cộng dãy giá trị từ A1 tới A100 trong tất cả các Sheet từ Sheet1 tới Sheet10 . Tuy nhiên điều đó sẽ không linh hoạt khi mà người ta lại dùng các Sheet với những tên khác nhau không theo trình tự .

Để giải quyết việc này chúng ta có thể viết hàm số trong Excel để có thể thực hiện một cách linh hoạt hơn .

  • Mở Excel và file cần làm việc .
  • Bấm tổ hợp phím Alt-F11 để vào cửa sổ Visual Basic , bấm menu Insert , chọn Module .
  • Bạn sao chép nguyên văn nội dung bên dưới

Function SumAllWorksheets(InputRange As Range, InclAWS As Boolean) As Double

Dim ws As Worksheet, TempSum As Double

    Application.Volatile True

    TempSum = 0

    For Each ws In ActiveWorkbook.Worksheets

        If InclAWS Then

            TempSum = TempSum + Application.WorksheetFunction.Sum(ws.Range(InputRange.Address))

        Else

            If ws.Name <> ActiveSheet.Name Then

               TempSum = TempSum + Application.WorksheetFunction.Sum(ws.Range(InputRange.Address))

            End If

        End If

    Next ws

    Set ws = Nothing

    SumAllWorksheets = TempSum

End Function

  • Thay vì đưa ra công thức như =SUM(Sheet1:Sheet10!A1:A100) , bạn có thể đưa công thức  =SumAllWorksheets(A1:A100,0) . Số 0 phía sau A100 có nghĩa là không  tính tới Sheet đang đặt công thức . Nếu tính tới tất cả các Sheet thì có thể đưa ra công thức kiểu như =SumAllWorksheets(A1:D100,1)

 

\"\"