MIN function exclude "Zero" values - Non Consecutive group of cells

Copper Contributor

I am struggling with ignore zero values when the group of cells to be tested is not a consecutive range


The function "=MIN(D7,M7,V7,AE7,AN7)" works fine but I want to ignore lowest value if AE7 and AN7 are zero.


All the examples for MINIFS require the group of cells to be tested to be a consecutive Range  (D7:AN7) however, I have values in the 7th row that I do not want factored in.


Thanks in advance and I apologize for my nube-ness...

23 Replies



If you don't have Microsoft 365 or Office 2021, confirm the formula with Ctrl+Shift+Enter.


Something like this?





Another 365 solution

= LET(
    k, SEQUENCE(1,5,1,9),
    array,   INDEX(dataRow, k),
    nonzero, IF(NOT((array=0)*(k>=28)), array),
    MIN(nonzero) )

This builds an array from every 9th cell in the row.  Any zeros found in the back end of the array are converted to FALSE.  MIN returns the required result.


If you do not have 365, it might be the time to say.




With Office365 or 2021 you can apply IFS formula:






As variant

=LET(v, INDEX(D7:AN7,,SEQUENCE(,5,1,9)), MIN( FILTER(v,v)) )
Hi everyone, I'm reaching out here as I think I have a slightly differrent but similar need.

I'm trying to get the second lowest value among a few specific columns.
My prices are stored within columns T, AQ, BN & CK. The idea here is to get all of the different offers on the same line.

I tried the LOWEST VALUE function, (PETITE.VALEUR in french) that allows you to choose whih nth value you are willing to retrieve.

However, the cells range has to be continued which is not the case for me.

Anothe restrain is that I cannot aggregate the date on a continued cells range.

Anyone has a workaround ?

Thanks in advance for your time & help and I wish you a nice day.



You can use the following:




Thanks for your reply, however, when typing =MIN(CHOISIR({1;2;3;4};AQ6;BN6;CK6;DH6);2) It reverts either 2 or the minimal value among AQ,BN;CK & DH.

Feels like I'm missing something here.



Sorry for not translating it before. You shouldn't use MIN but PETITE.VALEUR.




Works like a charm, many thanks & have a nice day :)



Glad it worked! Have a nice day too


If no zero formula returns second smallest.

If two or more zeroes formula returns zero.



Was not aware of being an issue to @TomA350 


Any proposal in this case?


If 365 something like

=LET(a, HSTACK(A1,C25,E4,G5), MIN( FILTER(a, a ) ) )


One more variant

=MIN( CHOOSE( ROW(A1:A4), IF(A1,A1), IF(C25,C25), IF(E4,E4), IF(G5,G5)))




Just replacing MIN by SMALL to meet Tom's requirement of retrieveing the second smallest number and beautiful alternative.



And just to add to the pot, an interesting small challenge:


Imagine range from large negative to large positive. We aim to retrieve the second smallest positive number from a discontinued range of cells. Hundreds of cells to take into account. The second smallest number retrieved (k) should not be equal to k -1, nor k +1. That is, a unique second smallest positive (non-zero) number.


See initial structure:






In the example, 8 should be the value retrieved and not 1.


Also, how to set the HSTACK or similar in an efficient way (hundreds of cells, cannot be entered mannually - one space between each one always).



With IF() we return FALSE if the value is zero, and logical value is ignored by MIN()


Not to enter hundred of references it shall be some logic defined, i.e. take every third cell or like. If no such logic when only manually.