sep_hatxel
Thành viên thường trực




- Tham gia
- 24/5/10
- Bài viết
- 217
- Được thích
- 7
Mình có bảng tính mong GPE giúp đỡ macro cách tính tổng 4 hàng liên tiếp chỉ lấy giá trị lớn hơn hoặc bằng 2. Xin chân thành cảm ơn!
Sub t()
Const DONGTONG = 5 ' dòng để ghi tổng
Const COTCUOI = 40 ' cột cuối
For dtong = DONGTONG To 65000 Step DONGTONG ' tính từng dòng tổng
If Cells(dtong, 1).Value = "" Then Exit For ' hết dữ liệu
For cot = 2 To COTCUOI
tong = 0
dem = 0
For dDem = 1 To DONGTONG -1 ' lấy tổng từng ô, đồng thời đếm sô ô có dữ liệu
If Cells(dtong - dDem, cot) <> "" Then
tong = tong + Cells(dtong - dDem, cot)
dem = dem + 1
End If
Next dDem
If dem >= 2 Then Cells(dtong, cot) = tong
Next cot
Next dtong
End Sub
Hình như công thức này "tèo"Công thức:
=IF(COUNTA(B1:B4)>=2,SUM(B1:B4),"")
Rõ ràng là công thức khoẻ ru!
Hình như công thức này "tèo"
Nhìn kết quả ở [F10], [Z25]
Híc
Theo tôi hiểu, chủ thớt nói "lớn hơn hoặc bằng 2" có nghĩa là có ít nhất 2 ô có trị số. Đương nhiên diễn tả kiểu chủ thớt (cũng như 99% các bài hỏi trên diễn đàn này) thì chỉ có thánh mới dám đánh cá rằng mình hiểu đúng.
Vâng! Cảm ơn các bạn đã quan tâm! Điều kiện đúng như ý của bạn hngiatuong hiểu đó ạ!Theo mình hiểu thì cộng 4 ô liên tiếp, nếu giá trị cho ra>=2 thì lấy ngược lại bỏ đi.
Vâng! Cảm ơn các bạn đã quan tâm! Điều kiện đúng như ý của bạn hngiatuong hiểu đó ạ!
nhưng thế thì lạ quá, tại sao đơn giản vậy lại y.c macro??? hay là KHÁC???
Vâng! Tại vì thực tế bảng tính có khoảng vài nghìn trường hợp nếu coppy thì không biết bao giờ thì xong ạ? Rất cảm ơn bạn đã quan tâm!??? liên tiếp ở đây hiểu thế nào
sao không dùng công thức sau cho B5
=IF(SUM(B1:B4)>=2;SUM(B1:B4);"")
Copy cho tất cả các ô tô vàng là xong,
nhưng thế thì lạ quá, tại sao đơn giản vậy lại y.c macro??? hay là KHÁC???
Vâng! Tại vì thực tế bảng tính có khoảng vài nghìn trường hợp nếu coppy thì không biết bao giờ thì xong ạ? Rất cảm ơn bạn đã quan tâm!
Bạn ơi! Mình dùng công thức đó nhưng không được? Bạn kiểm tra lại giúp được không? Cảm ơn bạn!??? liên tiếp ở đây hiểu thế nào
sao không dùng công thức sau cho B5
=IF(SUM(B1:B4)>=2;SUM(B1:B4);"")
Copy cho tất cả các ô tô vàng là xong,
nhưng thế thì lạ quá, tại sao đơn giản vậy lại y.c macro??? hay là KHÁC???
Kiếm trong công thức, em nào là ";" thì đổi thành ","Bạn ơi! Mình dùng công thức đó nhưng không được? Bạn kiểm tra lại giúp được không? Cảm ơn bạn!
Bạn ơi! Mình dùng công thức đó nhưng không được? Bạn kiểm tra lại giúp được không? Cảm ơn bạn!
Vâng! Cảm ơn bạn rất nhiều!đổi thành
=IF(SUM(B1:B4)>=2,SUM(B1:B4),"")
xem sao???
nếu được, sau đó dùng AutoFiler lọc cột A với "Tổng....." và kéo copy B5 đó ra các ô vàng hết là xong, dù có vài ngàn dòng cũng thế
Bạn VetMini ơi! Bạn có thể giúp mình lại về phần macro cho bài này không? Khi mình dùng công thức của bạn vodoi2x thì bảng tính sẽ rất nặng! Mong bạn xem giúp, cảm ơn bạn!Mã:Sub t() Const DONGTONG = 5 ' dòng để ghi tổng Const COTCUOI = 40 ' cột cuối For dtong = DONGTONG To 65000 Step DONGTONG ' tính từng dòng tổng If Cells(dtong, 1).Value = "" Then Exit For ' hết dữ liệu For cot = 2 To COTCUOI tong = 0 dem = 0 For dDem = 1 To DONGTONG -1 ' lấy tổng từng ô, đồng thời đếm sô ô có dữ liệu If Cells(dtong - dDem, cot) <> "" Then tong = tong + Cells(dtong - dDem, cot) dem = dem + 1 End If Next dDem If dem >= 2 Then Cells(dtong, cot) = tong Next cot Next dtong End Sub
Công thức:
=IF(COUNTA(B1:B4)>=2,SUM(B1:B4),"")
Rõ ràng là công thức khoẻ ru!