29 Excel Formula Tips for all Occasions [and proof that PHD readers truly rock]

Share

Facebook
Twitter
LinkedIn

It is no exaggeration that knowing excel formulas can give you a career boost. From someone starting at the long list of numbers, you can become a data god who can lookup, manipulate and analyze any spreadsheet by learning few excel formulas.

So when our little excel blog hit the 5000 RSS Subscriber milestone, I celebrated the occasion by asking you to share an excel formula through twitter or comments with rest of us. And boy, what an excellent list of formula tips you have shared with us all.

Here is the complete list of entries for the twitter formula contest.

Follow the links next to contributor’s name to see the original twitter post or comment

To return the full Path+Filename of your (saved) workbook

by Dmurphy on PHD comments

To return the full Path+Filename of your (saved) workbook (and dropping the [] characters) to get, for example, C:\Data\ExcelFiles\MyWorkbook.xls: =SUBSTITUTE(SUBSTITUTE(LEFT(CELL(”filename”,$A$1), FIND(”]”,CELL(”filename”,$A$1))),”[“,””),”]“,””)

Create a Dynamic Range that Grows and Shrinks with Data

by ps62 on twitter [@ps62]

IF($A6=””,””, SUM(OFFSET(Data,$A6-1,StartDateIndex-1,1,NumCols))) – makes stuff dynamic

Find the last cell in a row

by govi on twitter [@govi]

Return last filled cell in a row: =LOOKUP(9,999E+307;A1:IV1)

Cleaning your data (Example, changing the values in a column)

by artjohnson on twitter [@artjohnson]

Excel. Cust name header in C9 and text datalist below. Formula in B9 moves name from C9 to B9. Copy down. =if(isblank(C8),c9,b8)

Extract the month from a date

by Alan on PHD comments

Probably a easier way of doing this , extracting the month from a date as text. A1 is date =TEXT(DATE(0,MONTH(a1),1),”mmmm”)

Clean your text before you lookup

by rushikul on twitter [@rushikul]

=VLOOKUP(CLEAN(TRIM(E20)),F5:G18,2,0). To make sure you are using clear text, as text is most used in vookup_value

Find if two ranges are statistically different

by nandoaires on twitter [@nandoaires]

=IF((1-(1-NORMSDIST(ABS(A1-A2)/SQRT((2*AVERAGE(A1:A2)*(1-AVERAGE(A1:A2)))/(A3))))*2)>0,95;”Different”;”Equals”)

Lookup 3 criteria and return the match

by Alan_xls on twitter [@Alan_xls]

=Index(return,Match(1,(1stRange=criteria1)*(2ndRange=criteria2)*(3rdRange=criteria3),0)) Return result where 3 values match,Array Form

Offset with Match, get data from somewhere else

by Arnab Bose on PHD comments

This formula looks up data from another sheet considering three parameters keeping into account the column A and column B with sub-components (both on another sheet) and matching them up with the heading on both sheets. =OFFSET(’Data Sheet’!$C$1,MATCH(D$2,’Data Sheet’!$A$2:$A$140,0)+MATCH($B5,’Data Sheet’!$B$2:$B$20,0)-1,MATCH(D$3,’Data Sheet’!$C$1:$J$1,0)-1)

Using SUM with multiple conditions

by ps62 on twitter [@ps62]

{=SUM(IF(shoes=”nike”,Units,0))} – array formula – two conditions

VLOOKUP but get values from the left

by bsamson on twitter [@bsamson]

VLookup to return values to the left of the lookup range: =INDEX(SearchRange,MATCH(LookupValue,LookupRange,FALSE))

Getting data from a dynamic range

by Arnab Bose on PHD comments

This formula extracts data from a dynamic data range and returns a zero value if there is an #N/A error. =IF(ISNA(HLOOKUP($A14,Data!$AB$2:$AW$9,MATCH(”P”,Data!$AB$2:$AB$2,0),0)), 0,HLOOKUP($A14,Data!$AB$2:$AW$9,MATCH(”P”,Data!$AB$2:$AB$2,0),0))

Find the difference between maximums of two ranges

by PreetAulakh on twitter [@PreetAulakh]

{=MAX(K5:M5-K4:M4)}, one step formula to determine the max of difference of two ranges! No curly brackets in excel, Cltr+Shift+Enter

Find the top 3 values of a range

by JassiAulakh on twitter [@JassiAulakh]

Large(A1:A100,{1,2,3}). Gives you 3 highest values of a range. Select three cells and enter this formulas. Then Cltr+Shift+Enter

SUMPRODUCT with multiple conditions

by Martin on PHD comments

Here’s my little contribution (previously posted 😉 Named Ranges (should be dynamic, but….) Ship $A$2:$A$8 Captain $B$2:$B$8 flights $C$2:$C$8 in F:F Summary_ship $F$2:$I$2 this 3:3 Summary_Captain $E$3:$E$6 data is in range A1:C8, and summary is in E1:I6. =SUMPRODUCT((Ship=in Summary_ship)*(Captain=this Summary_Captain)*(flights))

Get the name of the workbook

by Dmurphy on PHD comments

To return the name of the workbook only, e.g. MyWorkbook.xls: =MID(CELL(”filename”,$A$1),FIND(”[“,CELL(“filename”,$A$1))+1,FIND(“]“,CELL(”filename”,$A$1))-FIND(”[”,CELL(”filename”,$A$1))-1)

Excel Formula Fun – Should we fight… ?

by chrismelck on twitter [@chrismelck]

=IF(ISERROR(VLOOKUP(WOMD,Iraq,1,FALSE)),”Declare war”,”Declare war anyway”)

More ways to use IF and Then formula

by Olu D. on PHD comments

This formula determines the Active (=”T”) status or otherwise of Employees in an Excel spreadsheet: =IF(AC2=””,”X”,IF(AND(AC2=500000,AD2=””),”T”,IF(AND(AC2500000,AD2?”),”F”,”Pls Enter Leaving Reason!!”)))

Using INDIRECT along with VLOOKUP to make dynamic lookups

by squash86 on twitter [@squash86]

=VLOOKUP(B3, INDIRECT(B36), COLUMN()-1,FALSE) The INDIRECT returns the name of a named range that holds the data table.

Calculate the p-value of a t-statistic [Don’t ask me what it is 😛 ]

by David on PHD comments

=NORMDIST(-1*ABS((Z27-AE27)/AG27),0,1,TRUE). Calculate p-value for t-statistic based on means in Z27 and AE27 and the std err of mean in AG27.

What is on the right side of that string

by aniVy on twitter [@aniVy]

=RIGHT(A1,LEN(A1)-FIND(“-“,A1,1)) – Extracts right side string after a hyphen.

Find frequency distribution of a range of values

by Cody on PHD comments

=FREQUENCY(DY5:DY118,EU4:EU14) for creating frequency distributions. I can’t believe I went so long before discovering that there’s an easy built-in array function that does this. Constructing the distribution by hand was always a pain.

In-cell bar graph

by JohnCorp on twitter [@JohnCorp]

=REPT(“|”,A1/MAX($A$1:$A$5)*30) creates a bar graph from the data in the range a1:a5, change the font to change the look of the graph

Get the name of the current worksheet

by Dmurphy on PHD comments

To return the name fo the current worksheet, e.g. “Sheet1?: =MID(CELL(”filename”,$A$1),FIND(”]”,CELL(”filename”,$A$1))+1, LEN(CELL(”filename”,$A$1))-FIND(”]”,CELL(”filename”,$A$1)))

Excel formula fun – Usetheforce()

by _mikii on twitter [@_mikii]

=usetheforce(choke,”Moff Jerjerrod”)

UDF to calculate to royalty, I am not getting any

by chrislbs on twitter [@chrislbs]

=TieredRoyalty($R$16:$T$19,I5) @r1c1 Uses a UDF to calculate royalty on I5 based on a TierTable in R16:T19, saving nested vlookups

Find the Next Friday the 13th

by S3bast1an on twitter [@S3bast1an]

ARRAYformula – Next Friday 13th is =MIN(IF(((WEEKDAY(TODAY()+ROW(1:1000);2)=5)*(DAY(TODAY()+ROW(1:1000))=13))=1;TODAY()+ROW(1:1000)))

Split first name and last name

by Mahmut on PHD comments

=LEFT(A1,FIND(” “,A1)-1) =RIGHT(A1,LEN(A1)-FIND(” “,A1)) Split first names and last names.

IF with a VLOOKUP

by m4th1337 on twitter [@m4th1337]

=IF(VLOOKUP(C1,’Historical Data’!$A$2:$S$332,4,FALSE)>F1,”-“,IF(VLOOKUP(C1,’Historical Data’!$A$2:$S$332,4,FALSE)

And now for the winners

I wish I had more prizes to give. All the tips are truly marvelous. I have learned several cool uses of excel formulas. But alas, we have only 2 prizes in this contest.

Dashboard bundle from Bonavista Systems goes to Govi

The excel formulas 2007 book by John Walkenbach goes to DMurphy

Both the winners are randomly selected. I have already sent them an e-mail with the further instructions to claim the prizes.

Big thank you to Bonavista Systems, the contest sponsor

I would like to thank Andreas from Bonavista systems for sponsoring the dashboard bundle. Bonavista systems makes some really cool tools for excel dashboards, spark-lines and helps you make cleaner and better looking charts. Checkout their products and know more about them from their site.

Further Resources if you want to learn Excel Formulas


Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

34 Responses to “Find Quarterly Totals from Monthly Data [SUMPRODUCT Formula]”

  1. Daniel Ferry says:

    Chandoo,

    Very nice post. In most cases I would use a formula such as yours so that copying is automatic. But for instructional purposes, consider this alternative for the Q1:

    =SUMPRODUCT((MONTH(B$4:B$15)={1,2,3})*C$4:C$15)

    Besides being shorter, this formula is crystal clear in function. Then for the other quarters you would just change the array constants to the months of that quarter. For example, Q2:

    =SUMPRODUCT((MONTH(B$4:B$15)={4,5,6})*C$4:C$15)

    Now I know there are a lot of accountant types out there that think using constants in a formula is some sort of heresy. I think that idea is silly. If the formula is clear and maintainable, constants are ok by me. But if this idea shakes anyones soul, these constants could easily be encapsulated in named formulas and then the formula above could look like this:

    =SUMPRODUCT((MONTH(B$4:B$15)=Quarter1)*C$4:C$15)

    The SUMPRODUCT function is truly magical, as you put it. This article goes into some advanced uses:
    http://www.excelhero.com/blog/2010/01/the-venerable-sumproduct.html

    Regards,
    Daniel Ferry
    excelhero.com

    • David says:

      I have a column of dates(xx/xx/xx) on a sheet that represents when a task is completed. How do I code a formula on a separate sheet(Summary Page) of the total number of completions within a quarter?
      ie;
      Task Date Completed
      task1 02/05/14
      task2 04/01/14
      task3 08/01/14

      I need a formula that scans that column and then adds the number of tasks completed within each quarter of the year.

  2. Martin says:

    Chandoo,

    as usual, great tip.

    Ever since i read this post, I am struggling with a table that has the same layout as the example, and I wanted to add the totals per year and per Q, years as rows, Qs as columns. The first thing I've noticed is that I had to add the double minus to the roundup portion in order to make it work, even my dates ARE dates...but what i cannot figure out is how to summarize by year. I've tried adding a Year(a1:a20)=2010 to the sumproduct, but it returns 0, and I have the Pivot table below to prove that wrong (aaah, how easy was to have that with the pivot table....!!)

    btw, I was playing around with PTs, adding calculated fields and items to solve variations between Actuals and Budgets and Prior Years. Once you get the formulae right, it's sooooo easy to do, and the results are awesome !!!

    all the best,

    Martín

  3. Alan says:

    Amended Chandoo's formula to add a year and it worked fine.

    SUMPRODUCT((YEAR($B$4:$B$15)=2010)*(ROUNDUP(MONTH($B$4:$B$15)/3,0)=ROWS($E$4:F4))*$C$4:$C$15)

  4. Alan says:

    Chandoo

    I generally do quarters in the same way galthough I would have changed the number format of cells E4:E7 to Q0, so that I could reduce to formula length by referring directly to these cells. SUMPRODUCT((ROUNDUP(MONTH($B$4:$B$15)/3,0)=E4)*$C$4:$C$15).
    I like Daniel's suggestion of a named range. Great site.

  5. winston says:

    Thanks Chandoo,

    I use a tbl to create relationshipp for each period to its quartile

    Jan Q1
    Feb Q1
    Mar Q1

    Create a lookup in a helper column to lookup the correct quartile.
    Use Sumif on the column with the quartile

    Best regards,
    Winston

  6. Chandoo says:

    @Daniel: Excellent insights as always. I am finding SUMPRODUCT formula really really powerful.

    I didnt know that we can write conditions like ={1,2,3}. I remember trying that but it didnt work. thanks for telling me how to do it. I like your idea of named ranges. It will keep things simple and also let the reports to easily transformed if one needs to change Q1 from JAN-MAR to APR-JUN.

    @Martin: See Alan's comments. Also, I liked your question, so I am doing a follow up post on it today. Refer to it to find out how you can get quarterly totals from multi-year monthly data.

    @Alan: Very good tips. Thank you. Infact, in the download file you would find the formula to be slightly different. I used ROWS() so that I need not change the values for each quarter. I guess either technique works fine.

    @Winston: Thanks for sharing your technique. Using helper columns is a fine option too. It keeps the formulas clean and simple. I was just curious and investigated to find if there is a formula that would avoid helper columns.

    • Jason says:

      Chandoo, I learn so much from your posts. Thank you for this!

      I was wondering, how would this get applied to a dashboard with a dynamic date slider?

      Right now I show sales for the week, month, and year based on the date I choose. I've yet to discover how to calculate quarterly numbers based on my date selection.

      My date is determined by: =DATE(2018,12,31)+7*(A2-1) with A2 updating based on the slider.

      Sales This Month is calculated as: =SUMPRODUCT((MONTH(Data[Order Date])=MONTH(D2))*(Data[Sales Amount])) with D2 containing the date formula above.

      ANy suggestions?

      • Chandoo says:

        Thanks for your question Jason.

        It seems you have data at date (or even lower level). In such cases, you need either two conditions or probably SUMIFS to solve this. For example with SUMIFS,
        =SUMIFS(data[sales amount], data[order date],">="&quarter_start, data[order date],"<"&quarter_end) where quarter_start = date(year(a2), choose(month(a2), 1,1,1,4,4,4,7,7,7,10,10,10), 1) and quarter_end = date(year(a2), choose(month(a2), 4,4,4,7,7,7,10,10,10,13,13,13), 1) can work.

  7. Kamran says:

    How about if we have the data in weeks and we want to roll it up in Q1, Q2, Q3, Q4
    will this work for Q1:
    =SUMPRODUCT((MONTH(B$4:B$15)={1,2,3,4,5,6,7,8,9,10,11,12,13})*C$4:C$56)

  8. yreadthis says:

    nice article to use the new things on the excel to calculate the needed ports...The use of tables shows the image view than the wordings, since images are easily recorded in the mind of users than the words to be read...

  9. [...] Quarterly data in a formula May 4, 2010 at 9:12 AM | In General | Leave a Comment Tags: month, formulas, flag, quarter, sumproduct Chandoo wrote a post about combining the power of SUMPRODUCT with a small mathematical trick in order to calculate a quarterly sum from a monthly data table. [...]

  10. Kyle says:

    I have an issue, much different yet has some similarities...

    I have two worksheets... 'Summary' worksheet and 'Stop pays' worksheet.
    The summary sheet has the $ amount of checks paid each week. (example. A1= 1/1/10, B1= $100,000.00; A2= 1/8/10, B2= $120,000.00, A3= 1/15/10, etc...for 52 weeks)

    On the stop pays sheet is a list format of each check that was voided at a later date... (example. column A= original check date, column B= check voided amount, column C= void date. A2= 1/1/10, B2= -$100.00; A3 = 1/1/10, B3= -$150.00; A4= 1/1/10, B4= -50.00; etc...)

    On the summary sheet in C1, I need to calculate the total checks actually paid out. I have been trying to use combinations of SUMPRODUCT with VLOOKUPS, but can't get anything to work. The result in C1 should $99,700.00

    Any thoughts, all help is appreciated. Thanks, Kyle

  11. Hui... says:

    @Kyle
    Give this a try in Summary!C1 and copy down
    =SUM($B$1:B1)+SUMPRODUCT(1*('Stop Pays'!A2:A100<=Summary!A1)*('Stop Pays'!$B$2:$B$100))

  12. Chandoo says:

    @Kyle... you can use sumif formula...

    Assuming your summary sheet is in range A1:B10, stop pays sheet is in range A1:B20.

    in summary c1 write = b1 - sumif('stop pays'!$a$1:$a$20,a1,'stop pays'!$b$1:$b$20)

    Read more about sumif formula here: http://chandoo.org/wp/2008/11/12/using-countif-sumif-excel-help/

  13. Kyle says:

    @Hui. Thanks, but for some reason this only worked for the first row (C1), when I copied down the results werent accurate.

    @Chandoo. This seems to work perfectly. Thank you.

    Thanks again.

  14. Hui... says:

    @ Kyle
    Chandoo's formula is giving the amount each month (Cheques - Stop Pays)
    Mine is giving a running total from 1/1/10 to the date in Summary!Column A

  15. Priyank says:

    I have monthly data in one sheet and want to calculate quarterly and annual data is two other sheets. all monthly data is arranged across columns. so A1 is jan 2000, b1 is feb 2000, c1 is march 2000 and so on.

    Please help

  16. Chandoo says:

    @Priyank: Assuming your months are (in date format) in A1:X1 and corresponding values are in A2:X2, you can calculate quarterly totals like this:

    =SUMPRODUCT((ROUNDUP(MONTH(A1:X1)/3,0)=1)*(A2:X2)) for Q1. Modify it to get Q2... etc.
    you can use similar logic with YEAR() to get yearly totals.

  17. Stawa says:

    This formula is not working properly in one of my sheets with horizontal cash flows using columns instead of rows. For example, Q1 only sums M1 and Q2 is summing up M2:M4. It doesn align propoerly. The formula works if I create a simple test using same format in excel but not in the model. Can I send the excel to someone?

    Thanks,
    Marc

  18. Ramki says:

    Item 01-Mar 02-Mar 03-Mar 04-Mar Tot.
    Soap 24 12 15 13 (E5-F5)+(G5-F5)+(G5-H5)
    Ketchup 12 10 8 14
    Tea 10 8 5 8
    Soup 12 7 9 11
    Coffee 22 26 14 13
    Hi!!,
    I need your help in fixing above problem.
    I do get day day wise closing stock of my company.To get day sales have to
    substract today's no from prev.day's no. But sometimes today's no is big due to receipt of stock.That time I need to substract prev.day's no from today'no. Pls see formula in tot column.Like this I have to do for 31 days and 250 items.I want one formula in one cell give final result(tot)by satisfying above conditions else I have to punch a formula in above column which is boring ang time consuming.Thanks in advance.

  19. Jon says:

    Hi Chandoo et al,

    My question builds on the post regarding quarterly totals from monthly data. I'm having trouble getting the formula to work when the time period I want quarterly totals for exceeds 12 months. In my case, I have 240 months and need these to be collapsed into 60 quarters. Any suggestions? Or should I simply cut and paste the formula for each 12 month period?

    thanks

  20. DavidH says:

    Hi Chandoo,

    I have a similar problem, but with a twist. I often compare actual and budget data where the actuals are in one range with Jan-Dec data and the budget is another range with Jan-Dec data.

    The problem I have is that at the beginning of the year I know the budget for all 12 months, so my range is populated for Jan-Dec. The actual data is populated as we complete those months.

    Here's the rub: when caluclating totals for Oct, say, the formula to retrieve Q4 data needs to be smart enough to NOT include the November and December budget amounts, which are already populated in the table.

  21. Suvasini says:

    how can I do the same using SQL query?plz help

  22. […] Find Quarterly Totals from Monthly Data [SUMPRODUCT Formula] | Chandoo.org - Learn Microsoft Excel O… […]

  23. Rohit says:

    How do we use this for getting totals for the latest qtr? anybody?

  24. Rohit says:

    My challenge is I don't want to use a helper column. Want to derive the latest qtr and then average the numbers for that qtr . Ex this gives an error :

    AVERAGEIF((ROUNDUP(MONTH($A$2:$A$7)/3,0),(ROUNDUP(MONTH(MAX($A$2:$A$7))/3,0)),B2:B7))

  25. Lisa says:

    Hi

    I am arranging a spread sheet for work but am struggling with a date function. we have customers in our service for up to 2 yrs, however we have to calcuate the number of days they have been in service each quarter. For example Q1 will run from 15/01/15 to 06/04/15 but my customer could have joined on 03/09/14 ... i don't want to calulate all the days just the days in the quarter... which should be upto 91 days max. Can any one help at all?

  26. Mablazo says:

    Dear all

    I can see your formula and I think it works perfectly for what I want to achieve, ie pull quarterly figures from a range showing monthly data. There's only one problem. I cannot follow how the sumproduct formula is working in this case. Could anyone please help with an explanation on what is going on in that formula so I can hopefully be able to apply it.

    Thanks

  27. Olly says:

    Hi,

    I need to come up with a way to show the current quarters info, this would be run off the month end date.

    For example: If the month end date is 28.2 then I need to bring back Jan data and Feb data or if the end date was 31.3 I would need to total Jan, Feb and Mar data.

    I am thinking of creating unique references such as the quarter plus which month it is in the quarter ie if it was feb, the unique reference would be Q12 (Q1 for the quarter and 2 for the month as it is the 2nd month in the quarter). Would I need to use an index or offset formulae.........

    Any help would be appreciated.

  28. Hesham M Dabbas says:

    Greetings,
    Can we make this a little more involved just month and sales results.
    What if I have the following columns:
    Vendor Name
    Market
    Line of Business
    Month
    Sales
    Now I want to calculate the average quarterly sales by vendor, Market, and Line of Business

  29. Lyndon Dickson says:

    Im a little confused, I have the following table of sales

    Sales Sheet
    ColA=dates(dd/mm/yyyy)
    ColE=amount(total amount of sales in $)

    eg

    A E
    11/02/2020 $20.00
    01/01/2020 $15.00
    03/12/2020 $16.00
    05/07/2020 $23.00
    etc etc

    Report Sheet
    I want to report the running total of sales for each quarter and update the figures here as more get added

    Cell B2= Quarter1 total
    Cell B5= Quarter2 total
    Cell B8= Quarter3 total
    Cell B11= Quarter4 total

    How do I read the Sales Sheet column A selecting all dates for each quarter and sum total them in The Report sheet. I have tried mucking about with your formula but I just keep getting errors, any help much appreciated

  30. Shilpa says:

    I have problem Statement, my data are monthly i need to do comparison at QTD level say i am second quarter May (so my data should only pick April and May total) and( when in June it should pick Apr+ May +June) - can i your help on this
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    1 2 3 4 5 6 7 8 9 10 11 12

Leave a Reply