I'll try and explain this as best as I can, it's a strange one so please bear with me. For the record I am using Excel 2010 (although I have seen this a couple of times before on previous versions also), and the model is fairly large (~30MB) containing around 20 sheets, and around 15 modules (although very well optimised and calculation times are non-existent).
I don't have the exact figures to hand, but for example in cells A1:A3 I have the values 823.50, -350.00, and -497.50 respectively. In cell B2, I am simply adding the values in column A by using =A1+A2+A3.
One would expect the result to show -24.00, but in fact shows something along the lines of 548.50.
Calculations are set to automatic
Application.ScreenUpdating = True
Formatting is set to General
Manually stepping through the 'evaluate formula' dialog returns the correct result right up until the last step, which then gives the incorrect result
This can be fixed manually by entering into the cell, and coming back out again (effectively F2 then enter), after which the cell shows the correct result.
It is definitely not just a visual error, as the incorrect result gets fed into other calculations. I know the quick fix is to F2 and enter each cell, but it was only by chance this morning that the error was spotted, and could have easily resulted in a very large, false cost.
Edit
Forgot to mention that this affected ~50 cells this morning, not just the one
Has anyone had any experience with this issue? Is it a known issue, and therefore a known solution?
Any help would be greatly appreciated.
The only things I've noticed was to use '=Sum' instead of just '=', but have never been sure it actually functions differently.
also, from MS: If an argument is a cell range or reference, only numeric values in the reference or range can be added
Related
I came across an interesting issue today that I can't seem to find a solution on the internet for. I have a formula that looks like this:
=IFERROR(INDEX(Table,MATCH(1,(Table,Col1=A1)*(Col2= B1),0),3),"NOPE")
The formula works correctly, but in some cases where the return value is 0 (i.e. the value is blank in column 3 that is being returned, but there are appropriate matches in Col1 and Col2) something wonky happens. When I execute the formula the 0 value shows briefly and then slowly fades to blank. When you copy the cell and try to paste the value plain text it is also blank. What concerns me is this only happens in some cases, other cells have a 0 value returned and it remains in the cell.
My best guess is it has something to do with the cell formatting (even though it is set to general for all cells), but I'm at a loss. This doesn't really impact the performance of the spreadsheet, but it looks sloppy having some cells with 0's and others that are blank even though they indicate the same result.
Any help would be greatly appreciated.
Edit 2: Changed the values from numeric to text 1=A, 2=B, etc. and this did not solve the problem, there are still some stubborn cells with the issue described above.
EDIT 3: Haven't had any luck fixing the issue. My work around for the time being is IF(original formula)= 0,"", (original formula)) for uniformity so empty results are returned as a blank and not a 0 or blank. Strangely, I tried IF(original formula)= 0,0, (original formula)) and the zero still faded in some cells.
I have had this happen before. I suspect you might be using Office 365, and a recent update threw Excel on this one. What I got to work is to create a new worksheet, format the column in question from the beginning as a number (or currency), and then enter the formula into the cell (do not copy from the other worksheet). Paste this formula down and it should be a consistent "0" or "-".
I also have found that it helps to save the file as a ".xlsb" for larger files. This tends to add stability in all areas.
We have a large spreadsheet that we use to calculate performance for race car drivers. It has been stable for quite some time. Today, I opened it and found that one of the tables was not calculating correctly. I tried recalculating the sheet (it is set to manual calc), and tried rebuilding the tree (ctl+alt+shift+f9) to no avail. Other formulas referencing the same named range function correctly as do other formulas using average if.
Variables
list_of_names = A list of first and last names in a single text string imported from a CSV file
local_name = A name (100% guaranteed to be included in list_of_names) to calculate an average of a drivers performance in a given sector of the track
sector_percent = A percentage of a driver's trips through a particular sector that fall into a pre-determined range
sector_count = The number of trips the driver makes though a sector
My original formula returns a #Value error. This is the original formula (the actual formula contains an IFERROR statement, but I have removed it here for clarity. The #VALUE error happens either way).
{=AVERAGEIFS(sector_percent,list_of_names,local_name,sector_percent,">0",sector_count,">"&min_number_sectors)}
After some experimenting, I have found that the following formula successfully reports the correct answer:
{=AVERAGE(IF(list_of_names=local_name,IF(sector_percent>0,IF(sector_count>min_number_sectors,sector_percent,0))))}
If you strip the list_of_names and local_name variables from the AVERAGEIFS formula, it behaves correctly (given the data that meets the criteria). This led me to believe that the list of names and the local name were not of a matching data type. However the #VALUE error still occurs if both are set to general or text. TYPE(list_of_names) or TYPE(local_name) both return 2 presently. {TYPE(list_of_names)} returns 64 as it should.
The sheet is able to perform the list_of_names to local_name function correctly in other places in the workbook and in other areas of the same sheet.
I have tried:
-Replacing all named ranges with the actual cells referred to by the name in the formula
-Referring to different local_names in the list_of_names
-INDEX(list_of_names,ROW(A1)) correctly reports the list of names when you drag it out.
-Various orders of criteria, using other criteria.
-A number of other heat of the moment changes that I can't currently recall
Essentially, the list_of_names to local_name comparison fails in this area of the sheet every time using AVERAGEIFS where AVERAGE(IF( does not.
To me the formula is correct either way, but the sudden failure in this one part of the sheet is odd.
This is my first post here and I would appreciate any help that is available. Hopefully, I have provided enough information to lead to an answer. If not, let me know and I will fill in any gaps.
Both #barryhoudini and #Jeeped are correct. I had failed to drag the information in one of the source tables far enough creating a size mismatch in the range sizes. I can't figure out how to accept that as an answer other than to answer it myself, which would not apply the proper credit where it is certainly due. I thank you both for the assistance, it was concise and excellent. I still cannot understand why one formula works and one does not. Is it possible that the AVERAGE(If has a less restrictive set of constraints when it comes to range size?
I have a somewhat large nested if then statement in a cell, which turns into #VALUE! after I save, close, and reopen the file. The if then statement is
=IF(H2="$0.10/$0.25",O2/0.25,IF(H2="$0.25/$0.50",O2/0.5,IF(H2="$0.50/$1",O2/1,IF(H2="$1/$1",O2/1,IF(H2="$1/$2",O2/2,IF(H2="$1/$3",O2/3,IF(H2="$2/$3",O2/3,IF(H2="$2/$5",O2/5,IF(H2="$3/$5",O2/5,IF(H2="$5/$5",O2/5,IF(H2="$5/$10",O2/10,IF(H2="$10/$20",O2/20,IF(H2="$10/$25",O2/25,IF(H2="$20/$40",O2/40,IF(H2="$25/$50",O2/50)))))))))))))))
To give some context, the value of H2 is different stakes in a poker game. For example, $1/$2 means that for every hand one person puts in $1 and the adjacent players puts in $2 before seeing their cards. The values $1/$2 are called the small and big blinds, respectively. A common way to track results is to convert all monetary values, with units $, into the units of big blind.
The statement gives no errors and outputs the correct value, in units of big blind, depending on the stakes, but after closing and reopening the cells containing the formula display #VALUE!.
I googled what the problem is and read that you can have a maximum of 64 nested functions, which is okay since I believe I only have 16. I also thought that there might be problem with cell formatting. For instance cell O2 has cell format currency, whereas the cell containing this nested if then statement has cell format general. I tested this idea on a separate sheet (same file) and it didn't cause the same error.
The version I have is 2011 running on a macbook.
Thanks for any help!
I couldn't reproduce this problem in windows excel 2010. My suggestion is to simplify the formula and try if the problem still occurs. You can do it this way:
=O2/MID(H2,FIND("$",H2,2)+1,LEN(H2))
Find the second "$", extract the text after it (big blind) and divide O2 by it.
Afternoon all :)
This is kind of a little difficult to explain but ill happily clarify where ever it is needed. Thank you for taking the time to read this post ^^ Here goes..
I am currently creating a spreadsheet that is been extracted from the database whereby I am tasked to concatenate data from 2 adjacent cells. I change the database on a frequent basis adding or removing data wherever necessary so the range of data is always different. To concatenate the two cells I use the following formula:
e.g: =IF(ISBLANK(B8&H8),"",B8&H8)
This formula works out great when im dealing with increasing amounts of data as I can simply drag the formula down as far as i want and i know that it will pick up the formula whenever I refresh the database without the need of seeing value errors when the formula ends up referring to a blank cell. The snag here (and my query as well) is if I have less data then before the formula within the last set of cells looks something like this:
e.g: =IF(ISBLANK(#REF!&#REF!),"",#REF!&#REF!)
I have dealt with #REF before in other spreadsheets whereby I simply used a ISERROR in the statement but I dont know if there is a possible way of including this within my formula. I need the ISBLANK there so I have more control and dont have to drag the formula as often.
If there is a better way around this or a way to amend the current formula Id appreciate the help :)
The only way you are going to get something like this:
=IF(ISBLANK(#REF!&#REF!),"",#REF!&#REF!)
in the formula bar is if you(or the system you are using) are somehow deleting the cells that were originally referenced. This should be avoidable. You can clear the cells referenced instead of deleting them completely - then you won't get this error - and your formulas will remain intact. Now you can certainly use the formulas provided in the comments to hide the errors - but the root of your problem seems to me to be that the errors are occuring in the first place. Good Luck.
A client of mine has a major application written and running in excel 2003 ( I know, and they know, that it is a mistake, and they are waiting for it to be properly incorporated into their SAP application. They have been waiting for many years. ). Most of the time it works fine, however this week they had a problem, and the data was returning #value entries.
As I looking into this, I identified that a DSUM function was returning #value, which was then being spread across other places ( did I mention that there is no data verification in the VBA code? ) When I looked at the function, which is summing a column in a separate sheet, with a conditional, it identified a number of problems in the data, but even when I fixed them, and the Function analysis indicated no errors, it still returned #value.
I would post some of the code, but there is a 4700 row sheet involved, which is rather inpractical. Can anyone suggest what I might be able to do to progress this? Why is the DSUM returning #value problems, when there is no indication of any errors in the source sheet? I have searched through the column, and all of the values are valid numbers.
Sorry to be a little vague, but if anyone can give me suggestions as to how to progress, it would be appreciated. Excel and VBA are not my real specialities.
The only way I could get a #value was 3 fold:
If the criteria (the 3rd parameter) contained less that 2 cells.
If the data had a #VALUE in it that was propagated through.
Or if the first row of the database/table contained a value instead of text (even a number formatted as text fails in my example).
Do you still have the offending version of the spreadsheet? Might be worth ensuring the first row of data for errors particularly cells that look like text but have values in them (i.e., cell formatting can be used to display text even if there is a value in the cell, or if the first row is also calculated).
Hope this helps, and do let us know how you get on.
Dave