I am stuck in finding the least 10 values in excel using small function with multiple criteria and also excluding zeros.
Array formulas do not like AND
or OR
, so reduce them to their boolean values by multiplying them together, using your pseudo code:
=small(if((person="a")*(hours <> 0)*(weather<>"rainy"),hours),no)
Remember that this it an array formula and must be confirmed with Ctrl-Shift-Enter instead of Enter when exiting edit mode.
So if person was column A, hours column B, and weather column C, put this in the first cell in which you want the answers:
=SMALL(IF((A1:A100 = "a")*(B1:B100 <> 0) * (C1:C100 <> "rainy"),B1:B100),Row(1:1))
Confirm with Ctrl-Shift-Enter and copy down the desired number of results. The Row(1:1) will iterate from 1 to 2 to 3 as it is copied down.