Giúp tôi đưa công thức tính tổng vô cột dữ liệu với số dòng thay đổi.

  • Thread starter QDuc
  • Ngày gửi
QDuc

QDuc

Cao cấp
3/6/06
254
18
18
Biển khơi
Tôi có 1 sheets("Report") dùng để làm báo cáo;
Dữ liệu được lấy từ 1 cơ sở dữ liệu gốc khác đem sang do dùng AdvancedFilter & copy qua; Dĩ nhiên số dòng chỉ biết thông qua biến
DongCuoi= Range("C65000").End(xlup).Row
Vậy tôi phải viết dòng lệnh như thế nào, để công thức tại ô 'F' & (DongCuoi +2) cho kết quả là tổng cột F (cho tới dòng DongCuoi- tất nhiên);
Rất cảm ơn các bạn đã quan tâm và giúp đỡ!
 
Khóa học Quản trị dòng tiền
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,373
36
48
48
Goooogle
Tôi có 1 sheets("Report") dùng để làm báo cáo;
Dữ liệu được lấy từ 1 cơ sở dữ liệu gốc khác đem sang do dùng AdvancedFilter & copy qua; Dĩ nhiên số dòng chỉ biết thông qua biến
DongCuoi= Range("C65000").End(xlup).Row
Vậy tôi phải viết dòng lệnh như thế nào, để công thức tại ô 'F' & (DongCuoi +2) cho kết quả là tổng cột F (cho tới dòng DongCuoi- tất nhiên);
Rất cảm ơn các bạn đã quan tâm và giúp đỡ!

Có vài cách để làm việc này đó bạn.
1. Cách "thô thiển" 1 chút là tạo 1 công thức SUM ở cột F của 1 sheet tạm nào đó, cố định dòng 1 (hoặc dòng nào đó bắt đầu CDSL), không cố định dòng dưới. Thí dụ SUM(F$1:F10). Sau khi xác định được ô cuối của CSDL thì copy công thức kia và paste qua.
2. Gán công thức bằng thuộc tính FormularR1C1:
Bạn đã xác định được ô cuối trong cột F ở dòng 10, ô đầu là F2.
Tạo ô F10 bán gán Range("F10").FormularR1C1 = "=SUM(R[-8]C:R[-1]C)"
-8 chính là kết quả của dòng 10 trừ đi 2, điều này bạn tự tìm hiểu nó chỉ là vài phép cộng trừ xác định khoảng cách từ dòng 9 đến dòng 2 là bao nhiêu ô.

3. Xác định range mới từ 2 Range: Range(Range("A1"), Range("A10")) chính là Range("A1:A10")
Thí dụ: Sau khi xác định được dòng cuối là endRow
Ketqua = SUM(Range("F2"), Range("F1").Offset(endRow-2, 0))
'Nối ô F2 và ô cách F2 endRow-2 dòng
hoặc
Ketqua = SUM(Range("F1").Offset(0, 0, endRow-2))
' Dùng hàm offset để tăng ô F1 lên endRow - 2 dòng

Và 1 vài cách khác.
Bạn thử test nha, thông số cộng trừ có thể không chính xác khi xác định có bao nhiêu dòng từ ô đầu đến ô cuối.
 

Xem nhiều