Home » excel » Excel 2003: Better workaround for 10 if statements

Excel 2003: Better workaround for 10 if statements

Posted by: admin April 23, 2020 Leave a comment

Questions:

enter image description hereI have a very rough workaround for 10 statements using a combination of 2 cells, as follows

Cell 1 (O2)
=IF(C2="TW2-OUT",VLOOKUP($D2,Players,8,FALSE)+VLOOKUP($D2,Players,9,FALSE),IF(C2="TW2-IN",IF($D2="","",VLOOKUP($D2,Players,10,FALSE)),IF(C2="Playing",IF($D2="","",VLOOKUP($D2,Players,8,FALSE)+VLOOKUP($D2,Players,9,FALSE)+VLOOKUP($D2,Players,10,FALSE)),IF(C2="IN1OUT2",VLOOKUP($D2,Players,9,FALSE)+VLOOKUP($D2,Players,10,FALSE),IF(C2="TW1-OUT",IF($D2="","",VLOOKUP($D2,Players,8,FALSE)),IF(C2="TW1-IN",IF($D2="","",VLOOKUP($D2,Players,9,FALSE)+VLOOKUP($D2,Players,10,FALSE)),IF(C2="TW3-OUT",VLOOKUP($D2,Players,8,FALSE)+VLOOKUP($D2,Players,9,FALSE)+VLOOKUP($D2,Players,10,FALSE),0)))))))+P2

Cell 2 (P2)
 =IF(C2="TW3-IN",IF($D2="","",VLOOKUP($D2,Players,11,FALSE)),IF(C2="IN2OUT3",VLOOKUP($D2,Players,10,FALSE),IF(C2="IN1OUT3",VLOOKUP($D2,Players,9,FALSE)+VLOOKUP($D2,Players,10,FALSE),0)))

Is there a better way of doing this. I have read via a Google search about using a table approach with an array to achieve the same effect. However, in my case the status of a player determines the score of a player and this complicates things for me. Here are the 10 possible statuses (if statements) broken down as follows with how scored are calculated:

TransferStatuses    Cols
Playing             8+9+10+11
TW1-IN              9+10
TW1-OUT             8
TW2-IN              10+11
TW2-OUT             8+9
TW3-IN              11
TW3-OUT             8+9+10
IN1OUT2             9
IN1OUT3             9+10
IN2OUT3             10



8 = ColK (Transfer Window 0)
9 = ColL(Transfer Window 1)
10 = ColM (Transfer Window 2)
11 = ColN(Transfer Window 3)

The ‘score’ array will be along the lines as follows:

=VLOOKUP(C2,$S$2:$T$11,2,FALSE)

The problem is that I don’t know how to put it all together to make it work, i.e. I have to extend my formula to 300 cells but I don’t know how to implement it so that the array calculates the scores correctly for each player?

Can someone help?

How to&Answers:

If I understand you correctly I would approach it like this:

Set up a matrix of binary values that specify, for each status, which columns should be added up. Use OFFSET and MATCH to look up the status for each data row and return the array/range of binary values, and SUMPRODUCT to sum it all up. See screenshot:

enter image description here