Excel. Nested vlookup with offset

mike637
mike637 used Ask the Experts™
on
Hello Experts,

I am trying to write a formula that will work in Excel 2003 and 2010, It has a vlookup range with an offset.  I am not sure if this is possible to combine these 2 in the same formula - I was hoping to find a work-around since I am using this formula numerous times throughout my workbook.
I prefer it to be a formula and not computed in a vba cell change routine.

Right now the formula that errors out is:

=C20*(vlookup($F$1,INFO!$A$1:$B$60,2(offset,1,1),false))+IF(C20>40,(C20-40)*(vlookup($F$1,INFO!$A$1:$B$60,2(offset,1,1),false)/2),0)

If needed - here are a few tidbits:

F1 is cell that contains the month on that worksheet.  (I have 12 monthly sheets)
Range INFO!A1:B60 is a constant.
   with A1 being January with the remaining months listed down the column with 4 rows of  names listed under each month.
   Column B being the respective payrates of the individuals in the 4 rows.

The formula should find the month then take the payrate which is over 1 column and down 1 row and multiply by the value in C20 and if any hours are greater than 40 then multiply that offset figure.
(C20 is the amount of hours and will be modified for each of the corresponding folks C20, C21, C22, C23 - after I get the formula to work correctly)

Any help would be appreciated,
Thank you,
Michael
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Most Valuable Expert 2013

Commented:
Hello Michael,

To find a match and go down 1 row and right 1 column you can use INDEX/MATCH, e.g.

=INDEX(Info!B$2:B$61,MATCH($F$1,Info!A$1:A$60,0))

[Note that the first range is "offset" by 1 row and column from the range in the MATCH function]

If F1 matches with A40, for example, that formula will give you the value in B41. You can change the outcome by changing the first range (in the INDEX function) accordingly.

I'm not clear where the +40 hours value comes from, post back if you can't amend the above for that.....

regards, barry

Author

Commented:
Hi Barry,

The 40 is regular pay and anything over 40 is time & half. Hence, my calculation is taking their payrate found in the index and multiplying by the amount of hours in [C20] for straight pay then if the hours > 40, it subtracts 40 and calcs those hours * 1/2 the rate found in the index.

The total value = the gross pay.

I hope this helps to understand what I am computing.

Thanks,
Michael
Most Valuable Expert 2013
Commented:
OK, does the formula I suggested give you the rate you want? I'm not sure whether a name has to come into the equation?

If anything over 40 hours is time & half then you could use this formula for total hours (including the extra half time), e.g. 50 in C20 will return 55 (40+10*1.5)

=C20+MAX(C20-40,0)/2

so if my previous formula is correct you can just multiply those, i.e.

=(C20+MAX(C20-40,0)/2)*INDEX(Info!B$2:B$61,MATCH($F$1,Info!A$1:A$60,0))

regards, barry

Author

Commented:
Barry,

Thank you!  It worked perfectly.

You are too damn smart. :)

Michael

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial