Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
create list based on criteria | Excel Worksheet Functions | |||
Create a text based count with criteria from two differnt workbook | Excel Worksheet Functions | |||
How to create multiple new workbooks based on sort criteria | Excel Discussion (Misc queries) | |||
How do you create COUNTIF functions based on multiple criteria? | Excel Worksheet Functions | |||
Create a list based on single shared criteria | Excel Worksheet Functions |