Solved
Contributor
Posts: 43

# How can I evaluate a variable to create other if the if function does not allow the like operator?

How can I evaluate a variable to create another if the if function does not allow the like operator?

For example is easy if var is numeric, like:

IF VAR1 = 0 THEN VAR2 = 'A';

But if I need to evaluate something inside string of characters how can it be?

some like:

IF VAR1 LIKE "%A%" THEN VAR2 = "CONTAINS LETTER A"

What operator can I replace to LIKE?

Accepted Solutions
Solution
‎03-22-2017 01:09 PM
PROC Star
Posts: 7,467

## Re: How can I evaluate a variable to create other if the if function does not allow the like operato

Either the INDEX or FINDC functions.

Art, CEO, AnalystFinder.com

All Replies
Solution
‎03-22-2017 01:09 PM
PROC Star
Posts: 7,467

## Re: How can I evaluate a variable to create other if the if function does not allow the like operato

Either the INDEX or FINDC functions.

Art, CEO, AnalystFinder.com

Contributor
Posts: 43

## Re: How can I evaluate a variable to create other if the if function does not allow the like operato

thank you Art, and do you know how can I do it like a evaluate a list?

I know this does not work but is only an example:

IF VAR1 IN ('%A%','%B%','%C%') THEN VAR2  = 'CONTAINS LETTERS A B or C'

If I use this works:

IF INDEX(VAR1,'A') THEN VAR2 = 'CONTAINS LETTERS A B or C'

IF INDEX(VAR1,'B') THEN VAR2 = 'CONTAINS LETTERS A B or C'

IF INDEX(VAR1,'C') THEN VAR2 = 'CONTAINS LETTERS A B or C'

But is it possible to simplify it?

I simplified like this:

IF INDEX(VAR1,'A') or INDEX(VAR1,'B') or INDEX(VAR1,'C') THEN VAR2 = 'CONTAINS LETTERS A B or C'

but is there another way tah you know more shorten? some like:

IF INDEX(VAR1,'A','B','C') THEN VAR2 = 'CONTAINS LETTERS A B or C'

Thanks

Posts: 1,137

## Re: How can I evaluate a variable to create other if the if function does not allow the like operato

``if prxmatch('m/[abc]/i',VAR1) then VAR2="CONTAINS LETTER A or B or C";``
Thanks,
Jag
Posts: 1,137

## Re: How can I evaluate a variable to create other if the if function does not allow the like operato

alternatively we could try the perl regular expression like below

``if prxmatch('m/[a]/i',VAR1) then VAR2="CONTAINS LETTER A";``
Thanks,
Jag
PROC Star
Posts: 7,467

## Re: How can I evaluate a variable to create other if the if function does not allow the like operato

the findc function allows you to both find if a string contains one or more of the variables in a list, as well as ignore case (if desired). e.g.:

`data want; informat string \$23.; input string &; if findc(string, 'abc', "i") then want='Contains A, B or C'; datalines;Microsoft Office VisioMicrosoft Office WordAdobe PhotoshopAdobe PhotoshopProInternet Explorer;`

Art, CEO, AnalystFinder.com

☑ This topic is solved.