You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openoffice.apache.org by ouch <ou...@yahoo.com.INVALID> on 2017/04/10 22:08:15 UTC

Possible Formula Bug in Calc? (IsError and Find)

I have an array formula that is returning an error of #VALUE when it shouldn't.The formula is below.
{=ISERROR(INDEX($'Sales 4-10-2017'.$A$1:$A$1000;SMALL(IF(ISERROR(FIND("Discount";$'Sales 4-10-2017'.$A$1:$A$1000))=0;ROW($'Sales 4-10-2017'.$A$1:$A$1000);"");ROW(A200))))}

Digging into it, it seems Find is culprit of the #Value error. However that initial iserror is not catching the error and the error propagates throughout the formula even overriding the error #504 on index caused by the Find function resulting in an invalid row being returned due to the error.
I put that final iserror around the index function just to show that something is not right. The formula still returns #VALUE with that on there when it obviously should be returning either true or false regardless of what the rest of the formula is doing.
What is strange is if you move the cursor through the formula in the function wizard it gets the expected results of true or false. But on the actual spreadsheet you get that #VALUE error.
Oh, I just tried switching out Find for Search and the same thing occurs. So maybe it's a bug in iserror as it's the only constant?

Re: Possible Formula Bug in Calc? (IsError and Find)

Posted by Regina Henschel <rb...@t-online.de>.
Hi,

The purpose of FIND is to get the position of a substring in a longer 
string. What do you want to achieve? The use of FIND in an array 
function looks strange.

Kind regards
Regina

ouch schrieb:
> I have an array formula that is returning an error of #VALUE when it shouldn't.The formula is below.
> {=ISERROR(INDEX($'Sales 4-10-2017'.$A$1:$A$1000;SMALL(IF(ISERROR(FIND("Discount";$'Sales 4-10-2017'.$A$1:$A$1000))=0;ROW($'Sales 4-10-2017'.$A$1:$A$1000);"");ROW(A200))))}
>
> Digging into it, it seems Find is culprit of the #Value error. However that initial iserror is not catching the error and the error propagates throughout the formula even overriding the error #504 on index caused by the Find function resulting in an invalid row being returned due to the error.
> I put that final iserror around the index function just to show that something is not right. The formula still returns #VALUE with that on there when it obviously should be returning either true or false regardless of what the rest of the formula is doing.
> What is strange is if you move the cursor through the formula in the function wizard it gets the expected results of true or false. But on the actual spreadsheet you get that #VALUE error.
> Oh, I just tried switching out Find for Search and the same thing occurs. So maybe it's a bug in iserror as it's the only constant?
>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@openoffice.apache.org
For additional commands, e-mail: dev-help@openoffice.apache.org


Re: Possible Formula Bug in Calc? (IsError and Find)

Posted by ouch <ou...@yahoo.com.INVALID>.
Here is an example spreadsheet showing off the bug. After experimenting a bit today I can conclude there doesn't seem to be a single function that can capture the error from Find() when used in an array like this.
Using the function wizard and moving the cursor through the formula on the lower center table where an error is seems to be the most telling that something is wrong. It shows the iserror() next to index() is returning true yet the if statement it is in is running the false formula.
https://sites.google.com/site/ouchsdownloads/home/downloads/Bug%20Proof.ods

I've been using OpenOffice for years so I feel I have a pretty good handle on how it works behind the scenes. So unless I'm overlooking something it really seems like a bug to me.
 

    On Tuesday, April 11, 2017 1:58 PM, Howard Cary Morris <ho...@hotmail.com> wrote:
 

 #yiv3704922496 #yiv3704922496 -- _filtered #yiv3704922496 {panose-1:2 4 5 3 5 4 6 3 2 4;} _filtered #yiv3704922496 {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}#yiv3704922496 #yiv3704922496 p.yiv3704922496MsoNormal, #yiv3704922496 li.yiv3704922496MsoNormal, #yiv3704922496 div.yiv3704922496MsoNormal {margin:0in;margin-bottom:.0001pt;font-size:11.0pt;}#yiv3704922496 a:link, #yiv3704922496 span.yiv3704922496MsoHyperlink {color:blue;text-decoration:underline;}#yiv3704922496 a:visited, #yiv3704922496 span.yiv3704922496MsoHyperlinkFollowed {color:#954F72;text-decoration:underline;}#yiv3704922496 .yiv3704922496MsoChpDefault {} _filtered #yiv3704922496 {margin:1.0in 1.0in 1.0in 1.0in;}#yiv3704922496 div.yiv3704922496WordSection1 {}#yiv3704922496 I am not sure, but if you expect Find to return a number, try N(FIND(…)) instead – it converts value into a number.   Howard   From: ouch
Sent: Tuesday, April 11, 2017 2:31 AM
To: dev@openoffice.apache.org
Subject: Possible Formula Bug in Calc? (IsError and Find)   I have an array formula that is returning an error of #VALUE when it shouldn't.The formula is below.
{=ISERROR(INDEX($'Sales 4-10-2017'.$A$1:$A$1000;SMALL(IF(ISERROR(FIND("Discount";$'Sales 4-10-2017'.$A$1:$A$1000))=0;ROW($'Sales 4-10-2017'.$A$1:$A$1000);"");ROW(A200))))}

Digging into it, it seems Find is culprit of the #Value error. However that initial iserror is not catching the error and the error propagates throughout the formula even overriding the error #504 on index caused by the Find function resulting in an invalid row being returned due to the error.
I put that final iserror around the index function just to show that something is not right. The formula still returns #VALUE with that on there when it obviously should be returning either true or false regardless of what the rest of the formula is doing.
What is strange is if you move the cursor through the formula in the function wizard it gets the expected results of true or false. But on the actual spreadsheet you get that #VALUE error.
Oh, I just tried switching out Find for Search and the same thing occurs. So maybe it's a bug in iserror as it's the only constant?    

   

RE: Possible Formula Bug in Calc? (IsError and Find)

Posted by Howard Cary Morris <ho...@hotmail.com>.
I am not sure, but if you expect Find to return a number, try N(FIND(…)) instead – it converts value into a number.

Howard

From: ouch<ma...@yahoo.com.INVALID>
Sent: Tuesday, April 11, 2017 2:31 AM
To: dev@openoffice.apache.org<ma...@openoffice.apache.org>
Subject: Possible Formula Bug in Calc? (IsError and Find)

I have an array formula that is returning an error of #VALUE when it shouldn't.The formula is below.
{=ISERROR(INDEX($'Sales 4-10-2017'.$A$1:$A$1000;SMALL(IF(ISERROR(FIND("Discount";$'Sales 4-10-2017'.$A$1:$A$1000))=0;ROW($'Sales 4-10-2017'.$A$1:$A$1000);"");ROW(A200))))}

Digging into it, it seems Find is culprit of the #Value error. However that initial iserror is not catching the error and the error propagates throughout the formula even overriding the error #504 on index caused by the Find function resulting in an invalid row being returned due to the error.
I put that final iserror around the index function just to show that something is not right. The formula still returns #VALUE with that on there when it obviously should be returning either true or false regardless of what the rest of the formula is doing.
What is strange is if you move the cursor through the formula in the function wizard it gets the expected results of true or false. But on the actual spreadsheet you get that #VALUE error.
Oh, I just tried switching out Find for Search and the same thing occurs. So maybe it's a bug in iserror as it's the only constant?