Campanella
Thành viên mới

- Tham gia
- 18/3/11
- Bài viết
- 32
- Được thích
- 0
Mình nghĩ bài này không thể giải quyết được bằng công thức Excel (không biết Offset, Match, Indirect,... có làm được không).Em có 1 câu hỏi nhỏ về tính tổng điều kiện nhưng giá trị của mảng tính nó thay đổi. Mong các bác giúp em giải quyết với
EM mô tả trong file đính kèm dưới đây ạ.
Cám ơn các bác nhiều ạ![]()
Sub Total()
Dim iBegin As Range, iEnd As Range, fEnd As Long
On Error Resume Next
Set iEnd = [B:B].Find("End", [B1], , , , xlPrevious)
If iEnd Is Nothing Then Exit Sub
fEnd = iEnd.Row
Do
Set iBegin = [B:B].Find("Begin", iEnd, , , , xlPrevious)
If iBegin Is Nothing Then Exit Sub
If iBegin.Row > iEnd.Row Then Exit Sub
iEnd.Offset(, 1) = WorksheetFunction.Sum(Range(iBegin, iEnd).Offset(, -1))
Set iEnd = [B:B].Find("End", iEnd, , , , xlPrevious)
Loop Until iEnd.Row = fEnd
End Sub
Ở cell đầu tiên cột muốn lấy kết quả bạn nhập:Em có 1 câu hỏi nhỏ về tính tổng điều kiện nhưng giá trị của mảng tính nó thay đổi. Mong các bác giúp em giải quyết với
EM mô tả trong file đính kèm dưới đây ạ.
Cám ơn các bác nhiều ạ![]()
=IF(B2="end",SUM(OFFSET(A2,,,MAX(IF($B$2:B2="begin",ROW($A$2:A2)-ROW()-1,"")))),"")