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
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)
Không có nhận xét nào:
Đăng nhận xét