mike637

asked on

# Excel. Nested vlookup with offset

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

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

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

ASKER

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

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

ASKER CERTIFIED SOLUTION

membership

Create an account to see this answer

Signing up is free. No credit card required.

ASKER

Barry,

Thank you! It worked perfectly.

You are too damn smart. :)

Michael

Thank you! It worked perfectly.

You are too damn smart. :)

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

[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