Excel SUMPRODUCT is a remarkably versatile function with many uses. The aim of this tutorial is to reveal the full power of SUMPRODUCT and teach you how to compare arrays in a clever and elegant way, conditionally sum or count cells with multiple criteria, get a weighted average, and more. Continue reading
Comments page 6. Total comments: 247
Hi,
I have always used the multiplier to calculate SUM for multiple criteria (column and rows) & was trying the same using the double unary operator but it keeps returning a #value error
The formula is:
=SUMPRODUCT(--($H$32:$H$34="Mark"),--($I$31:$L$31="Q1"),I32:L34)
Could you please help what is incorrect about this formula - trying to understand the logic!
Thanks
Great article!
I've struggled to apply the sum-product formula to reference Table arrays. It always returns a #Value! error. The same formula will work perfectly on a range of the same data. Can anyone offer advice?
Great article!
I've struggle to apply the sum-product formula to reference Table arrays. It always returns a #Value! Error. The same formula woill work perfectly on a range of the same data. Can anyone offer advice?
Hi,
Plz provide unique count qty formulas.
Hello!
I'm struggling with a weighted average using same column. Any advice is appreciated.
Example table:
Section Indicator Type Data
Sec1 IndA x 100
Sec2 IndB x 20
Sec n Ind m -- number
Weighted average using criteria Section, Indicator, and Type.
Basically, for Type X to make Indicator B weighted average using Indicator A.
As a note, the table is really big and there are may indicators and types. however, the consolidation is to be per type. Section is an additional filter as one indicator (with different unit of measure) may appear in other section. Using this filter will assure consistency.
Thank you in advance for your time and help!
Hi, I am trying to sum sales data in a table based on 2 criteria, where the 2nd criterion is actually a range. The sumifs formula below worked fine when the 2nd criterion was a single value rather than a range.
I need the formula to effect "sum if sales terr matches a cell AND product family matches any values in the range". I appreciate any help. Thanks
I need to sum sales data per these criteria:
1. sales territory as defined in column E in worksheet2 (in the formulas below)... I am copying the formula down a table so the territory flows e2, e3, e4, and so forth.
2. product family matches ANY one of the values in a range
=sumifs('raw data file'!SalesData,'raw data file'!Sales_Terr,$e2-sales_terr cell_in_worksheet2,'raw data file'!ProductFamily,worksheet2!(C2:C11))
=sumproduct(('raw data file'!Sales_Terr=$e2),*('raw data file'!ProductFamily={worksheet2!(C2)}+('raw data file'!ProductFamily={worksheet2!(C3)} .. etc.. 'raw data file'!SalesData))
How if I want to know, how many types of fruits that sold in north??
Hello,
How do write sumproduct function to calculate sum of contribution within months using the person name and type of contribution as a criteria.
E.g. assuming you have some staffs that do different type of contribution monthly. And you need a summary that gives you amount contributed by each person per month in each category of contribution
Help out
What is the correct sumproduct formula to calculate the total amount for account=1217000 and fy=18? I have tried the following, which calculates a result of 0, not 50,000.00:
=SUMPRODUCT((A6:A31="1217000")*(B6:B31="17")*(C6:C31))
Here is the worksheet.
Line 6 begins at the first row containing the numbers.
A B C
Account FY Amount
1210000 17 50,000.00
1217000 17 25,000.00
1210000 15 300,000.00
1212080 18 25,000.00
1217000 05 100,000.00
1212080 18 100,000.00
1210000 05 6,947.35
1212080 18 50,000.00
1212023 18 67,950.00
1217000 18 50,000.00
1210000 16 1,800,000.00
1210000 17 150,000.00
1210000 18 500,000.00
1212080 18 25,000.00
1212020 17 5,000.00
1210000 18 100,000.00
1210000 17 25,000.00
1212016 17 170,000.00
1212025 18 150,000.00
1210000 17 5,000.00
1217000 17 25,000.00
1212080 18 10,000.00
1217000 14 5,000,000.00
1217000 17 500,000.00
1212015 17 1,000,000.00
1212026 17 50,000.00
This has been driving me crazy.
Thanks.
Hi Paul
Today I read your problem.
Simply remove the quotes from the values
=SUMPRODUCT((A6:A31=1217000)*(B6:B31=17)*(C6:C31))
Regards
how can I use this to work over multiple sheets??
Good information. Took little bit to understand but once understood it went with flying colors.
Important finding is one has to multiply the condition to both sum product columns and it works.
Thanks for posting such detailed information.
Is it possible to use sumproduct to return results based on two different inputs?
A1 = "Month:" B1 = Input
A2 = Input B2 =Output
A3 = Animals
A4:L4 = Month Names
A5:L5 = Monetary Value
So Basically I enter the Month I want values from in B1
And in A2 I enter the Category, in this case Animals, and in B2 I get the value associated with the lookup from Selecting Animals Feb..
Is this possible?
Hi
How can I do the product sum of data where one of the two factors to be multiplied is the difference between two other numbers in separate columns. Is it possible to do this without creating a new column with the difference in the numbers, instead incorporating this calculation in the sumproduct formula?
Peter
Hi, I a m looking for a formula to resolve the below issue. I have unique Employee ID with duplicate Leaves. I want to highlight duplicate or overlapped leaves (start Date and End Date) under 'My Remark' column.
Appreciate your assistance.
ID# Start Date End Date My Remark
166 04-Sep-17 08-Sep-17 Duplicate Leave
166 04-Sep-17 04-Sep-17 Duplicate Leave
166 03-Sep-17 05-Sep-17 Duplicate Leave
236 01-Sep-17 01-Sep-17 Duplicate Leave
236 01-Sep-17 01-Sep-17 Duplicate Leave
243 30-Nov-17 30-Dec-17 Duplicate Leave
243 01-Dec-17 10-Dec-17 Duplicate Leave
252 01-Dec-17 10-Dec-17 No Duplicate
252 01-Nov-17 10-Nov-17 No Duplicate
Hi: I'm wondering if I can use Sumproduct for two sets of arrays? here is what I want to do but it is not recognizine the "+". I am getting only the result for the first array:
=SUMPRODUCT(--('Pivot RI'!$B:$B=Summary!$A6),--('Pivot RI'!$A:$A=Summary!H$1),--('Pivot RI'!$F:$F=Summary!$B8),'Pivot RI'!$H:$H)+SUMPRODUCT(--('Pivot NV'!G:G=Summary!$A7),--('Pivot NV'!F:F=Summary!H$1),--('Pivot NV'!$F:$F=Summary!$B8),'Pivot NV'!$H:$H)
So can I not add the information from two seperate data sheets?
Thank you so much!!
Using COUNTIFS and Logical OR
For the equation below:
COUNTIFS($D2:$D$5590,1,$A$2:$A$5590,1008,$B$2:$B$5590,"LINE", $C2:$C$5590, {100,110,120,140,”WAAP”}),
How can I use the last part to count if it is 100 or 110 or 120 ….
Maybe the answer is SUMPRODUCT, but it didn't work. Could you please advise. Thank you
I have an interesting problem I cant figure out! I have a file which might make it easier but I will try to explain.
I have 4 worksheets in one workbook. Datasheet, Homeloans, YR2, Table.
On Datasheet in M2 I have a Date formatted as d-mmm-yy
On Homeloans I have Dates from A1:L1 which are derived from the date on Datasheet =DATE(YEAR(Datasheet!$M$2),MONTH(Datasheet!$M$2)+0,1) that progress up to =DATE(YEAR(Datasheet!$M$2),MONTH(Datasheet!$M$2)+11,1) in L1
In A2:L2 I have values entered
On YR2 I have the same setup. The date system is setup to look like a fiscal year instead of a calendar year.
On the Table sheet from B1:Y1 I have dates. B1 uses the formula =IF(Datasheet!M2"",TEXT(Datasheet!M2,"d-mmm-yy"),"Jan") B2 uses =IF(OR(B$1="",B$1=""),"",TEXT(EDATE(B$1,1),"d-mmm-yy")) and is propagated to Y1.
In B2:Y2 I am using this formula =SUMPRODUCT(--(TEXT(Homeloans!$A$1:$L$1,"d-mmm-yy")=B$1),Homeloans!$A$2:$L$2) with it changing respectively to Y2
This is the tricky part.
On Table, Cell C18 I have a data validation list setup to select a year number
On Table, E18 I have formula =SUMPRODUCT(--(RIGHT(TEXT($B$1:$Y$1,"d-mmm-yy"),1)+0=$C$18),$B$2:$Y$2)
Here is the problem.
If I set the date on Datasheet to 1/11/2011 and I select year one on C18 on the Table sheet, I get the correct sum on E18.
If I change the date on Datasheet to 1/11/2012 it flips the value in E18 to zero. This is the weird part. If I change the value in C18 to 2 for second year, then it gives me the correct sum. So I played with the formula
=SUMPRODUCT(--(RIGHT(TEXT($B$1:$Y$1,"d-mmm-yy"),1)+0=$C$18),$B$2:$Y$2) and found that if I change the highlighted part to +-1 then select year one again, it gives me the correct sum.
It sort of does what I need it to do but the problem is for every date set I will have to go in and change that value up and down the number line according to the date on Datasheet and that just isnt going to work. It need to be dynamic and pull values based on the year the values show up in.
So if a payment is entered for example on 1/11/11 as the first payment and the second payment on 1/12/11, and I want to know the totals for the first year of the loan, it should only give me that value in E18.
Any help in resolving this would be greatly appreciated. Im running out of forehead to bang against the wall!
Regards,
D
Hello,
For me to understand the problem better, please send me a small sample workbook with your source data and the result you expect to get to support@ablebits.com.
Please also don't forget to include the link to this comment into your email.
I'll look into your task and try to help.
VALUE 100 500 600 700 800 900
TOTAL QTY.
RAM 10 1 2 3 4
MOHAN 24 2 3 1 6 7 5
SOHAN 31 2 3 4 6 7 9
VIMAL 28 1 1 5 6 7 8
need to value of each person wise
Hi, thank you so much, this page was a great help. I have one case that I need some help. I noticed that when I use sumproduct with an OR connection, the values provided are not TRUE or FALSE (e.g. TRUE,FALSE+TRUE,FALSE resulting in {2,0}) How can I have a TRUE/FALSE output?
I want to know in how many rows either or both of the conditions appear, and not the count of every occurance.
Thank you for your help!
hello, I found a solution, the resulting array e.g. {2,0} can be adapted like this: --{2,0}>0 to result in {1,0}
=SUMPRODUCT(--('Excel - Full Data'!$D$4:$D$2100="WCCI"),('Excel - Full Data'!$K$4:$K$2100>0)*('Excel - Full Data'!$K$4:$K$2100<5000)*('Excel - Full Data'!$K$4:$K$2100))
Am I able to add an Additional parameter which includes "WCCI - TS" to the "WCCI" for $D$4:$D$$2100 range?
Any help would be greatly appreciated
Hello,
If I understand your task correctly, please try the following formula:
=SUMPRODUCT((('Excel - Full Data'!$D$4:$D$2100="WCCI")+('Excel - Full Data'!$D$4:$D$2100="WCCI - TS")),('Excel - Full Data'!$K$4:$K$2100>0)*('Excel - Full Data'!$K$4:$K$2100<5000)*('Excel - Full Data'!$K$4:$K$2100))
Hope this will work for you
Finding the double unary operator has been so helpful! I currently have very large files that I am creating tables for and can't get this equation to work. I am wondering if there is a row limit for the formula, since this is the largest list I am working with.
SUMPRODUCT(--('Master List'!$B$2:$B$11091=$A$1),--('Master List'!$F$2:$F$11091""),--(MONTH('Master List'!$F$2:$F$11091)='Data Table - DO NOT DELETE'!F$3),--(YEAR('Master List'!$F$2:$F$11091)='Data Table - DO NOT DELETE'!F$2))
Note, the only part of this equation that breaks when providing an answer is the month and year. I do have a formula in column F, however this shouldn't make a difference.
A big "Thank you" for helping me out in understanding Sumproduct function
This has been super helpful! My tables have been more efficient since finding double unary operator. The only challenge is that there is not a lot of help to troubleshoot. I have a simple equation that won't calculate. When I look at the functional arguments, I don't see any errors on my arrays.
My equation: SUMPRODUCT(--('Data Input'!B4:B37='All-up Burndown Chart'!A2),'Data Input'!F3:F37)
If column B (which is a list of buildings) equals a building number identified in cell A2, then sum the fields in column F.
Any thoughts on why I'm not getting an output?
Please help me to sum below 2 array...
I want to add particular value of column 4 in column 2 if condition of column 1&2 satisfy, example I want to add Jan month value to each date of Jan month.
02-01-2017 414.748 JAN 312.6446
04-01-2017 476.886 FEB 796.09325
05-01-2017 409.566 MARCH 358.3840417
06-01-2017 398.519 APRIL 241.6108077
01-02-2017 1051.862 MAY 94.96810345
03-02-2017 790.097 JULY 9.945451613
04-02-2017 563.685
05-02-2017 463.103
09-03-2017 855.292
10-03-2017 957.937
11-03-2017 1056.677
12-03-2017 1077.678
13-03-2017 1569.847
Hi Ma'am I just want to say thank you. You are so kind and brilliant, I wish I can be like you someday. Thank you so much. You are an inspiration to me, please continue helping people like me. ^_^
kindly tell me how to get the total of two items through Sumproduct formula...
Hi
I have a table of profit and loss information running for a whole year but I want to set up a formula that will calculate the year to date position. eg I type in June and the financial info say revenue from January to June is added together. Tried initial using an array and could do this with a basic =if function but there must be a better way.
thanks Paul
Hi Guys,
I need some help in excel formula
I have some data with city name and numbers so just i wanted to identify the only unique values using only formula.
Data is like that
A B
City Number
A 123
B 456
A 678
A 123
Thanks in advance!
Hello, Amol,
To highlight the unique values, please select the column with the data, then on the Home tab, in the Styles group, click Conditional Formatting > Highlight Cells Rules > Duplicate Values. In the next pop-up window select Unique, choose the colour and press OK.
You can learn more on how to apply conditional formatting for uniques or duplicates in this article.
Please note that if you want to use the formulas, the values will be either simply counted or transferred to another columns. If this is what you need, please specify.
Used =sumproduct(1/countif(array1,array2)) to count unique values in a column with duplicates but once table is filtered the answer doesnt change.
funny site not accept formulas in text..
SUMPRODUCT((F9lessthan{0.01,1,5})
ASTERISK
parenthesisMIN(M9:N9)greaterthan{1,3,9}))
Nice workaround to assist with a formula, Dave!
Thanks for your persistence! :)
geez 1 more time
=SUMPRODUCT((F9{1,3,9}))
=SUMPRODUCT
((F9{1,3,9}))
oh well, delete something. my post got chopped.
=SUMPRODUCT((F9{1,3,9}))
hi, i don't think i saw an example for multiple levels. i think this will work. thanks.
=SUMPRODUCT((F9{1,3,9}))
Hi there,
I'm using the following formula, but I want the formula to choose the same text as a cell (B20), is there a way the formula can be adapted?
=SUMPRODUCT(--(B68:B109="B20"),--(N68:N109))
B20 is an individual's name, so will look different for the next cell - currently having to manually enter in individual names.
I've never been good with sumproduct, and I think it's the answer to my problem but I can't get it to work! I want to add up everything with an account number that begins with 7, easy enough except that there are spaces in front of the account and the number of spaces is always different. So I want to basically do SUMPRODUCT(LEFT(TRIM($A:$A),1)="7"),$B:$B). The amounts are in Column B and the criteria is in Column A. I can't get this to work for the life of me!!
=SUMPRODUCT((LEFT(TRIM($A:$A),1)="7")*1,$B:$B)
Hi Concern,
Thanks a lot for made a good opportunity to know about excel. Very helpful article.
Hi,
I have 3 sheets namely: Data, Assumption, Summary
In assumption sheet, you can see criteria 1 and corresponding criteria 2.
In Data Sheet, you can see criteria 2 and amount.
In summary Sheet, I needed Criteria 1 and amount.
Usually, I have to lookup criteria 1 from assumption and put it in data sheet. But I am not allowed to modify data sheet.
Or, =SUM(SUMIF(Data Sheet criteria 1 range,{"criteria 1,criteria 1,criteria 1,criteria 1"},Data sheet sum range)). But when I require to change assumptions, I have to update formulas.
My problem is:
1) I should not modify data sheet
2) I needed my summary to be updated for any changes made in assumptions
Please feel free to share your ideas.
I have many employees in my spread sheet , am just giving some sample date here . I have to find the min and max time for each employee and for each date . How can I do that.
Employee date time
e1 1-Jan-13 8:10
e1 2-Jan-13 8:00
e1 2-Jan-13 9:00
e1 2-Jan-13 10:00
e1 2-Jan-13 11:00
e1 1-Jan-13 16:00
E2 2-Jan-13 8:10
E2 2-Jan-13 8:00
E2 2-Jan-13 9:00
E2 2-Jan-13 10:00
E2 2-Jan-13 11:00
E2 1-Jan-13 17:00
Employee ID is in range $A$1:$A$12, date is in range $B$1:$B$12 and time is in range $C$1:$C$12.
Look up Employee ID is e2 and look up date is f2.
max time:=SUMPRODUCT(MAX((($A$1:$A$12=E2)*1)*(($B$1:$B$12=F2)*1)*$C$1:$C$12))
min time:=SUMPRODUCT(MIN(((($A$1:$A$12E2)*100)+(($A$1:$A$12=E2)*1))*((($B$1:$B$12F2)*100)+(($B$1:$B$12=F2)*1))*$C$1:$C$12))
Hello,
I'm having an issue adding multiple numbers in one cell, based on which side of the / they are on. The formula to add two different numbers separated by a / (ex 5/7) is =SUMPRODUCT(--LEFT(AA8:AA11,FIND("/",AA8:AA11)-1))&"/"&SUMPRODUCT(--REPLACE(AA8:AA11,1,FIND("/",AA8:AA11),0))
But what about if I want to change it to 3 values, like 7/4/10. How would this affect the formula?
Thanks!
I'd like to sumproduct the two column,that the value are negative.
please help me.
Hello all,
I am trying to write a formula for the following conditions in excel.
Penalties(Days) Penalty per violation
1-14 $1,000
15-30 $2,000
31-60 $3,000
61-180 $4,000
>180 $5,000
Please help me to write a formula to calculate total penalties incurred based on the number of days of delay.
Thanks
Rama
Dear Rama,
Try the function VLOOKUP:
1) make up a simple reference table of two columns - Days and Penalty;
2) in the Days column insert a number that is equal to the right border of each range plus 1:
1 1000
15 2000
31 3000
61 4000
181 5000
3) convert your reference table into a named range, for example, Days_to_Penalty;
4) use VLOOKUP(number_of_days; Days_to_Penalty; 2; 1);
5) it's the last argument (1) that makes VLOOKUP search NOT the exact values.
Hi,
Is it possible to use conditional weighted average for sales matrixes? Lets say I have few products with different sales amounts and different prices, and want to get conditional weighted average for price based on sales amount and product type.
thanks.
thnx
Hi there,
thank you for the web information about excel.
I have a question, how to use SUMPRODUCT to sum range of value which is positive or negtive.
thank you
Yao Yao
I have this formula in cell F3 in my table
=SUMPRODUCT((TEXT($I:$I,"mm-yyyy")="01-2016")*1) and it works great
I would like to change the ="01-2016")*1)to reference cells in the next column so F3 would reference E3, F4 - E4 and so on but I can not seem to do it can you please help
Try this;
=SUMPRODUCT(--($I:$I=G3))
G3 is the ref cell that brings dynamical selection to the sumproduct formula
Hi,
I am having a problem how to work out a formula to calculate the sum of the smallest three values in a range. However the range is on alternate columns
for example
pos cat pos cat pos cat pos cat pos cat pos cat pos cat
4 2 6 4 1 1 3 3 10 10 - - - -
i wish to total the best three results in the pos columns (ignoring the blank columns - )
my result should be :
all pos results are 4,6,1,3,10 - sum of best three results(smallest) = 4+1+3 = 8
is there a formula which could perform this
many thanks for any help
Thank you for this article -- it's very helpful. I'm wondering if you could give me some advice on the following:
I’m trying to create a spreadsheet that will track staff time-off. The formulas are getting a bit complicated because they are totaling from 5 separate “hours absent” columns (one for each day of the work week) and 5 corresponding “type of time off” columns. Columns headers are in row 9. The sheet is set up so that supervisors can select a particular week (column A), an employee (column B), and then the hours absent on Monday of that week (column C) and type of time off taken on that day, e.g., PTO, vacation, jury duty, etc. (column D). Columns C and D are then basically repeated through Column L to account for each day of the week through Friday.
In the section that totals the time-off for each employee, I want a total time taken for the year, as well as a breakdown showing the total of each type of time off taken by that employee. I’ve managed the total time taken with the following:
=SUMPRODUCT(($B$10:$B$188=”Annie”)*($C$9:$L$9=”Hours Absent”),$C$10:$L$188)
However, I’m struggling with the formula for the disaggregated data. Here is what I have at the moment to disaggregate only the PTO-type of time off:
=SUMPRODUCT(($B$10:$B$188=”Annie”)*($C$9:$L$9=”Hours Absent”)*((D10:D188=”PTO”)+(F10:F188=”PTO”)+(H10:H188=”PTO”)+(J10:J188=”PTO”)+(L10:L188=”PTO”)>0),$C$10:$L$188)
It almost works, but only excludes non-PTO hours from the Monday column (column C). So, it is (correctly) NOT including Annie’s vacation-type time on Monday, but IS (incorrectly) including her vacation-type time on Tuesday through Friday.
I’m hoping I’m missing something simple and you can set me on the right path! I started out thinking this could all be easily solved with a pivot table, but can’t seem to make that work either…
Any advice would be greatly appreciated!
Amy
Hello Amy,
To make things easier for us to understand, can you please send a sample workbook to support@ablebits.com, or upload it to Excel Online and post a link here.
I want to transfer date to another sheet automatically to specific sheet with specific data
I fill all data in sheet 1 and split this data to others sheet 1, sheet 2 , sheet 3 ....
All i need is to transfer date because i recall the others data from sheet 1by using array function SUMPRODUCT, SUMIFS.
My header including,
Date Tag Fueld Hour/Km
I use SUMPRODUCT function to recall the Tag, Fueld and Hour/Km from main sheet 1 by manual filling the date.
Please help me on this situation or would be appreciate for another way.
Sorry for my English!
Thanks in advanced,
thuraz
hi Svetlana,
thank you for sharing your experince of excel.
thats great.
one of the other usage of sumproduct function is
to limit user to enter data in column A only using character (without contain number);
1-select column A
enter this formula in the costum section at data validation.
=sumproduct(--isnumber(--mid(a1;row(indirect("1:"&len(A1)));1)))=0