SUMIF across multiple sheets [UDF]
This post describes a User Defined Function that searches multiple ranges and adds corresponding values across worksheets in a workbook.
A User defined function is a custom function that anyone can build and use, you simply copy the code below and paste it to a code module in your workbook
This custom function works like the SUMIF function except that you can use multiple lookup and sum ranges.
Formula in cell C4:
User Defined Function Syntax
SUMIFAMS(lookup_value, lookup_range, sum_range)
Arguments
Parameter | Text |
lookup_value | Required. The value(s) you want to look for. |
lookup_range | Required. The range you want to search. |
sum_range | Required. The range you want to add. |
[lookup_range_2] | Optional. You may have up to 127 additional argument pairs. |
[sum_range_2] | Optional. |
VBA code
'Name function and arguments Function SUMIFAMS(lookup_value As Range, ParamArray cellranges() As Variant) 'Declare variables and data types Dim i As Integer, rng1 As Variant, temp As Single, a As Boolean Dim rng2 As Variant, value As Variant, j As Single 'Make sure that the number of cell ranges are an even number. There must be a lookup_range and a sum_range. If (UBound(cellranges) + 1) Mod 2 <> 0 Then 'Display a message box. MsgBox "The number of range arguments must be even. 2, 4 , 8 ... and so on" 'End function so the user can correct the problem. Exit Function End If 'Iterate through all cell ranges For i = LBound(cellranges) To UBound(cellranges) Step 2 'Check that the number of rows in both cell ranges match If cellranges(i).Rows.Count <> cellranges(i + 1).Rows.Count Then MsgBox "The number of rows in range arguments don't match." End If 'Make sure that the ranges only contain one column If cellranges(i).Columns.Count <> 1 Then MsgBox "Range arguments can only have size one column each." Exit Function End If 'Save ranges to an array variable rng1 = cellranges(i).value rng2 = cellranges(i + 1).value 'Iterate through values in array variable For j = LBound(rng1) To UBound(rng1) 'Iterate through each lookup value if there are more than one For Each value In lookup_value 'Make a comparison (not case sensitive) If UCase(rng1(j, 1)) = UCase(value) Then a = True Next value 'Add corresponding number to temp variable if a= True If a = True Then temp = temp + rng2(j, 1) a = False Next j Next i 'Return total to worksheet SumifAMS = temp End Function
Where to copy vba code?
- Press Alt-F11 to open visual basic editor
- Press with left mouse button on Module on the Insert menu
- Copy and paste vba code.
- Exit visual basic editor
You can also use multiple search values, the returned number is a total based on both search values.
This article demonstrates formulas that count values in cell based on a delimiting character. The image above shows a formula […]
This article demonstrates a User Defined Function (UDF) that counts unique distinct cell values based on a given cell color. […]
This article describes how to count unique distinct values in list. What is a unique distinct list? Merge all duplicates to one […]
Blake asks: I have a somewhat related question, if you don't mind: I have very large amount of text in […]
This article demonstrates two formulas that extract distinct values from a filtered Excel Table, one formula for Excel 365 subscribers […]
AJ Serrano asks: I have a column where each rows contains different values and I wanted to obtain the duplicate […]
This article demonstrates a user defined function that extracts duplicate values and also count duplicates. Example, the image below shows a list containing […]
This post describes a custom function (User defined Function) that extract values existing only in one out of two cell […]
The User Defined Function demonstrated above extracts unique distinct records also considering upper and lower case letters. For example, a record […]
The User Defined Function demonstrated in the above picture extracts unique distinct values also considering lower and upper case letters. […]
This blog post describes how to create a list of unique distinct words from a cell range. Unique distinct words […]
This blog post describes how to create a list of unique words from a cell range. Unique words are all […]
I tried the array formula in this post: Filter common values between two ranges using array formula in excel to […]
The image above demonstrates a User Defined Function that extracts all words containing a given string that you can specify. In […]
This article describes how to find a sum from a range of numbers using a user defined function. Let´s see […]
Question:I would like to reduce the number of open items by identifying positive and negative amounts that net to zero […]
In this post I will describe a basic user defined function with better search functionality than the array formula in […]
This user defined function creates a unique distinct list of words and how many times they occur in the selected […]
Macros and custom functions are great, they can automate many tedious tasks. To have them available whenever you need them, […]
In this vba tutorial I am going to show you how to return values from an udf, depending on where […]
This article demonstrates a user defined function that lists files in a ggiven folder and subfolders. A user defined function is […]
This blog post describes how to create permutations, repetition is NOT allowed. Permutations are items arranged in a given order meaning […]
This blog post demonstrates a custom function (UDF) that creates permutations. Repetition is allowed. The custom function lets you specify the […]
This article explains how to perform multiple lookups based on values in one cell with a delimiting character using a […]
Sean asks: Sheet1A B C D 8 Country Europe 9 Lights 100 10 Type A 200 11 12 Country USA […]
The image above demonstrates a user-defined function in cell range B6:D7 that allows you to search a folder and subfolders […]
This article demonstrates formulas and a UDF that searches for values in a table based on concatenated values and returns […]
Question: How do I divide values equally into groups (3 lists or less)? This post shows you two different approaches, […]
This post describes how to split words in a cell range into a cell each using a custom function. I […]
The SUBSTITUTE and REPLACE functions can only handle one string, the following User-Defined Function (UDF) allows you to substitute multiple […]
This article describes a User Defined Function that lookups values in multiple cross reference tables based on two conditions. A […]
One Response to “SUMIF across multiple sheets [UDF]”
Leave a Reply
How to comment
How to add a formula to your comment
<code>Insert your formula here.</code>
Convert less than and larger than signs
Use html character entities instead of less than and larger than signs.
< becomes < and > becomes >
How to add VBA code to your comment
[vb 1="vbnet" language=","]
Put your VBA code here.
[/vb]
How to add a picture to your comment:
Upload picture to postimage.org or imgur
Paste image link to your comment.
This was a very interesting technique. I've been trying to use something similar. Thanks for sharing.