works for all versions of excel


D2=IFERROR(INDEX($A$2:$A$100,SMALL(IF($B$2:$B$100>0,ROW($A$2:$A$100)-ROW($A$2)+1),ROWS($A$2:A2))),"")

Control+shift+enter . For office 365 only enter

copy down