Forum Discussion

DouweMeer's avatar
DouweMeer
Impactful Individual
6 years ago

iserror is false, but does return an error

Entity =
VAR a1 = find ( " -" , [Classification] )
VAR a2 = len ( [Classification] )
VAR a3 = trim( right ( [Classification] , a2 - a1 -1 ) )
VAR a4 = find ( " -" , a3 )
VAR a6 = trim ( left ( a3 , a4 -1 ) )
RETURN
if ( iserror ( a6 ) , "True" , a6 )
 
The search Text provided to function 'FIND' could not be found in the given text.
 
However...
if ( iserror ( a6) , "True" , "False" ) = "False"
 
I don't understand how this can even give an error. Am I missing something?

5 Replies

    • DouweMeer's avatar
      DouweMeer
      Impactful Individual

      Hey ChrisMendoza 

       

      I wasn't so much looking for a workaround, more a like an understanding of why the iserror appears to fail. As for the solution, I created myself the following : 

       

      Entity =
      VAR a1 = find ( " -" , [Classification] )
      VAR a2 = len ( [Classification] )
      VAR a3 = trim( right ( [Classification] , a2 - a1 -1 ) )
      VAR a4 = if ( iserror ( find ( " -" , a3 ) ) , BLANK() , find ( " -" , a3 ) )
      VAR a6 = if ( a4 = BLANK() , BLANK() , trim ( left ( a3 , a4 -1 ) ) )
      RETURN
      if ( iserror ( a6 ) , 'AC'[Wholesaler Name] , a6 )
       
      As a test I changed my original to your suggestion: 
       
      Entity =
      VAR a1 = find ( " -" , [Classification] )
      VAR a2 = len ( [Classification] )
      VAR a3 = trim( right ( [Classification] , a2 - a1 -1 ) )
      VAR a4 = FIND ( " -", a3 ,BLANK ( ) )
      VAR a6 = if ( a4 = BLANK() , BLANK() , trim ( left ( a3 , a4 -1 ) ) )
      RETURN
      if ( iserror ( a6 ) , "True" , a6 )
       
      This returns the following error :
       
      An argument of function 'FIND' has the wrong data type or has an invalid value.
       
      I wouldn't mind to validate another attempt if you want to give it another shot via your method.  
      • ChrisMendoza's avatar
        ChrisMendoza
        Resident Rockstar

        DouweMeer wrote:

        Hey ChrisMendoza 

         

        ...

        As a test I changed my original to your suggestion: 
         
        Entity =
        VAR a1 = find ( " -" , [Classification] )
        VAR a2 = len ( [Classification] )
        VAR a3 = trim( right ( [Classification] , a2 - a1 -1 ) )
        VAR a4 = FIND ( " -", a3 ,BLANK ( ) )
        VAR a6 = if ( a4 = BLANK() , BLANK() , trim ( left ( a3 , a4 -1 ) ) )
        RETURN
        if ( iserror ( a6 ) , "True" , a6 )
         
        This returns the following error :
         
        An argument of function 'FIND' has the wrong data type or has an invalid value.
         
        I wouldn't mind to validate another attempt if you want to give it another shot via your method.  

         

        You missed the comma in

        VAR a4 = FIND ( " -", a3 ,BLANK ( ) )

        Should be 

        VAR a4 = FIND ( " -", a3, ,BLANK ( ) )

         

        Can you provide a sample of your data?