Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

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

Posted on 2013-12-21
4
Medium Priority
?
450 Views
Last Modified: 2013-12-21
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
Comment
Question by:nirajkrishna
  • 2
  • 2
4 Comments
 
LVL 50

Expert Comment

by:barry houdini
ID: 39733621
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
 

Author Comment

by:nirajkrishna
ID: 39733665
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
 
LVL 50

Accepted Solution

by:
barry houdini earned 2000 total points
ID: 39733704
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
 

Author Closing Comment

by:nirajkrishna
ID: 39733859
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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
In this post, I will showcase the steps for how to create groups in Office 365. Office 365 groups allow for ease of flexibility and collaboration between staff members.
This Micro Tutorial will demonstrate how to use a scrolling table in Microsoft Excel using the INDEX function.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question