Solved

Need help with complex formula in excel

Posted on 2014-09-30
13
52 Views
Last Modified: 2014-10-27
If column D = Defend
AND column E or G greater than or equal to 5,000,000
THEN set column N to 1
 
If column D = Renewal or Upsell or New Business
AND column E or G greater than or equal to 10,000,000
THEN set column N to 1
 
If column D = Renewal or Run Rate
AND column E or G less than 10,000,000
THEN set column N to 2

If column D = Up Sell or New Business
AND column E or G less than 10,000,000
THEN set column N to 4

If column D = Run Rate
THEN set column N to 2

If column D = New Business
AND column E or G equal to or greater than 10,000,000
THEN set column N to 1
0
Comment
Question by:Matt Pinkston
  • 4
  • 2
  • 2
  • +4
13 Comments
 
LVL 26

Expert Comment

by:ProfessorJimJam
ID: 40353257
assuming your data starts from the second row .  put this formula in N2 and copy down
=IF(AND(D2="Defend",OR(E2>=5000000,G2>=5000000)),1,IF(AND(D2="Renewal or Upsell or New Business",OR(E2>=10000000,G2>=10000000)),1,IF(AND(D2="Renewal or Run Rate",OR(E2<=10000000,G2<=10000000)),2,IF(AND(D2="Up Sell or New Business",OR(E2<=10000000,G2<=10000000)),4,IF(D2="Run Rate",2,IF(AND(D2="New Business",OR(E2>=10000000,G2>=10000000)),1,""))))))

Open in new window

0
 
LVL 7

Expert Comment

by:Robby Swartenbroekx
ID: 40353274
=IF(D1="Run Rate";2;IF(AND(D1="Defend";OR(E1>=5000000;G1>=5000000));1;IF(OR(D1="Upsell";D1="New Business");IF(OR(E1>=10000000;G1>=10000000);1;4);IF(D1="Renewal";IF(OR(E1>=10000000;G1>=10000000);1;2);""))))

Open in new window


If the Value in D1 isn't one of the above, or it is Defend with a value less then 5 Million in E and G column the value of N1 is empty
0
 
LVL 19

Expert Comment

by:Raheman M. Abdul
ID: 40353275
Considering the order of processing from top to botton in your question I have formulated the below:

Enter this formula in column N

=IF(AND(D1="Defend",OR(E1>=5000000,G1>=5000000)),1,IF(AND(OR(D1="Renewal",D1="Upsell",D1="New Business"),OR(E1>=10000000,G1>=10000000)),1,IF(AND(OR(D1="Renewal",D1="Run Rate"),OR(E1<10000000,G1<10000000)),2,IF(AND(OR(D1="Up Sell",D1="New Business"),OR(E1<10000000,G1<10000000)),4,IF(D1="Run Rate",2,IF(AND(D1="New Business",OR(E1>=10000000,G1>=10000000)),1,""))))))
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

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.

 
LVL 26

Expert Comment

by:ProfessorJimJam
ID: 40353299
I do not understand it.  when a question is answered, why others are stepping on others toes.

right after the question asked, it has been answered by me.  so, either you spent your time re-inventing the wheel, or simply copying my formula and re pasting it here.
=IF(AND(D1="Defend",OR(E1>=5000000,G1>=5000000)),1,IF(AND(OR(D1="Renewal",D1="Upsell",D1="New Business"),OR(E1>=10000000,G1>=10000000)),1,IF(AND(OR(D1="Renewal",D1="Run Rate"),OR(E1<10000000,G1<10000000)),2,IF(AND(OR(D1="Up Sell",D1="New Business"),OR(E2<=10000000,G2<=10000000)),4,IF(D2="Run Rate",2,IF(AND(D2="New Business",OR(E2>=10000000,G2>=10000000)),1,""))))))
0
 
LVL 7

Expert Comment

by:Robby Swartenbroekx
ID: 40353334
- I had the question open and started writing on it, I've never seen your code before I posted my code.
- Raheman and myself also read the question a little bit different than you. we all are correct. Depending on which of the 2 interpretations is correct, that means that or your code is good, of Raheman and mine are good.
- I also looked for impossible combinations and better sorting. If my interpretation is correct, then the last part is already dealth with by part 2, part 5 simpifies part 3 and I also combined part 2 and 4 to make the formula as small as possible.

It also took a little bit longer with my because my Excel is in Dutch, so I hade to write & test my code + translate it to English.
0
 
LVL 7

Expert Comment

by:tomfarrar
ID: 40353340
Try this:

=IF(D4="New Business", 2, IF(AND(D4="Defend", OR(E4>= 5000000, G4>=5000000)), 1, IF(AND(OR(D4="Renewal", D4="Upsell", D4="New Business"), OR(E4>=10000000, G4>=10000000)), 1, IF(AND(OR(D4="Renewal", D4="Run Date"), OR(E4<=10000000, G4<=10000000)), 2, IF(AND(OR(D4="Up Sell", D4="New Business"), OR(E4<=10000000, G4<=10000000)),4,IF(AND(D4="New Business"), OR(E4>=10000000, G4>=10000000), 1 ))))))
0
 
LVL 19

Expert Comment

by:Raheman M. Abdul
ID: 40353452
Professorjimjam
I never saw your code before I post after I finish in my excel sheet. I opened the question and started working on it and just posted my comment.
I saw your code now and mine is different than you.
Don't worry mate.

Robby, thanks mate
0
 
LVL 26

Expert Comment

by:ProfessorJimJam
ID: 40353479
it is alright.    no big deal.

I understand
0
 

Author Comment

by:Matt Pinkston
ID: 40353481
okay whose on first I need to do some playing to see whose "first" response answered the data call.
0
 
LVL 26

Accepted Solution

by:
ProfessorJimJam earned 500 total points
ID: 40353487
pinkstonmp

first response was mine

my code was :)  

=IF(AND(D1="Defend",OR(E1>=5000000,G1>=5000000)),1,IF(AND(OR(D1="Renewal",D1="Upsell",D1="New Business"),OR(E1>=10000000,G1>=10000000)),1,IF(AND(OR(D1="Renewal",D1="Run Rate"),OR(E1<10000000,G1<10000000)),2,IF(AND(OR(D1="Up Sell",D1="New Business"),OR(E2<=10000000,G2<=10000000)),4,IF(D2="Run Rate",2,IF(AND(D2="New Business",OR(E2>=10000000,G2>=10000000)),1,"")))))) 

Open in new window

0
 
LVL 27

Expert Comment

by:Glenn Ray
ID: 40353522
As a side note to previous experts, may I recommend that you refresh the browser before posting an answer?  That will ensure that you can see if anyone else has supplied an acceptible answer before you.  If you think you have a better solution (more efficient, simpler, easier-to-understand, more-flexible, etc.) then there's no reason not to post.  

It happens to all of us; some folks are quick on the draw, but shoot and miss; some wait for the first shot and then get ya right between the eyes.  :-)

-Glenn
0
 
LVL 33

Expert Comment

by:Rob Henson
ID: 40354306
To throw another option into the fray, all of the above could possibly be simplified by using a small INDEX table.

Match the Text down a column, match the value across the top, return the value at the intersection.

Thanks
Rob H
0
 
LVL 33

Expert Comment

by:Rob Henson
ID: 40354326
See attached, change values in cells A11 & A12 and see result in yellow highlighted cell.

Thanks
Rob H
Q-28528650.xlsx
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering 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

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
Introduction While answering a recent question (http:/Q_27311462.html), I created an alternative function to the Excel Concatenate() function that you might find useful.  I tested several solutions and share the results in this article as well as t…
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.

828 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