I would give an example but I don't understand your spreadsheet.

Say I search for a word Beds with in a matrix Match() can find me exact match within a column or row. If Shelves is in the cell next to it when I pass Match() to index() I do Match()+1. This is how I search for products with sub containers such as shelves draws etc. I'm sure you can apply the same teqnique but I don't understand what you mean by it returns the wrong price.