![]() |
Create a function that sums based on two or more criteria
I am trying to create a function that sums a worksheet column based on
criteria that reside in adjacent columns. I used the following code which gave me a type mismatch: Function Purch_calc(look1 As String, look2 As String) As Single Dim l1_range As Range Dim l2_range As Range Dim s_range As Range With Sheet6 Set l1_range = .Range("d1:d200") Set l2_range = .Range("b1:b200") Set s_range = .Range("e1:e200") End With Purch_calc = Application.WorksheetFunction.SumProduct((l1_range = look1) * (l2_range = look2), s_range) End Function Can anyone help me get the above to work or provide an alternative method of summing a column using multiple criteria. Thanks Paul |
Create a function that sums based on two or more criteria
Thanks, this is very helpful
Martin Fishlock wrote: Hi Paul: As far as I know you can't use array type formula in vba so you have to test each element seperately. Look at the code below: Option Explicit Function Purch_calc(look1 As String, look2 As String) As Integer Const l1_offset As Integer = -1 ' Set l1_range = .Range("d1:d10") Const l2_offset As Integer = -3 ' Set l2_range = .Range("b1:b10") Dim s_range As Range Dim rCell As Range Application.Volatile ' update on changes Set s_range = ActiveWorkbook.Worksheets("sheet6").Range("e1:e10" ) For Each rCell In s_range If (rCell.Offset(0, l1_offset) = look1) And _ (rCell.Offset(0, l2_offset) = look2) Then Purch_calc = Purch_calc + rCell.Value End If Next rCell End Function -- Hope this helps Martin Fishlock, Bangkok, Thailand Please do not forget to rate this reply. "halibut" wrote: I am trying to create a function that sums a worksheet column based on criteria that reside in adjacent columns. I used the following code which gave me a type mismatch: Function Purch_calc(look1 As String, look2 As String) As Single Dim l1_range As Range Dim l2_range As Range Dim s_range As Range With Sheet6 Set l1_range = .Range("d1:d200") Set l2_range = .Range("b1:b200") Set s_range = .Range("e1:e200") End With Purch_calc = Application.WorksheetFunction.SumProduct((l1_range = look1) * (l2_range = look2), s_range) End Function Can anyone help me get the above to work or provide an alternative method of summing a column using multiple criteria. Thanks Paul |
All times are GMT +1. The time now is 07:20 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com