hình dưới là Sheet 1
Tiếp theo là dữ liệu trong Sheet 2
Và Sheet 3 bạn muốn tổng hợp theo những dữ liệu cho trước
Bạn muốn xem Thống kế của Đông là bao nhiêu , Tây là bao nhiêu , tổng hợp của Đông và Tây là bao nhiêu thì bạn tạo hàm sumifAMS như sau
Bấm tổ hợp phím Alt_F11 , khi đó mở ra của sổ Microsoft Visual Basic . Ở phần này bạn chọn menu Insert > Module , sau đó copy nội dung bên dưới
Function SumifAMS(lookup_value As Range, ParamArray cellranges() As Variant)
Dim i As Integer, rng1 As Variant, temp As Single, a As Boolean
Dim rng2 As Variant, value As Variant, j As Single
If (UBound(cellranges) + 1) Mod 2 <> 0 Then
MsgBox "The number of range arguments must be even. 2, 4 , 8 ... and so on"
Exit Function
End If
For i = LBound(cellranges) To UBound(cellranges) Step 2
If cellranges(i).Rows.Count <> cellranges(i + 1).Rows.Count Then
MsgBox "The number of rows in range arguments don´t match."
End If
If cellranges(i).Columns.Count <> 1 Then
MsgBox "Range arguments can only have size one column each."
Exit Function
End If
rng1 = cellranges(i).value
rng2 = cellranges(i + 1).value
For j = LBound(rng1) To UBound(rng1)
For Each value In lookup_value
If UCase(rng1(j, 1)) = UCase(value) Then a = True
Next value
If a = True Then temp = temp + rng2(j, 1)
a = False
Next j
Next i
SumifAMS = temp
End Function
Quay trở lại Excel ở ô B3 bạn muốn hiện kết quả ở việc lấy những dữ liệu Đông của các Sheet 1 và Sheet 2 cộng với nhau thì hãy viết công thứ như sau
=sumifAMS(B2,Sheet1!$A$3:$A$9,Sheet1!$B$3:$B$9,Sheet2!$A$3:$A$9,Sheet2!$B$3:$B$9)
Tương tự với C3 là
=sumifAMS(C2,Sheet1!$A$3:$A$9,Sheet1!$B$3:$B$9,Sheet2!$A$3:$A$9,Sheet2!$B$3:$B$9)
Với E3 là thông kê của Đông và Tây thì viết công thức như sau
=sumifAMS(B2:C2,Sheet1!$A$3:$A$9,Sheet1!$B$3:$B$9,Sheet2!$A$3:$A$9,Sheet2!$B$3:$B$9)