• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 454
  • Last Modified:

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
0
nirajkrishna
Asked:
nirajkrishna
  • 2
  • 2
1 Solution
 
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
0
 
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.
0
 
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
0
 
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!
0

Featured Post

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now