Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Far too many "IF"s for my own good

Here's a challenge for anyone who thinks they're good enough. It's
given me an extreme headache. I have two columns of time data (Start
and End). From this I needed to calculate first time difference as a
decimal - done - no problem. Now what I need to do is split that
decimal.

I need to set it up so that the time is split into Basic and Premium
time. If the hours are after 7pm and before 7am they are "premium"
hours - if before "7pm" they are basic. I managed to get it so that it
would come back with the right hours with this formula:

=IF(HOUR($D54)=19,(((HOUR($D54)-19)+(MINUTE($D54)/60))*(E54+F54)),IF(HOUR($D54)<7,(((HOUR($D54)+5)+( MINUTE($D54)/60))*(E54+F54)),0))

Column D being the end time (column C would the the start time). But
this only works if the start time if before 7pm. If both the start and
end time are in the "Premium" time then it doesn't. And then if the
end time is after midnight it works ok (again presuming that start time
is before 7pm) but if the end time IS midnight then I of course get a
huge negative premium time. I managed to get some of the way to fixing
this but only with about 15 "IF"s strung together. There MUST be an
easier way.

PLEASE HELP!!!!!!

I'm only 23 and this has already given me grey hairs.


---
Message posted from http://www.ExcelForum.com/

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Far too many "IF"s for my own good

This was also multiposted to the probably more appropriate group
Microsoft.Public.Excel.Worksheet.functions so any potential solution
provider might want to check there as well before investing a lot of time in
developing an answer.

--
Regards,
Tom Ogilvy

"Dave WL" wrote in message
...
Here's a challenge for anyone who thinks they're good enough. It's
given me an extreme headache. I have two columns of time data (Start
and End). From this I needed to calculate first time difference as a
decimal - done - no problem. Now what I need to do is split that
decimal.

I need to set it up so that the time is split into Basic and Premium
time. If the hours are after 7pm and before 7am they are "premium"
hours - if before "7pm" they are basic. I managed to get it so that it
would come back with the right hours with this formula:


=IF(HOUR($D54)=19,(((HOUR($D54)-19)+(MINUTE($D54)/60))*(E54+F54)),IF(HOUR($
D54)<7,(((HOUR($D54)+5)+(MINUTE($D54)/60))*(E54+F54)),0))

Column D being the end time (column C would the the start time). But
this only works if the start time if before 7pm. If both the start and
end time are in the "Premium" time then it doesn't. And then if the
end time is after midnight it works ok (again presuming that start time
is before 7pm) but if the end time IS midnight then I of course get a
huge negative premium time. I managed to get some of the way to fixing
this but only with about 15 "IF"s strung together. There MUST be an
easier way.

PLEASE HELP!!!!!!

I'm only 23 and this has already given me grey hairs.


---
Message posted from http://www.ExcelForum.com/



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 391
Default Far too many "IF"s for my own good

of course there's an easier way, but first, your existing
formula could be re-written as follows

=( (HOUR($D55)=19) * ( HOUR($D55)-19+MINUTE($D55)/60 )
+ (HOUR($D55)<7) * ( HOUR($D55)+5+MINUTE($D55)/60 ) )
* (E55+F55)


Now then. Consider using a UDF - User Defined Function.
This gives a ot of flexibility
the following code driopped into a standard module will
give you the idea...but careful..I haven't debugged it !!

Function MyTime(sTarget As Double, Dval As Double, Eval
As Double) As Double

Dim hr As Double
Dim mn As Double

hr = Hour(sTarget)
mn = Minute(sTarget) / 60

Select Case hr
Case Is = 19
hr = hr - 19

Case Is < 7
hr = hr + 5
Case Else
hr = 0
mn = 0
End Select

MyTime = (hr + mn) + (Dval + Eval)

End Function


Patrick Molloy
Microsoft Excel MVP





-----Original Message-----
Here's a challenge for anyone who thinks they're good

enough. It's
given me an extreme headache. I have two columns of

time data (Start
and End). From this I needed to calculate first time

difference as a
decimal - done - no problem. Now what I need to do is

split that
decimal.

I need to set it up so that the time is split into Basic

and Premium
time. If the hours are after 7pm and before 7am they

are "premium"
hours - if before "7pm" they are basic. I managed to

get it so that it
would come back with the right hours with this formula:

=IF(HOUR($D54)=19,(((HOUR($D54)-19)+(MINUTE($D54)/60))*

(E54+F54)),IF(HOUR($D54)<7,(((HOUR($D54)+5)+(MINUT E
($D54)/60))*(E54+F54)),0))

Column D being the end time (column C would the the

start time). But
this only works if the start time if before 7pm. If

both the start and
end time are in the "Premium" time then it doesn't. And

then if the
end time is after midnight it works ok (again presuming

that start time
is before 7pm) but if the end time IS midnight then I of

course get a
huge negative premium time. I managed to get some of

the way to fixing
this but only with about 15 "IF"s strung together.

There MUST be an
easier way.

PLEASE HELP!!!!!!

I'm only 23 and this has already given me grey hairs.


---
Message posted from http://www.ExcelForum.com/

.

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,393
Default Far too many "IF"s for my own good

Problem is not stated too clearly but I would try using an additional column
to get values of 1 or 2 ( or P and B) depending on the time factors. Then
use this column to do the calculation. Can you set the problem out in a
table
StartTime EndTime Status
<7 19 P
7 <9 B



Happy New Year

--
Bernard Liengme
www.stfx.ca/people/bliengme
remove CAPS in e-mail address
"Dave WL" wrote in message
...
Here's a challenge for anyone who thinks they're good enough. It's
given me an extreme headache. I have two columns of time data (Start
and End). From this I needed to calculate first time difference as a
decimal - done - no problem. Now what I need to do is split that
decimal.

I need to set it up so that the time is split into Basic and Premium
time. If the hours are after 7pm and before 7am they are "premium"
hours - if before "7pm" they are basic. I managed to get it so that it
would come back with the right hours with this formula:


=IF(HOUR($D54)=19,(((HOUR($D54)-19)+(MINUTE($D54)/60))*(E54+F54)),IF(HOUR($
D54)<7,(((HOUR($D54)+5)+(MINUTE($D54)/60))*(E54+F54)),0))

Column D being the end time (column C would the the start time). But
this only works if the start time if before 7pm. If both the start and
end time are in the "Premium" time then it doesn't. And then if the
end time is after midnight it works ok (again presuming that start time
is before 7pm) but if the end time IS midnight then I of course get a
huge negative premium time. I managed to get some of the way to fixing
this but only with about 15 "IF"s strung together. There MUST be an
easier way.

PLEASE HELP!!!!!!

I'm only 23 and this has already given me grey hairs.


---
Message posted from http://www.ExcelForum.com/



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
I need to display "Good Morning" or "Good Evening" based on NOW() Wesley Excel Worksheet Functions 7 April 24th 23 11:45 AM
Excel - Golf - how to display "-2" as "2 Under" or "4"as "+4" or "4 Over" in a calculation cell Steve Kay Excel Discussion (Misc queries) 2 August 8th 08 01:54 AM
Any good resource to learn Excel Web Query ".iqy" Files? Eric Excel Discussion (Misc queries) 0 March 2nd 08 03:29 PM
Count occurences of "1"/"0" (or"TRUE"/"FALSE") in a row w. conditions in the next BCB New Users to Excel 7 May 13th 06 10:02 PM
create links to check boxes marked "good" fair"and "bad" pjb Excel Worksheet Functions 3 April 20th 06 02:17 AM


All times are GMT +1. The time now is 04:08 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"