Filter records between 13 and 16 can also be done using Advanced filter or in Excel 2007 creating a table.

Array formula in A19:

=INDEX(\$A\$2:\$D\$9, SMALL(IF((\$D\$2:\$D\$9<=\$B\$14)*(\$D\$2:\$D\$9>=\$B\$13), ROW(\$D\$2:\$D\$9)-MIN(ROW(\$D\$2:\$D\$9))+1), ROW(1:1)), COLUMN(A1:A1)) + CTRL + SHIFT + ENTER

copied right to D19 and then copied down as far as needed.

Find records between two numbers in a table.xls
(Excel 97-2003 Workbook *.xls)

IF(logical_test;[value_if:true];[value_if_false])
Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE

MATCH(lookup_value;lookup_array; [match_type]
Returns the relative position of an item in an array that matches a specified value

INDEX(array,row_num,[column_num])
Returns a value or reference of the cell at the intersection of a particular row and column, in a given range

ROW(reference) returns the rownumber of a reference

COLUMN(reference) returns the column number of a reference

SMALL(array,k) returns the k-th smallest row number in this data set.