Does the AND function always evaluate all arguments or only until it comes
across the first one that evaluates as FALSE? If the former is the case, is
there any way to make it work the second way without using a n ested IF
statement?
Does the AND function always evaluate all arguments or only until it comes
across the first one that evaluates as FALSE? If the former is the case, is
there any way to make it work the second way without using a n ested IF
statement?
I don't understand, what difference does it make? As long as a False
condition evaluates to False, isn't that OK? It would make a difference with
OR, but not AND.
--
HTH
Bob Phillips
(remove xxx from email address if mailing direct)
"Mike McLellan" <[email protected]> wrote in message
news:[email protected]...
> Does the AND function always evaluate all arguments or only until it comes
> across the first one that evaluates as FALSE? If the former is the case,
is
> there any way to make it work the second way without using a n ested IF
> statement?
The expression that I want to evaluate is along the following lines:
=IF(AND(FileExists(name),FileSize(name)>25000)
If the file doesn't exist, then the second argument will fail.
I think the best answer is probably to force the FileSize function to return
0 if the file doesn't exist
Thanks for your help
"Bob Phillips" wrote:
> I don't understand, what difference does it make? As long as a False
> condition evaluates to False, isn't that OK? It would make a difference with
> OR, but not AND.
>
> --
> HTH
>
> Bob Phillips
>
> (remove xxx from email address if mailing direct)
>
> "Mike McLellan" <[email protected]> wrote in message
> news:[email protected]...
> > Does the AND function always evaluate all arguments or only until it comes
> > across the first one that evaluates as FALSE? If the former is the case,
> is
> > there any way to make it work the second way without using a n ested IF
> > statement?
>
>
>
I assume that FielExists and Filesize are two UDFs? In that case, your
question is nothing to do with the evaluation of the conditions, but with
the UDFs, at least that is how I see it.
The AND will always evaluate both conditions, even if the first fails,
unnecessary but that is the way that it is, so your second UDF would need to
also check if the file exists, or maybe ditch FileExists and do it all in
Filesize, and return -1 if it doesn't exist.
--
HTH
Bob Phillips
(remove xxx from email address if mailing direct)
"Mike McLellan" <[email protected]> wrote in message
news:[email protected]...
> The expression that I want to evaluate is along the following lines:
>
> =IF(AND(FileExists(name),FileSize(name)>25000)
>
> If the file doesn't exist, then the second argument will fail.
>
> I think the best answer is probably to force the FileSize function to
return
> 0 if the file doesn't exist
>
> Thanks for your help
>
> "Bob Phillips" wrote:
>
> > I don't understand, what difference does it make? As long as a False
> > condition evaluates to False, isn't that OK? It would make a difference
with
> > OR, but not AND.
> >
> > --
> > HTH
> >
> > Bob Phillips
> >
> > (remove xxx from email address if mailing direct)
> >
> > "Mike McLellan" <[email protected]> wrote in
message
> > news:[email protected]...
> > > Does the AND function always evaluate all arguments or only until it
comes
> > > across the first one that evaluates as FALSE? If the former is the
case,
> > is
> > > there any way to make it work the second way without using a n ested
IF
> > > statement?
> >
> >
> >
"Bob Phillips" wrote:
> I don't understand, what difference does it make?
Consider the following example:
=if(and(a1<>0, b1/a1>0), "foo", "bar")
This results in #DIV/0 when A1 is zero, despite clear intentions
to avoid it. That formula must be rewritten, for example:
=if(a1=0, "bar", if(b1/a1>0, "foo", "bar"))
> It would make a difference with OR, but not AND.
It makes no more nor less difference with OR than with AND.
I could write a similar example above using OR(a1=0,b1/a1<=0).
With some programming languages, many people rely on the
abortive left-to-right evaluation of boolean expressions, which
have operators for "and", "or", etc. It is most useful (albeit
dubious) when the evaluation of subexpressions has side-effects.
But in those languages, all function parameters are evaluated
before calling the function. So it is the case with Excel's functions
AND(), OR(), etc. These are (obviously) functions, not operators.
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks