Explanation
The small function can retrieve the smallest values from data based on rank. For example:
=SMALL(range,1) // smallest
=SMALL(range,2) // 2nd smallest
=SMALL(range,3) // 3rd smallest
In this case, the rank simply comes from column E.
Retrieve associated values
To retrieve the name of the company associated with smallest bids, we use INDEX and MATCH. The formula in G7 is:
=INDEX(company,MATCH(F7,bid,0))
Here, the value in column F is used as the lookup value inside MATCH, with the named range bid (C5:C12) for lookup_array, and match type set to zero to force exact match. MATCH then returns the location of the value to INDEX as a row number. INDEX then retrieves the corresponding value from the named range company (B5:B12).
The all-in-one formula to get company name in one step would look like this:
=INDEX(company,MATCH(SMALL(bid,E7),bid,0))
Note: if your values contain duplicates you may get ties when you try to rank. You can use a formula like this to break times.