When you were first learning how to use Excel, you quickly discovered the basic Excel functions, like:
- SUM
- COUNT
- MIN and MAX
- AVERAGE
In the olden days, the hardy Excel pioneers had to type those function names, to create a formula. That's why we look so tired! For example, cell F3 has a formula to find the lowest quantity sold:
=MIN(D2:D8)
To find the highest quantity sold, there is a MAX formula in cell G3:
=MAX(D2:D8)

Things are easier now – you can select the basic functions from the AutoSum drop down. Life is good!

Beyond the Basics with MIN IF
In this example, we want to see the MIN and MAX for a specific product. To make it easy to select a product, I created a drop down list of product names, by using data validation.

While MIN and MAX are useful if you want the overall highest and lowest amounts, what if you want to add criteria? There is a SUMIF function and a COUNTIF function, but no MINIF or MAXIF.
So, it won't be a snap to do a MIN with criteria, but we can muster that pioneer spirit, and create our own MINIF formula. To do this, we'll create a formula that combines the built-in MIN and IF functions. So, the formula starts with those two functions, and their opening brackets:
=MIN(IF(
Next, we want to find the rows where the product name matches the product selected in the drop down list
=MIN(IF(C2:C8=C11

And if the product name matches, we want to test its quantity
=MIN(IF(C2:C8=C11,D2:D8

To finish the formula, type two closing brackets, and then press Ctrl+Shift+Enter to array-enter the formula.
=MIN(IF(C2:C8=C11,D2:D8))

When you look at the formula in the Formula Bar, there are curly brackets automatically added at the start and end of the formula, because it was array-entered.
If you don't see those curly brackets, you pressed Enter, instead of Ctrl + Shift + Enter. To fix it, click somewhere in the formula bar, and press Ctrl + Shift + Enter.

NOTE: If you plan to copy this formula down a column, use absolute references to the ranges:
=MIN(IF($C$2:$C$8=$C$11,$D$2:$D$8))
Create a MAXIF Formula
To find the maximum quantity for a specific product, follow the same steps, using MAX instead of MIN.
=MAX(IF($C$2:$C$8=$C$11,$D$2:$D$8))
And remember to press Ctrl+Shift+Enter

Congratulations! You are now a rugged Excel pioneer, building your worksheets with your bare hands, from rocks and tree stumps.
Watch the Video
To see the steps for creating MIN IF and MAX IF formulas, you can watch this short Excel video tutorial. The sample file for this video can be downloaded from the Contextures website, on the MIN and MAX page.
________________





Min IF or Max IF is going to be very useful to me in the near future.
Wow, that's very cool, Debra. Thank you!
I like it!
can use in VBA:
Range("D11?).FormulaArray = "=MIN(IF(C2:C8=C11,D2:D8))"
Thanks VERY much!!! I spent about 4 hours trying to work out how to take the highest number from a large list of numbers if the first three numbers were "x" and with the help of your webpage, I got it sorted. Thanks again!!!!
You're welcome! Thanks for letting me know that the instructions helped you.
Great article, many thanks!
Hi thank you for great article. Is it possible to combine more conditions? I tried to put and function inside if but it didnt work. Can you please help me?
seems that it cannot run in 2003
I agree, is there a way to make it work in Excel 2003?
CTRL + SHIFT ENTER
That formula is not working. I even tried the exact same information. I am using excel 2010. It gives me error: #value!
@Dora, remember to press Ctrl+Shift+Enter to array-enter the formula.
It won't work correctly if you just press Enter
Thanks Debra!! I forgot that.
Hi. I keep getting the #Num error when using this. Do you know why?
Brilliant! Am at a coal mine in the middle of nowhere going through some data, and found your website in a frantic google search while sitting outside in the carpark with 1 bar of signal. Lifesaver. Cheers for the humourous instructions.
@George, thanks, and I'm glad you found the solution when you needed it.
Thank you very much, certainly useful and much simpler than I expected!
PRODUCT RED GREEN BLUE MAXIMUM
A 0 10 0
B 12 0 0
C 0 0 9
How I will get the maximum nos by using if formula.
THANK YOU SOOOOOOO MUCH!!!! I spent hours trolling around the internet trying to find a MAXIF-like formula. This website saved my PowerPoint deck (and my tail)....lol
EXCELente !!! muchas gracias
It's a shame such a normal (and useful) function as this still has to be done with the memory-hogging Array formula. I guess Microsoft won't get around to adding it as a normal function until Office 2025?
This explanation was a major boon to my worksheet development. Thanks so much!
Thanks for this; is there anyway to know in advance whether I will need to convert formulas in excel into array formulas. Not 100% sure of when a formula should be an array vs a standard formula.
ty in advance
That's great, but I'd like to take it a bit further. I'd like to combine the small/large functions with an if condition. Basically, I want to find the top/bottom 20 values in a column, given that 2 other conditions hold true. Does that make sense?
I can obviously do this with a pivot table using filters, but prefer to avoid having to update them each time. Thanks.
THANK YOU SO MUCH............!!!
I have run into two issues...maybe someone can help.
1) The calculations take a long time when adding this formula.
2) if there is a #N/A in the data, it comes up with #N/A instead of ignoring it
Thanks!
Hi,
You probably found an answer to this as it was a few months ago, but if not, use:
=IF(ISERROR(insert debra's fantastic formula here),"",insert debra's fantastic formula again)
This is a great method and it seems to work very well. I have a situation where the data is not arranged in a "vertical" array. By this I mean the records are listed column-wise, not row-wise. Unlike the capability of the built-in function =averageif() which works both ways, I can't seem to get this method to work in an array where new records are added horizontally in columns.
Can you verify if this is true?
thanks, -doug
Thnk you evry much. I've been working on this for quite a while, but this is an easy solution. Thanks for putting it online for everyone! I'm sure you've helped a lot of people, most people dont post a thankyou...
I love thinking out of the box! Great explination and very very useful!!
Thanks for wonderful explanation,,, its really informative!!!!
Thanks - this array function is working well for me as a substitute for MAXIFS in my local file. However, after I got is all tested and working, I posted these changes into the live file which is a shared Excel file on my company's internal network server. Turns out, it does not work well in a shared file. When one tries to copy, or insert rows, Excel 2007 returns this error:
Error 1004:
Cannot copy or move array entered formulas or data tables in a shared workbook.
Does anyone know of any way to do MAXIFS without using array formulas? e.g. without using Ctrl+Shift+Enter?
Thanks,
Jeff
Great article, thanks so much, saved me a lot of time.
So I have used the MIN IF many times now, but for the first time I have gaps in the data, while the min function would traditional ignore blanks, the MIN IF inserts a 0. Certainly something to mindful of but does anyone know a work around?
Debra:
This explanation is excellent and easily understood. More importantly, it has helped me immensely with several projects which would have been quite complicated without your great help.
This is great and works well. How can you change the formula to look up the Product column and then list each product and its corresponding highest or lowest value?
Thus you don't have to referenc cell C11 i.e. here is a list of all my products show me the max/minmum for each.
Thank you!
[...] I think you are probably best to have a single worksheet that contains all the dumped data, along with the timestamp. Then have a second sheet that has a table for the different dates. Have a look at this ("Beyond the basics with min if") to show you how to use conditional formulas to extract only data that is relevant to that date. Finding MIN IF or MAX IF in Excel | Contextures Blog [...]
Perfect! Just what I was looking for.
Cheers
I HAVE IN A1 MONTH LIST , B1 AMOUNT , C1 AMOUNT I NEED TO MAKE D1= IF A1=1JAN TO 30 MARCH AMOUNT IN B1 IF A1= 1 APRIL TO 31 DEC =C1
Hi,
If I enter "paper" in C12 and "pens" in C13, can I copy the array formula down? Don't seem to be able to do that - it still seems to link only to C11 (even if I remove the absolute reference)? Any help?