Forum Discussion

LyonsBI_BRL's avatar
LyonsBI_BRL
Icon for Helper III rankHelper III
5 years ago

Grouping Values together in IF statement

I'm completely stuck on an IF statement that I need to create here for the following scenario

The scenariio is I need to create a calculated column (that or if a measure would work better that'd work too) Where IF the # of Units is greater than 1000 = DEALS for that Company, Under 500 Units, it would be "No Deals" for that company.

 

Omitting customer data below, It'd be if say Contoso had more than 1000 total units across the different Areas and Sub Regions it would equal a DEAL. If the overall total was under 500 it'd be No Deal. 

Somewhere we could have Between 500 and 1000 it'd be "Good Deal"

Anyone have any thoughts on how I could assemble this formula here as I'm really drawing a blank here. 

 

 

Thanks!

 

9 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    LyonsBI_BRL Not certain I understand 100% but try this measure along with Company in a table visual:

     

    Measure = 
      VAR __TotalUnits = SUM('Table'[# of Units])
    RETURN
      SWITCH(TRUE(),
        __TotalUnits > 1000, "DEAL",
        __TotalUnits < 500, "No Deal",
        "Good Deal"
      )

     

     

     

    • LyonsBI_BRL's avatar
      LyonsBI_BRL
      Icon for Helper III rankHelper III

      Greg_Deckler 

      Hey Greg thank you for getting back to me!

      The formula above worked pretty well!

       

      Speaking with the customer, what they want is if you look below at the graphic, The total number of units equals 2545. What they would like to see is if the total number is greater than 1000 than it equals a Mega Deal, if it's under 500 its "Under 500" and finally if its between the two its "Not Mega". So basically the 2545 would be grouped into one row instead multiple rows, making it a mega deal. 

       

      Is there a way to group all of them together within the formula? If so any additional help would be greatly appreciated. 

       

      Thanks!

       

      MegaDeals = VAR _TotalUnits =SUM(Query1[[Units]]])
      Return
      SWITCH(TRUE(),
          _TotalUnits > 1000, "Mega Deals",
          _TotalUnits < 500, "Under 500",
      "Not Mega"
      )

       

       

      • Greg_Deckler's avatar
        Greg_Deckler
        Icon for Community Champion rankCommunity Champion

        LyonsBI_BRL Sure, 

        Measure = 
          VAR __Company = MAX('Table'[Company])
          VAR __TotalUnits = SUMX(FILTER(ALL('Table'),[Company]=__Company),[# of Units])
        RETURN
          SWITCH(TRUE(),
            __TotalUnits > 1000, "DEAL",
            __TotalUnits < 500, "No Deal",
            "Good Deal"
          )
  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  LyonsBI_BRL  ,

    Here are the steps you can follow:

    1. Create measure.

    MegaDeals_New =
    Var _Company=MAX(Query1[Organizationt])
    Var _TotalUnits=SUMX(FILTER(ALL(Query1),Query1[Organization]=_Company),Query1[[Units])
    Return
    SWITCH(True(),
    _TotalUnits > 1000, "Mega Deal",
    _TotalUnits <500, "Under 500",
    "Not Mega")
    card =
    COUNTAX(FILTER('Query1','Query1'[MegaDeals_New]="Mega Deal"),'Query1'[Organization])

    2. Place [Organization] in the slicer, and place [card] in the card image

    3. The result looks like this

     

    Best Regards,

    Liu Yang

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

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  LyonsBI_BRL   ,

    Here are the steps you can follow:

    1. Create measure.

    Flag =
    var _table=SUMMARIZE(ALL('Query1'),[Segement Group],[of Units],"1",[MegaDeals_New])
    var _max=MAXX(FILTER(_table,[1]=[MegaDeals_New]),[of Units])
    return
    IF(MAX([of Units])=_max,1,0)

    2. Place the Flag in the Filter, set is =1, Apply filter.

    3. Result.

    Only one in the same group

     

     

    Best Regards,

    Liu Yang

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

    • LyonsBI_BRL's avatar
      LyonsBI_BRL
      Icon for Helper III rankHelper III

      Anonymous 

      I tried the solution you posted last Friday

      Flag =
      var _table=SUMMARIZE(ALL('Query1'),[Segement Group],[of Units],"1",[MegaDeals_New])
      var _max=MAXX(FILTER(_table,[1]=[MegaDeals_New]),[of Units])
      return
      IF(MAX([of Units])=_max,1,0)

      However when I placed it into the table, it actually cleared everything and didn't display anything. Does it Matter if it's Summarize of Segment Group or can it also be Summarize of Business Type or Organization (the name of the Company)

       

      Thanks!

    • LyonsBI_BRL's avatar
      LyonsBI_BRL
      Icon for Helper III rankHelper III

      Anonymous 

      So I put together the 

      Flag = 
      var _table=SUMMARIZE(ALL('Query1'),[Segment Group],[[Units]]],"1",[MegaDeals_New])
      var _max=MAXX(FILTER(_table,[1]=[MegaDeals_New]),[[Units]]])
      return
      IF(MAX([[ST Units]]])=_max,1,0)

      Though it wasn't seeming like it was grouping together when I placed the Flag Measure into the table. Instead it just took a huge amount of time and swtiched from being Flag = 1 to showing as 0 in the data card. 

      Am I missing something here?