A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Excel » Worksheet Functions
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

advanced 'if' multiply



 
 
Thread Tools Display Modes
  #1  
Old September 22nd, 2008, 04:06 AM posted to microsoft.public.excel.worksheet.functions
spezticle
external usenet poster
 
Posts: 19
Default advanced 'if' multiply

variables:
A = base pay rate
B = overtime pay rate
x1 = hours worked in pay period 1
x2 = hours worked in pay period 2
y = money earned
z1 = hours week 1 40
z2 = hours week 2 40
z3 = hours week 1 + week 2 80

if x1 40 then y = x * A
if x1 40 then y = (40 * A) + (z * B)
if x2 40 then y = x * A
if x2 40 then y = (40 * A) + (z * B)
if x1 40 and x2 40 then y = z2 * B
if x1 40 and x1 + x2 80 then y = z3 * B

Basically a formula that will calculate how much I've earned if I've worked
40 hours in pay period 1 OR pay period 2.
If i hit overtime in week 1 (for example 70 hours), and only worked 20 hours
in pay period 2, then anything above 20 hours in week 2 is also overtime rate.

i see that it's only necessary to calculate that once, instead of twice.
only checking for week 1's overtime, because if i haven't hit overtime in
week 1 the only way I'll get 80 is getting more than 40 hours in week 2.

If this is too complicated for excel, I'll port my stuff and do it in either
C or Visual basic...

Thanks for any help or insight


~Benjamin
  #2  
Old September 22nd, 2008, 04:13 AM posted to microsoft.public.excel.worksheet.functions
spezticle
external usenet poster
 
Posts: 19
Default advanced 'if' multiply

I fixed a few of my variable declarations and math, etc. this should be
proper now:


if x1 40 then y1 = x1 * A
if x1 40 then y1 = (40 * A) + (z1* B)
if x2 40 then y2 = x * A
if x2 40 then y2 = (40 * A) + (z2 * B)
if x1 40 and x1 + x2 80 then y2 = z3 * B
y3 = y1+y2

variables:
A = base pay rate
B = overtime pay rate
x1 = hours worked in pay period 1
x2 = hours worked in pay period 2
y1 = money earned period 1
y2 = money earned period 2
y3 = total money earned
z1 = hours week 1 40
z2 = hours week 2 40
z3 = hours week 1 + week 2 80

if x1 40 then y = x * A
if x1 40 then y = (40 * A) + (z * B)
if x2 40 then y = x * A
if x2 40 then y = (40 * A) + (z * B)
if x1 40 and x2 40 then y = z2 * B
if x1 40 and x1 + x2 80 then y = z3 * B

Basically a formula that will calculate how much I've earned if I've worked
40 hours in pay period 1 OR pay period 2.
If i hit overtime in week 1 (for example 70 hours), and only worked 20 hours
in pay period 2, then anything above 20 hours in week 2 is also overtime rate.

i see that it's only necessary to calculate that once, instead of twice.
only checking for week 1's overtime, because if i haven't hit overtime in
week 1 the only way I'll get 80 is getting more than 40 hours in week 2.

If this is too complicated for excel, I'll port my stuff and do it in either
C or Visual basic...

Thanks for any help or insight


~Benjamin

  #3  
Old September 22nd, 2008, 08:28 AM posted to microsoft.public.excel.worksheet.functions
Roger Govier[_3_]
external usenet poster
 
Posts: 2,297
Default advanced 'if' multiply

Hi

if I have understood you correctly, then the following should work
=MIN(40,x1)*A+MAX(0,x1-40)*B+MIN(40,x2)*A+MAX(0,x2-40)*B+MAX(0,(x1+x2)-80)*B

--
Regards
Roger Govier

"spezticle" wrote in message
...
I fixed a few of my variable declarations and math, etc. this should be
proper now:


if x1 40 then y1 = x1 * A
if x1 40 then y1 = (40 * A) + (z1* B)
if x2 40 then y2 = x * A
if x2 40 then y2 = (40 * A) + (z2 * B)
if x1 40 and x1 + x2 80 then y2 = z3 * B
y3 = y1+y2

variables:
A = base pay rate
B = overtime pay rate
x1 = hours worked in pay period 1
x2 = hours worked in pay period 2
y1 = money earned period 1
y2 = money earned period 2
y3 = total money earned
z1 = hours week 1 40
z2 = hours week 2 40
z3 = hours week 1 + week 2 80

if x1 40 then y = x * A
if x1 40 then y = (40 * A) + (z * B)
if x2 40 then y = x * A
if x2 40 then y = (40 * A) + (z * B)
if x1 40 and x2 40 then y = z2 * B
if x1 40 and x1 + x2 80 then y = z3 * B

Basically a formula that will calculate how much I've earned if I've
worked
40 hours in pay period 1 OR pay period 2.
If i hit overtime in week 1 (for example 70 hours), and only worked 20
hours
in pay period 2, then anything above 20 hours in week 2 is also overtime
rate.

i see that it's only necessary to calculate that once, instead of twice.
only checking for week 1's overtime, because if i haven't hit overtime in
week 1 the only way I'll get 80 is getting more than 40 hours in week
2.

If this is too complicated for excel, I'll port my stuff and do it in
either
C or Visual basic...

Thanks for any help or insight


~Benjamin


  #4  
Old September 22nd, 2008, 08:44 AM posted to microsoft.public.excel.worksheet.functions
David Biddulph
external usenet poster
 
Posts: 8,714
Default advanced 'if' multiply

No, I think that you've still got some work to do to get your requirements
straight, Benjamin.

You said
z1 = hours week 1 40
z2 = hours week 2 40
z3 = hours week 1 + week 2 80

but perhaps you intended
40 and 80, not 40 and 80 ?


Also your
if x1 40 and x1 + x2 80 then y2 = z3 * B

seems liable to give a pretty poor return. Look at the example of 41 hours
in each of the 2 periods, and it looks as if you're only going to pay for 2
hours in the second period and not for the remaining 39 hours. I don't
think I'm going to work for your company. :-(

If you haven't tried out your formulae by hand with some simple examples and
checked the logic, then you can't expect Excel to get it right. Come back
to us when you've decided what you need. It's certainly not too complicated
for Excel, and neither C nor Visual basic will give the right answser if you
ask it the wrong question.
--
David Biddulph

"spezticle" wrote in message
...
I fixed a few of my variable declarations and math, etc. this should be
proper now:


if x1 40 then y1 = x1 * A
if x1 40 then y1 = (40 * A) + (z1* B)
if x2 40 then y2 = x * A
if x2 40 then y2 = (40 * A) + (z2 * B)
if x1 40 and x1 + x2 80 then y2 = z3 * B
y3 = y1+y2

variables:
A = base pay rate
B = overtime pay rate
x1 = hours worked in pay period 1
x2 = hours worked in pay period 2
y1 = money earned period 1
y2 = money earned period 2
y3 = total money earned
z1 = hours week 1 40
z2 = hours week 2 40
z3 = hours week 1 + week 2 80

if x1 40 then y = x * A
if x1 40 then y = (40 * A) + (z * B)
if x2 40 then y = x * A
if x2 40 then y = (40 * A) + (z * B)
if x1 40 and x2 40 then y = z2 * B
if x1 40 and x1 + x2 80 then y = z3 * B

Basically a formula that will calculate how much I've earned if I've
worked
40 hours in pay period 1 OR pay period 2.
If i hit overtime in week 1 (for example 70 hours), and only worked 20
hours
in pay period 2, then anything above 20 hours in week 2 is also overtime
rate.

i see that it's only necessary to calculate that once, instead of twice.
only checking for week 1's overtime, because if i haven't hit overtime in
week 1 the only way I'll get 80 is getting more than 40 hours in week
2.

If this is too complicated for excel, I'll port my stuff and do it in
either
C or Visual basic...

Thanks for any help or insight


~Benjamin



 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 04:58 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.