How to make excel use a column based on condition in vlookup

I have several columns with different prices for my location codes. I want to use a certain column's price based on the shipping amount. For example, if my amount is less than 100 I would want to use column B's price in the attached spreadsheet. If the amount is greater than 20,000 then I want to use column K. If the amount is 3,500 then I would use column G. How do I do this? I imagine it is some sort of Index Match or a conditional formula in the lookup column of the vlookup. I may have more conditions then the attached example, so I think "IF" is limited to 7 nested formulas so that wouldnt scale. Thanks in advance.
Conditional-Column-Lookup.xlsx
nirajkrishnaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

barry houdiniCommented:
You can use MATCH to get the column_index of a VLOOKUP, e.g. like this

=VLOOKUP("ATLA",A$2:K$300,MATCH(3500,B1:K1)+1,0)

where "ATLA" is the lookup value and 3500 the amount. Obviously you can use cell references for those values e.g. like

=VLOOKUP(M2,A$2:K$300,MATCH(N2,B1:K1)+1,0)

where M2 and N2 contain the lookup values

regards, barry
nirajkrishnaAuthor Commented:
This is getting close, but if you notice, 3500 is not one of the columns. The columns may or may not have a pattern. I was thinking ROUNDDOWN, but if there is no pattern then I cannot really use a certain place to round down to. I need something like the max column that is still less than the weight that I specify. In your example, I would want it to "think" 3000 is the highest value that is still under 3500 so use that column.
barry houdiniCommented:
That's exactly what my suggested formula does. If you use the first formula, i.e.

=VLOOKUP("ATLA",A$2:K$100,MATCH(3500,B1:K1)+1,0)

then you get the result 5 because the MATCH part returns 6 and you get

=VLOOKUP("ATLA",A$2:K$100,7,0)

so it returns the value from column G as required, i.e. 5

MATCH with no third argument (or 3rd argument set to 1) automatically rounds down to the previous value, so when you MATCH 3500 that matches with 3000

regards, barry

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
nirajkrishnaAuthor Commented:
WHOA! You're right! I took off the +1 after your MATCH and it does work! You rock! And thanks for a pretty gosh darn simple solution!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Excel

From novice to tech pro — start learning today.