TÍNH TỔNG CÓ ĐIỀU KIỆN

Liên hệ QC

vubinh099

Thành viên mới
Tham gia
30/10/15
Bài viết
43
Được thích
4
Nhờ các bác viết giúp em 1 code tính tổng có điều kiện theo file đính kèm với ạ.

Em có 2 cột A, B. Cứ cells A (i) khác rỗng thì cells B (i) = tổng từ cells B (i + 1) cho đến cells B mà cells A khác rỗng tiếp theo trừ đi 1 dòng.

Em cám ơn nhiều!
 

File đính kèm

Nhờ các bác viết giúp em 1 code tính tổng có điều kiện theo file đính kèm với ạ.

Em có 2 cột A, B. Cứ cells A (i) khác rỗng thì cells B (i) = tổng từ cells B (i + 1) cho đến cells B mà cells A khác rỗng tiếp theo trừ đi 1 dòng.

Em cám ơn nhiều!
Nếu dữ liệu ít, dùng:
Mã:
C2=IF(A2="","",SUM(B3:$B$85)-SUM(C3:$C$85))
Nếu nhiều hơn 1000 dòng, dùng:
Mã:
C2=IF(A2="","",SUM(INDEX(B3:INDEX(B3:$B$86,IFERROR(MATCH("*",A3:$A$86,)-1,)),)))
Enter fill xuống

Thân
 

File đính kèm

Upvote 0
Thử:
Mã:
Public Sub test()
Dim i As Long, lr As Long, MyTotal As Double
lr = Range("B" & Rows.Count).End(xlUp).Row
For i = lr - 1 To 2 Step -1
If Range("A" & i) = vbEmpty Then
   MyTotal = MyTotal + Range("B" & i).Value
Else
    Range("B" & i) = MyTotal
    MyTotal = 0
End If
Next i
End Sub
 
Upvote 0
Nếu dữ liệu ít, dùng:
Mã:
C2=IF(A2="","",SUM(B3:$B$85)-SUM(C3:$C$85))
Nếu nhiều hơn 1000 dòng, dùng:
Mã:
C2=IF(A2="","",SUM(INDEX(B3:INDEX(B3:$B$86,IFERROR(MATCH("*",A3:$A$86,)-1,)),)))
Enter fill xuống

Thân
CÁM ƠN BÁC. CÔNG THỨC CỦA BÁC GIẢI QUYẾT ĐƯỢC NHU CẦU CỦA EM. NHƯNG EM CHƯA BIẾT CHUYỂN SANG CODE.
Bài đã được tự động gộp:

Thử:
Mã:
Public Sub test()
Dim i As Long, lr As Long, MyTotal As Double
lr = Range("B" & Rows.Count).End(xlUp).Row
For i = lr - 1 To 2 Step -1
If Range("A" & i) = vbEmpty Then
   MyTotal = MyTotal + Range("B" & i).Value
Else
    Range("B" & i) = MyTotal
    MyTotal = 0
End If
Next i
End Sub
Cám ơn bác nhiều ạ. Đúng cái em đang cần. Em đang học VBA, em không hiểu cái chổ này lắm MyTotal + Range("B" & i).Value. Bác giải thích giúp em được không ạ. Chổ này em hay thấy sử dụng nhưng vẫn chưa hiểu.
 
Upvote 0
Cám ơn bác nhiều ạ. Đúng cái em đang cần. Em đang học VBA, em không hiểu cái chổ này lắm MyTotal + Range("B" & i).Value. Bác giải thích giúp em được không ạ. Chổ này em hay thấy sử dụng nhưng vẫn chưa hiểu.
Chắc là vầy:
nều dòng i của cột A là trống thì "Cái ấy"="Cái ấy"+"Cái kia" ngược lại thì dòng i cột B ="Cái ấy" rồi cho "Cái ấy"=0 rồi tiếp tục vòng lặp
Ghi chú: "Cái ấy"="MyTotal"; "Cái kia"=Range("B" & i).Value :p
 
Upvote 0
Chắc là vầy:
nều dòng i của cột A là trống thì "Cái ấy"="Cái ấy"+"Cái kia" ngược lại thì dòng i cột B ="Cái ấy" rồi cho "Cái ấy"=0 rồi tiếp tục vòng lặp
Ghi chú: "Cái ấy"="MyTotal"; "Cái kia"=Range("B" & i).Value :p
Vâng, sau khi đọc cái giải thích của bạn xong mình vẫn không hiểu j :D. Mình mới quyết tâm đi nghiên cứu cái code, sau đó quyết định bỏ cái MyTotal = 0 đi. Mình mới thật sự hiểu ra được cái for ...next hoạt động như thế nào, và vòng lặp là cái gì.

Cám ơn bạn!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom