I work better if I see sample outcomes...
Can you add a couple more sheets with different sample inputs (esp. the ones you have noted above) and then fill in columns C and D manually with what you expect to see....
Microsoft MVP - Excel
Where there is a will there are many ways. Pick One!
Please read the Forum Rules
If you are happy with the results, please add to the contributor's reputation by clicking the reputation icon (star icon) below
Please also mark the thread as Solved once it is solved. Check the FAQ's to see how.
Preferred Charities: Lupus Canada and Sick Kids Foundation.
Feel Free to Donate if you want to, for the assistance you received today.
Does the attached work for your tests- let me know either way.
Excel 2003 user (and starting to warm to Excel 2007)
This is the formula I came up with
=IF(OR($C4<>"",(ROWS($C$2:$C4)<=$G$1*2)),($C4/($G$1*2))+D3,0),IF(OR($C4=" ",(ROWS($C$2:C$4)<=$G$1*2)),D3,0)
but it is giving a value error. can anyone see what I'm doing wrong-the logic of this seems to make sense to me.
Thanks
Ryan
I managed to get it to work, but it doesn't return the values I want.
The problem is that the count has to be done not from the beginning, but from each time there is a value, so if there is a value in c1, the count of the half life * 2 must start from c1 for that array, then if the value is in c5, another count must start from c5.
I can't seem to think of anything, but there must be a way
Starting at D2, Try replacing occurances of $C$2 with:
INDEX($C$2:C2,MATCH(9.9999999E+307,$C$2:C2))
this will index the cell that contains the last occurance of a number from C2 to your current row.. making it the start point...
Microsoft MVP - Excel
Where there is a will there are many ways. Pick One!
Please read the Forum Rules
If you are happy with the results, please add to the contributor's reputation by clicking the reputation icon (star icon) below
Please also mark the thread as Solved once it is solved. Check the FAQ's to see how.
Preferred Charities: Lupus Canada and Sick Kids Foundation.
Feel Free to Donate if you want to, for the assistance you received today.
Based on that, this is the formula that I have come up with, but am getting an error message
=IF(AND($C3<>" ";(ROWS((INDEX($C$2:$C3;MATCH(9.9999999E+307;$C$2:$C3)):$C3)<=$G$1*2));($C3/($G$1*2)+D2));IF(AND($C3=" ";(ROWS((INDEX($C$2:$C3;MATCH(9.9999999E+307;$C$2:$C3)):$C3<=$G$1*2))));D2;0))
Hows does the index match that you have suggested index it from the last occurance, for interests sake?
Thanks
Ryan
INDEX($C$2:C2,MATCH(9.9999999E+307,$C$2:C2))
Match(9.9999999e+307,$C$2:C2) find the position of the last numeric entry in range $C$2:C2 by looking for 9.999999e+307 (which is largest Excel Number)... since it kind find that particular number it returns position of last entry that is smaller than it.. which is, in your case, the dosage in column C.... The Index() part uses that match position to return the actual cell reference containing it.. and so forms a range start and along with your defined range end can be used to reference a dynamic range....
BTW: Have you looked at deadlyduck's last offering (Post # 18)
Last edited by NBVC; 06-23-2009 at 04:20 PM.
Microsoft MVP - Excel
Where there is a will there are many ways. Pick One!
Please read the Forum Rules
If you are happy with the results, please add to the contributor's reputation by clicking the reputation icon (star icon) below
Please also mark the thread as Solved once it is solved. Check the FAQ's to see how.
Preferred Charities: Lupus Canada and Sick Kids Foundation.
Feel Free to Donate if you want to, for the assistance you received today.
THanks-I was wondering about the 9.999999e+307.
I've had a look and his post and have been chatting to him by PM, but are still struggling to come up with something that returns the correct values for all ranges.
Does my formula look ok or is there something obvious you can see why it's giving me an error message? It's giving me a parameter error.
I would post the spreadsheet, but have just got a new pc and am having problems with the microsoft key, so am using OpenOffice at the moment until I get it sorted.
I am off right now... but as far as I can see D2 has to have a value in it... for the addition to work... unless you use SUM() instead so it will ignore blanks...
Microsoft MVP - Excel
Where there is a will there are many ways. Pick One!
Please read the Forum Rules
If you are happy with the results, please add to the contributor's reputation by clicking the reputation icon (star icon) below
Please also mark the thread as Solved once it is solved. Check the FAQ's to see how.
Preferred Charities: Lupus Canada and Sick Kids Foundation.
Feel Free to Donate if you want to, for the assistance you received today.
I think I got it working!
See attached and let me know how it goes.
Excel 2003 user (and starting to warm to Excel 2007)
Good job, deadlyduck...
Just one suggestion... that you change the INDIRECT() fuction to find End Range cell address to INDEX()..... the INDIRECT() function is volatile and will re-calculate everytime you change anything in the workbook (even if not related to the formula) and even when you close workbook...
Formula in D2:
copied down... would give same results and not be volatile.=IF(B2>(2*$G$1),(SUM($C$2:C2)-SUM($C$2:INDEX($C$2:C2,ROW()-(2*$G$1)-1)))/(2*$G$1),SUM($C$2:C2)/(2*$G$1))
Microsoft MVP - Excel
Where there is a will there are many ways. Pick One!
Please read the Forum Rules
If you are happy with the results, please add to the contributor's reputation by clicking the reputation icon (star icon) below
Please also mark the thread as Solved once it is solved. Check the FAQ's to see how.
Preferred Charities: Lupus Canada and Sick Kids Foundation.
Feel Free to Donate if you want to, for the assistance you received today.
Hi NBVC- thanks for the tip re INDEX function.
I'm keen to get familiar with the index and index/match functions as they seem very useful for working with lists so will play with your modification.
I'm finding this site to be a fabulous resource for extending your Excel skills. It's nice to be able to give a little in return for the volume of tips/ guidance/ suggestions received back :-)
Excel 2003 user (and starting to warm to Excel 2007)
Thanks Brian-really appreciate all your help and both formulas do the trick-thanks NBVC.
I am going through it to understand what you are doing.
I have also just started using index match instead of vlookups and it seems a lot more versatile.
Thanks again all-much appreciated
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks