## 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.

**Contact Oscar**

You can contact me through this contact form

This was a very interesting technique. I've been trying to use something similar. Thanks for sharing.