Forum Discussion

Bgordon10's avatar
Bgordon10
Regular Visitor
4 years ago
Solved

Using Switch and Contains for Multiple Conditions

Hello, 

 

I have a dataset with two specific columns, Marketing_grouping and campaign_name. I want to create a new column that reads the text string in the campaign_name column and returns a value. We want to identify if the campaign is a Brand or NonBrand campaign. There are other campaigns that are not Brand or Nonbrand specific, so if possible, the new column would return the Marketing grouping. Essentially we are splitting the Marketing_Grouping, Paid Search, into 2 groups, brand and nonbrand, and using the campaign name column to identify. Also, there are paid search campaigns that do no have brand or nonbrand in Its name and we will group them under nonbrand

 

 

** Case sensitive:

If campaign_name contains NB, Non, non, Non-Brand, and Marketing group = Paid Search, then NB 

If Campaign_Name contains Brand, BR, and marketing group = Paid Search, then Brand 

If Marketing_group = Paid Search and Campaign name doesn't contain any of the above, then NB 

Else, Marketing_Group (all other non paid search campaigns, use marketing group) 

 

 

 

  • Hi, 

     

    I wanted to provide an update that I figured out a solution. See code below. 

     

     

    MOR Channel Type =
    SWITCH (
    TRUE (),
    ISERROR ( FIND ( "NB", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
    && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
    ISERROR ( FIND ( "Non", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
    && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
    ISERROR ( FIND ( "non", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
    && Summary[MARKETING_GROUPING]IN {"Paid Search", "UK Paid Search"}, "NB",
    ISERROR ( FIND ( "Non Brand", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
    && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
    ISERROR ( FIND ( "BR", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
    && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "Brand",
    ISERROR ( FIND ( "Brand", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
    && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "Brand",
    ISERROR ( NOT( Summary[CAMPAIGN_NAME] )IN {"NB", "Non", "non","Non Brand", "BR", "Brand"}) <> TRUE()
    && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
    ISERROR (FIND("RSVP Page _OPH_NA_Event", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
    && Summary[MARKETING_GROUPING] = "Event"
    && Summary[ICODE] IN { "CU-Online", "CU-Onsite" }, "CU Event" ,
    ISERROR (Summary[CAMPAIGN_NAME] <> "RSVP Page _OPH_NA_Event") <> TRUE ()
    && Summary[MARKETING_GROUPING] = "Event"
    && Summary[ICODE] IN { "CU-Online", "CU-Onsite" }, "CU WFS",
    Summary[MARKETING_GROUPING] IN {"Paid Social", "UK Paid Social"}, "Paid Social",
    Summary[MARKETING_GROUPING] IN {"Internal Website", "UK Internal Website"}, "Internal Website",
    Summary[MARKETING_GROUPING] IN {"Display", "Display/OLV", "UK Display", "Internet Display"}, "Internal Website",
    Summary[MARKETING_GROUPING]
    )

3 Replies

  • Bgordon10's avatar
    Bgordon10
    Regular Visitor

    Thanks amitchandak ! 

    But now I am getting an error message, and I still need a formula for all other paid search campaigns that do not have the criteria in the formulas below 

     

     

     

     

     

    • Bgordon10's avatar
      Bgordon10
      Regular Visitor

      Hi, 

       

      I wanted to provide an update that I figured out a solution. See code below. 

       

       

      MOR Channel Type =
      SWITCH (
      TRUE (),
      ISERROR ( FIND ( "NB", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
      && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
      ISERROR ( FIND ( "Non", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
      && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
      ISERROR ( FIND ( "non", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
      && Summary[MARKETING_GROUPING]IN {"Paid Search", "UK Paid Search"}, "NB",
      ISERROR ( FIND ( "Non Brand", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
      && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
      ISERROR ( FIND ( "BR", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
      && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "Brand",
      ISERROR ( FIND ( "Brand", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
      && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "Brand",
      ISERROR ( NOT( Summary[CAMPAIGN_NAME] )IN {"NB", "Non", "non","Non Brand", "BR", "Brand"}) <> TRUE()
      && Summary[MARKETING_GROUPING] IN {"Paid Search", "UK Paid Search"}, "NB",
      ISERROR (FIND("RSVP Page _OPH_NA_Event", Summary[CAMPAIGN_NAME] ) ) <> TRUE ()
      && Summary[MARKETING_GROUPING] = "Event"
      && Summary[ICODE] IN { "CU-Online", "CU-Onsite" }, "CU Event" ,
      ISERROR (Summary[CAMPAIGN_NAME] <> "RSVP Page _OPH_NA_Event") <> TRUE ()
      && Summary[MARKETING_GROUPING] = "Event"
      && Summary[ICODE] IN { "CU-Online", "CU-Onsite" }, "CU WFS",
      Summary[MARKETING_GROUPING] IN {"Paid Social", "UK Paid Social"}, "Paid Social",
      Summary[MARKETING_GROUPING] IN {"Internal Website", "UK Internal Website"}, "Internal Website",
      Summary[MARKETING_GROUPING] IN {"Display", "Display/OLV", "UK Display", "Internet Display"}, "Internal Website",
      Summary[MARKETING_GROUPING]
      )