Batfastad Posted February 24, 2005 Posted February 24, 2005 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 Batfastad
andygaunt Posted February 24, 2005 Posted February 24, 2005 Hi, indeed it is possible and your calc is correct. One thing to ensure is your calculation is not stored.
comment Posted February 24, 2005 Posted February 24, 2005 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 )
Batfastad Posted February 24, 2005 Author Posted February 24, 2005 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 Batfastad
comment Posted February 24, 2005 Posted February 24, 2005 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" )
Batfastad Posted February 24, 2005 Author Posted February 24, 2005 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 Batfastad
comment Posted February 24, 2005 Posted February 24, 2005 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.
Batfastad Posted February 24, 2005 Author Posted February 24, 2005 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.
comment Posted February 24, 2005 Posted February 24, 2005 It depends - you could have: Position ( field1 ; field2 ; 1 ; 1 ) To put it in general: Position ( textToSearchIn ; stringToSearchFor ; start; occurrence )
Batfastad Posted February 25, 2005 Author Posted February 25, 2005 Aha I get it now. Thanks for all your help guys.
Recommended Posts
This topic is 7558 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now