Tính tổng theo 2 điều kiện? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

haikimcuong

Thành viên hoạt động
Tham gia
6/7/10
Bài viết
169
Được thích
36
Em có 1 bài toán thế này mong các thấy giúp đỡ
Tức là em sẽ lấy 2 điều kiện ở cột A,để tính tổng cho cột B ở cột D và tổng sẽ được áp xuống dòng cuối cùng của điều kiện đó như trong ví dụ a. phạm vi vùng theo cột luôn ạ.
 

File đính kèm

Em có 1 bài toán thế này mong các thấy giúp đỡ
Tức là em sẽ lấy 2 điều kiện ở cột A,để tính tổng cho cột B ở cột D và tổng sẽ được áp xuống dòng cuối cùng của điều kiện đó như trong ví dụ a. phạm vi vùng theo cột luôn ạ.
Bài này trong mục Lập trình, bạn muốn hàm tự tạo hay Sub?
Thử bằng công thức trước đi. Công thức ô D1, Copy xuống.:
PHP:
=IF(C1<>C2;SUMPRODUCT(($A$1:A1=A1)*($C$1:C1=C1)*($B$1:B1));"")
 
Upvote 0
Em có 1 bài toán thế này mong các thấy giúp đỡ
Tức là em sẽ lấy 2 điều kiện ở cột A,để tính tổng cho cột B ở cột D và tổng sẽ được áp xuống dòng cuối cùng của điều kiện đó như trong ví dụ a. phạm vi vùng theo cột luôn ạ.
Mô tả khó hiểu quá đi mất thôi. Nhìn những gì trong file và những gì bạn mô tả, tôi thấy nó chẳng ăn khớp gì với nhau cả. Theo trong file thì tôi hiểu thế này: Tính tổng các giá trị cột B theo ngày (không biết có liên quan gì đến cột A không nữa):
- Nếu chỉ quan tâm đến ngày thì công thức cho ô C1 là thế này:
Mã:
=IF(C1=C2,"",SUMIF(C:C,C1,B:B))
- Nếu quan tâm thêm điều kiện ở cột A nữa thì công thức thế này:
Mã:
=IF(C1=C2,"",SUMPRODUCT((A$1:A$1000=A1)*(C$1:C$1000=C1)*B$1:B$1000))
 
Upvote 0
Không biết có liên quan gì đến cột A không nữa

Có đó, Hoa Hồng khác với Hoa Mai mà!

Bạn tham khảo cái ni, thích hàm tự tạo thì chờ thêm, nhưng chưa dám chắc:
PHP:
Option Explicit
Sub gpe()
 Dim Cls As Range
 Dim Tong As Double
 
 For Each Cls In Range([A1], [A1].End(xlDown))
    If Cls.Offset(1).Value = Cls.Value And Cls.Offset(1, 2).Value = Cls.Offset(, 2).Value Then
        Tong = Tong + Cls.Offset(, 1).Value
    Else
        Cls.Offset(, 3).Value = Tong + Cls.Offset(, 1).Value
        Tong = 0
    End If
 Next Cls
End Sub
 
Upvote 0
Muốn có hàm thì hàm liền thôi, nhưng

Là hàm mảng tự tạo


--=0 --=0 --=0
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Thêm một tham khảo về Array (em mới tập tành món này, các bác đừng "chém" em đấy nhé):
[GPECODE=vb]Sub Test()
Dim sArr, Arr(), i As Long, j As Long, sSum As Long
sArr = Sheet1.Range(Sheet1.[A1], Sheet1.[A65000].End(xlUp).Offset(1)).Resize(, 3)
ReDim Arr(1 To UBound(sArr) - 1, 1 To 4)
For i = 1 To UBound(Arr)
sSum = sSum + sArr(i, 2)
For j = 1 To 3
Arr(i, j) = sArr(i, j)
Next
If sArr(i, 1) <> sArr(i + 1, 1) Or sArr(i, 3) <> sArr(i + 1, 3) Then
Arr(i, 4) = sSum
sSum = 0
End If
Next
Sheet1.[A1].Resize(UBound(Arr), 4) = Arr
End Sub[/GPECODE]
 
Upvote 0

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

Back
Top Bottom