Forum Discussion

matts29's avatar
matts29
Frequent Visitor
1 year ago
Solved

DAX help containstring

Hi, someone please help with my dax below?
 
currently I have the below:
CurrentIn= if(AND(ED_Performance[DepartureDttm]=blank(),
CONTAINSSTRING(ED_Performance[CurrentLocation],"theatre")),1,0)
 
I would like to seach for multiple stings in the same column so idwally i would like added in 'Red'
CurrentIn= if(AND(ED_Performance[DepartureDttm]=blank(),
CONTAINSSTRING(ED_Performance[CurrentLocation],"theatre")
CONTAINSSTRING(ED_Performance[CurrentLocation],"theatre"),
CONTAINSSTRING(ED_Performance[CurrentLocation],"hall"),
CONTAINSSTRING(ED_Performance[CurrentLocation],"attic")
 ),1,0)
 
 
Thank you so much 🙂
  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi matts29 ,
    As wdx223_Daniel mentioned, you can try the following code.

    CurrentIn = 
    IF(
        AND(
            ED_Performance[DepartureDttm] = BLANK(),
            OR(
                CONTAINSSTRING(ED_Performance[CurrentLocation], "theatre"),
                OR(
                    CONTAINSSTRING(ED_Performance[CurrentLocation], "hall"),
                    CONTAINSSTRING(ED_Performance[CurrentLocation], "attic")
                )
            )
        ),
        1,
        0
    )

     

    Best regards,
    Albert He


    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

4 Replies

  • matts29 ,

     

    To handle multiple search strings in the same column, you can use the OR function in DAX to check for each condition. Here’s the updated formula that includes "theatre," "hall," and "attic" in your logic:

    CurrentIn = 
    IF(
        AND(
            ED_Performance[DepartureDttm] = BLANK(),
            OR(
                CONTAINSSTRING(ED_Performance[CurrentLocation], "theatre"),
                CONTAINSSTRING(ED_Performance[CurrentLocation], "hall"),
                CONTAINSSTRING(ED_Performance[CurrentLocation], "attic")
            )
        ),
        1,
        0
    )
    

     

    • The OR function is used to combine the multiple CONTAINSSTRING checks. If any of the strings ("theatre," "hall," or "attic") are found in the CurrentLocation column, the condition evaluates to TRUE.
    • The AND function ensures that both DepartureDttm being blank and one of the strings being present are true for the result to be 1.
    • If neither condition is met, the result is 0.

     

    This way, you can search for multiple strings in the same column and maintain the desired logic. If you need to add more strings, simply include additional CONTAINSSTRING functions within the OR block.

     

    Best regards,

    • matts29's avatar
      matts29
      Frequent Visitor

      Thanks so much for the help and explanation  but I am getting the following error "Too many arguments were passed to the OR function. The maximum argument count for the function is 2." ? 

       

      Thanks again

      • wdx223_Daniel's avatar
        wdx223_Daniel
        Community Champion

        OR only get two conditions

        or(con1,or(con2,con3))

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi matts29 ,
    As wdx223_Daniel mentioned, you can try the following code.

    CurrentIn = 
    IF(
        AND(
            ED_Performance[DepartureDttm] = BLANK(),
            OR(
                CONTAINSSTRING(ED_Performance[CurrentLocation], "theatre"),
                OR(
                    CONTAINSSTRING(ED_Performance[CurrentLocation], "hall"),
                    CONTAINSSTRING(ED_Performance[CurrentLocation], "attic")
                )
            )
        ),
        1,
        0
    )

     

    Best regards,
    Albert He


    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly