# FMP 6 - Using or in If() calculations...

This topic is 6602 days old. Please don't post here. Open a new topic instead.

## Recommended Posts

Hi

Is it possible to use the or operator in in calculations?

So if you have a calculation like this...

```If( Status(CurrentUserName) = "James" or Status(CurrentUserName) = "John", "True", "False")

```

I've just tried it and it doesn't seem to be working.

I realise I could use Case() rather than nested If() statements, and I am doing so in the meantime.

But I just wondered why I couldn't get it to work.

Any ideas?

Thanks

##### Share on other sites

Hi, indeed it is possible and your calc is correct.

One thing to ensure is your calculation is not stored.

##### Share on other sites

You can use "or" and any one of the logical operators with If(), Case() or any other function. It helps to remember that in FMP, True is 1, and False is 0. This allows some neat shortcuts in calcs, e.g. instead of:

Case ( a = b ; number ; 0 )

you can write:

number * ( a = b )

##### Share on other sites

Yeah I think I may have forgotten to switch the calculation to unstored.

Is there a limit to the number of 'or' operators you can have in an expression?

```If(Name = "John" or Name = "James" or Name = "Mike" or Name = "Barry", "true", "false")

```

Thanks

##### Share on other sites

There's no limit that I know of, but it does get tiresome, so at some point you'd want to switch to PatternCount() or Position(), e.g.

Case (

Position ( "John James Mike Barry" , Name, 1 , 1 ) ,

"true" ,

"false"

)

##### Share on other sites

So doing...

Position("John James Nick Barry"

Having the space in there in effect does the 'or' bit?

How does that work?

Why doesn't it search the field for the text "John James Nick Barry" all in one string?

Thanks

##### Share on other sites

It searches the string for the field, not the other way around (see the Position() syntax in FMP help). The space is there to prevent a false match, e.g. "PeterRyanNellie" are false match for Terry and Anne.

##### Share on other sites

Ah so the position returned, is the position in string, not the position in field of the string.

Never realised that and I've been using Position() for years.

##### Share on other sites

It depends - you could have:

Position ( field1 ; field2 ; 1 ; 1 )

To put it in general:

Position ( textToSearchIn ; stringToSearchFor ; start; occurrence )

##### Share on other sites

Aha

I get it now.

Thanks for all your help guys.

##### Share on other sites

This topic is 6602 days old. Please don't post here. Open a new topic instead.

## Create an account

Register a new account

×
×
• Create New...