+ Reply to Thread
Results 1 to 5 of 5

AND Function

  1. #1
    Mike McLellan
    Guest

    AND Function

    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?

  2. #2
    Bob Phillips
    Guest

    Re: AND Function

    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?




  3. #3
    Mike McLellan
    Guest

    Re: AND Function

    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?

    >
    >
    >


  4. #4
    Bob Phillips
    Guest

    Re: AND Function

    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?

    > >
    > >
    > >




  5. #5

    Re: AND Function

    "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.


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1