Forum Discussion

LyonsBI_BRL's avatar
LyonsBI_BRL
Helper III
5 years ago
Solved

Nested IF Statement - Not Returning all Conditions

I'm running into a problem when running my nested IF statement.

 

If([value.FollowersonTwitter]<=500, "Less than 500",
IF([value.FollowersonTwitter]>=1000, "1000",
IF([value.FollowersonTwitter]>=5000, "5000+",
IF([value.FollowersonTwitter]>=10000, "10,000+", "No Followers"))))

 

Though when I run it I'm not getting any results for the rows that have 5000 or 10000 followers. What am I missing here?

 

 

Thanks!

 

 

  • Hey LyonsBI_BRL ,

     

    when you have 6000 followers the criteria >=1000 gives back a true and the other options are not checked.

    You can either change the order, so that the biggest numbers are checked first:

     

    IF([value.FollowersonTwitter]>=10000, "10,000+",
    IF([value.FollowersonTwitter]>=5000, "5000+",
    IF([value.FollowersonTwitter]>=1000, "1000",
    If([value.FollowersonTwitter]<=500, "Less than 500", "No Followers"))))

     

     

    Or you have to add a second citeria:

     

    If([value.FollowersonTwitter]<=500, "Less than 500",
    IF([value.FollowersonTwitter]>=1000 && [value.FollowersonTwitter]<5000, "1000",
    IF([value.FollowersonTwitter]>=5000 && [value.FollowersonTwitter]<10000, "5000+",
    IF([value.FollowersonTwitter]>=10000, "10,000+", "No Followers"))))

     

     

    Also I would recommend to check out the usage of SWITCH(TRUE) as it's a lot clearer than nested ifs:

    https://powerpivotpro.com/2015/03/the-diabolical-genius-of-switch-true/

     

    myCalculatedColumn =
    SWITCH(
        TRUE(),
        [value.FollowersonTwitter] >= 10000, "10,000+",
        [value.FollowersonTwitter] >= 5000, "5000+",
        [value.FollowersonTwitter] >= 1000, "1000",
        [value.FollowersonTwitter] <= 500, "Less than 500",
        "No Followers"
    )

     

    If you need any help please let me know.
    If I answered your question I would be happy if you could mark my post as a solution ✔️ and give it a thumbs up 👍
     
    Best regards
    Denis
     

3 Replies

  • selimovd's avatar
    selimovd
    Most Valuable Professional

    Hey LyonsBI_BRL ,

     

    when you have 6000 followers the criteria >=1000 gives back a true and the other options are not checked.

    You can either change the order, so that the biggest numbers are checked first:

     

    IF([value.FollowersonTwitter]>=10000, "10,000+",
    IF([value.FollowersonTwitter]>=5000, "5000+",
    IF([value.FollowersonTwitter]>=1000, "1000",
    If([value.FollowersonTwitter]<=500, "Less than 500", "No Followers"))))

     

     

    Or you have to add a second citeria:

     

    If([value.FollowersonTwitter]<=500, "Less than 500",
    IF([value.FollowersonTwitter]>=1000 && [value.FollowersonTwitter]<5000, "1000",
    IF([value.FollowersonTwitter]>=5000 && [value.FollowersonTwitter]<10000, "5000+",
    IF([value.FollowersonTwitter]>=10000, "10,000+", "No Followers"))))

     

     

    Also I would recommend to check out the usage of SWITCH(TRUE) as it's a lot clearer than nested ifs:

    https://powerpivotpro.com/2015/03/the-diabolical-genius-of-switch-true/

     

    myCalculatedColumn =
    SWITCH(
        TRUE(),
        [value.FollowersonTwitter] >= 10000, "10,000+",
        [value.FollowersonTwitter] >= 5000, "5000+",
        [value.FollowersonTwitter] >= 1000, "1000",
        [value.FollowersonTwitter] <= 500, "Less than 500",
        "No Followers"
    )

     

    If you need any help please let me know.
    If I answered your question I would be happy if you could mark my post as a solution ✔️ and give it a thumbs up 👍
     
    Best regards
    Denis
     
    • LyonsBI_BRL's avatar
      LyonsBI_BRL
      Helper III

      Worked perfectly! Like I said I knew I was missing something here!

       

      Thank you again! 😀

      • selimovd's avatar
        selimovd
        Most Valuable Professional

        LyonsBI_BRL I'm happy it worked. Yes, that are usually the annoying parts, when you don't see it and search at the wrong spot.

         

        Best regards

        Denis