Forum Discussion

rush's avatar
rush
Helper V
3 years ago
Solved

SEARCH and SWITCH Data type issues

Hi 

 

I need help trying to search for a text in a column and bring back a value due to the error below:

Function 'SWITCH' does not support comparing values of type True/False with values of type Text.

Your help is much appreciated.

Client =
SWITCH( TRUE(),
SEARCH("Apple", 'Billing and GP'[Project Name], 1 , 0) = 1  , "Apple", 'Billing and GP'[Client Name] ,
SEARCH("Pear", 'Billing and GP'[Project Name], 1 , 0) = 1, "Pear", 'Billing and GP'[Client Name],
'Billing and GP'[Client Name] 

 

  • rush 

    Try it withouth the second text string.  You just need the TRUE part on each line of the SWITCH

     

    Client = 
    SWITCH( TRUE(),
    SEARCH("Apple", 'Billing and GP'[Project Name], 1 , 0) = 1 , "Apple",
    SEARCH("Pear", 'Billing and GP'[Project Name], 1 , 0) = 1, "Pear",
    'Billing and GP'[Client Name] 
    )

     

  • rush 

    I think you would be better off using CONTAINSSTRING.  That way it will looking the whole string, not just the start and you can simplify it a bit:

    Client = 
    SWITCH( TRUE(),
        CONTAINSSTRING('Billing and GP'[Project Name],"Apple"),"Apple",
        CONTAINSSTRING('Billing and GP'[Project Name],"Pear"),"Pear",
        'Billing and GP'[Client Name]
    )

4 Replies

  • rush 

    Try it withouth the second text string.  You just need the TRUE part on each line of the SWITCH

     

    Client = 
    SWITCH( TRUE(),
    SEARCH("Apple", 'Billing and GP'[Project Name], 1 , 0) = 1 , "Apple",
    SEARCH("Pear", 'Billing and GP'[Project Name], 1 , 0) = 1, "Pear",
    'Billing and GP'[Client Name] 
    )

     

      • jdbuchanan71's avatar
        jdbuchanan71
        Super User

        rush 

        I think you would be better off using CONTAINSSTRING.  That way it will looking the whole string, not just the start and you can simplify it a bit:

        Client = 
        SWITCH( TRUE(),
            CONTAINSSTRING('Billing and GP'[Project Name],"Apple"),"Apple",
            CONTAINSSTRING('Billing and GP'[Project Name],"Pear"),"Pear",
            'Billing and GP'[Client Name]
        )