Aug 21 2017
02:00 PM
- last edited on
Jul 25 2018
09:56 AM
by
TechCommunityAP
Aug 21 2017
02:00 PM
- last edited on
Jul 25 2018
09:56 AM
by
TechCommunityAP
Hi Not sure what I've done but the only thing I've changed is the number of cells/ lines in the range from: =MAX(IF('Draw Results'!C1:C2248={3,4},'Draw Results'!D1:D2248))
to =MAX(IF('Draw Results'!C1:C2283={3,4},'Draw Results'!D1:D2283))
What it does is to show the last draw number entered in in column A where either 3 or 4 are entered in column D. The answer should be 2257 but it comes out as "0"
The second formula was changed
from: =MAX(IF('Draw Results'!C1:C2248={3,4},'Draw Results'!A1:A2248))
to =MAX(IF('Draw Results'!C1:C2283={3,4},'Draw Results'!A1:A2283))
What it should show is the date of the last draw entered in column A, where 3 or 4 is entered in column D. the answer should be 08/07/17 but comes out as 00/01/00.
Each formula is entered with ctrl+shift+ebter
Tried other excell help sites but got no help so please don't let me down
Aug 21 2017 03:15 PM
Hi Steven
Please re-check your updated formula are array ones
Aug 22 2017 01:49 AM
Hi Steven,
That's just an assumptions - your formula always returns zero, other words always returns FALSE, thus most probably doesn't work on entire range, that could means it's entered not as array formula.
Stay on the cell with your formula, shift into cell edit mode (F2 or double-click) and Ctrl+Shift+Enter then. {} shall appear.
To check how it works in ribbon Formulas -> Evaluate formula and follow the steps. But better to shorten your range for such tests.
Aug 22 2017 02:28 PM
Hello again. ive tried that and even shortened the range but it is still the same. Not sure what iam looking at when i do the evaluate thing.
Aug 22 2017 03:05 PM
Steven,
Do i understood correctly the only thing you did is change 2248 on 2283 in your formulas? And perhaps that's misprint in your description
to =MAX(IF('Draw Results'!C1:C2283={3,4},'Draw Results'!D1:D2283))
What it does is to show the last draw number entered in in column A where either 3 or 4 are entered in column D. The answer should be 2257 but it comes out as "0"
And i guess it's misprint in your description - 3 or 4 are entered in column C, not D. Number is returned from column D, not A. At least that's what your formula do - returns max in D for the rows where 3 or 4 in C.
Anyway, zero means formula doesn't find 3 or 4. Another reason could be cells in C are formatted as text and you have text "3" instead of number 3. You may check, for example, by ISNUMBER on the cell with this value.
To shorten the range for the test you may take C2256:C2258 (instead of C1:C2283), same for other ranges. Evaluate shall show something like
MAX(IF({FALSE,FALSE;TRUE,FALSE;FALSE,FALSE},D2258:D2258))
on second step. If in C2257 is number 3.
Aug 23 2017 03:49 PM
Hi Sergei.
Sorry i took so long to reply but ive been working hard. Thank you for your help with that formula but i have manged to work around the problem using a different set of formulas.
How ever i do have a problem with another formula on the sheet (note for some reason formulas with the same long cell ranges all stopped working when they reached 2248)
First ill explain what the formula does. The sheet is a Lotto program that uses information on the sheet to predict a date when the number in question is likly to come out again, based on when it was last drawn and the average number of days between draws for each number (dont laugh i know this is impossible to be 100% correct due to random chance).
(note; the number of rows has been reduced)
The formula in cell E317 is =INDEX($B1:$B309,MAX(IF((E1:E309>0),ROW(E1:E309),0)))+ROUND(E316,0)
Colum B holds the date of each draw.
Colum E represents the number 1. (numbers 1- 59 are in coloums E to BK) Each time number a is drawn then and numer 1 (when drawn as a main ball) or number 2 (when drawn as a bonus ball) is entered in the relevent colum next to the date it was drawn.
Cell E316 contains the day average (this is the day total from the the first to the last draw entered devided by the number of times drawn).
The problem is that when i use ctrl+shift+enter the formula return #VALUE in cell 317.
Any questuion please let me know.
Steven
Aug 24 2017 05:52 AM
Hi Steven,
In general your formula shall work. You may use equivalent which doesn't require array formula
=INDEX($B1:$B309,MATCH(MAX(E1:E309),E1:E309,0)))+ROUND(E316,0)
Aug 24 2017 08:14 AM
hI Sergei. i have imput the formula you sent. If you have a look at the attachment youll see what it coming up with. Thank you for your help.
Aug 24 2017 10:01 AM
Sorry, it was misprint
=INDEX($B1:$B309,MATCH(MAX(E1:E309),E1:E309,0))+ROUND(E316,0)
Aug 24 2017 03:35 PM
Aug 25 2017 11:06 AM
Steven,
Could you give the sample file with the data up to 10 records with the comment on it what shall be received?
Aug 27 2017 01:14 AM
Hi Sergei. Ive attached a copy of the sheet have a look please the formula you sent is on line 317.
Aug 27 2017 06:02 AM
Hi Steven,
Thank you, it's clear now. First comment - why do you use outdated format for Excel file (.xls)? I attached both, try one with .xlsx.
Second - your initial array formula
=INDEX($B1:$B309,MAX(IF((E1:E309>0),ROW(E1:E309),0)))+ROUND(E316,0)
works fine. Most probably you didn't enter it as an array formula.
To do that
1) Double click on cell with your formula
2) Press and hold CTRL and SHIFT simultaneously
3) Press ENTER
4) Release all keys
Curly brackets shall appears at the beginning and end of formula.
Your formula could be bit simplified
=MAX((E1:E309>0)*$B1:$B309)+ROUND(E316,0)
above is also array formula. Here you find maximum value in B1:B309 filter it by column E (all rows with any positive numbers).
Not to use array formulas another couple of variants could be
=MAX(INDEX((E1:E309>0)*$B1:$B309,))+ROUND(E316,0)
that's similar to previous one, however no array formula is required. INDEX returns an array with all dates in B1:B309 for which there is any positive number in next column, otherwise zero. We take maximum date in that array.
One more variant for not array formula
=LOOKUP(2,1/(E1:E309>0),$B1:$B309)+ROUND(E316,0)
Second parameter returns a vector with 1 or errors as results of dividing the 1 on TRUE and FALSE. We lookup 2 in this vector (actually any number greater than 1), since no such number in the vector, the position of latest 1 will be returned. Finally the date in B1:B309 at this position.
In attached files all above formulas are sequentially in E325, E326, E327, E328
Aug 28 2017 02:46 AM
Thank you again. i will try them out when i can.
Aug 28 2017 02:53 AM
Aug 28 2017 03:50 AM
Hi Steven,
Yes, sure - if your Excel version is 2007 or any later
Aug 31 2017 03:41 AM
Hi Sergei.
Thank you for your help on this. I am not sure what or if iam doing anything wrong but the original formula still doesn't work even though i've shortened the range and i am using ctrl+shift+enter. The second formula works ok but when i add another 1 or 2 in the colloum it stops working and shows #VALUE in the cell. This is the same with the other formulas.
Iam going out on a limb and iam sending you the full sheet, almost as i use it, as i am beginning to think that the shhet may be iver complicated and this might be the problem. Let me know what you think.
Aug 31 2017 05:51 AM
Hi Steven,
Strange. I have no problems with your file, no #VALUE in the cells. Both for array formulas (row 322) and lookup formula (row 317).
Could you please indicate in which exactly cell you add 1 (e.g. F248) and in which cell #VALUE appears (e.g. F317) after that.
And on which version of Excel you are?
Sep 03 2017 03:00 PM
Hi Sergei. #VALUE appears in the cell E317. not sure what is going on, weather it me or some problem with the program iam not sure.