需要帮助在计算字段中创建嵌套包含语句

时间:2019-05-07 23:35:40

标签: excel excel-formula tableau

我在Tableau中工作,我有一个名为“着陆页”的维度,其中包含着陆页的所有URL。我想创建一个计算字段,该字段采用着陆页维度,并在着陆页的URL字符串中查找特定单词,然后在某些关键字下进行存储/过滤。我假设我将使用IF CONTAINS语句来执行此操作,但是我不确定如何在函数中包含OR语句。

这就是我要寻找的:

-包含/ employers /的URL应标记为主页

-包含/ our-products /,/ what-we-do /,/ sign-up /,/ what-is-employer-branding /,/ informed-candidates /或/ community-partners /的URL应该被标记为产品

-包含/ topics /或/ resources /的URL应标记为资源

-包含/ blog /的URL应标记为Blog

-包含/ success-stories /的URL应该标记为成功案例

-将/ demos /或/ contact-sales /标记为Handraisers的URL

IF CONTAINS([Landing Page], "/employers/") then "Home"
ELSEIF CONTAINS([Landing Page], "/our-products/") 
OR CONTAINS([Landing Page], "/what-we-do/") 
OR CONTAINS([Landing Page], "/sign-up/")
OR CONTAINS([Landing Page], "/what-is-employer-branding/") 
OR CONTAINS([Landing Page], "/informed-candidates/") 
OR CONTAINS([Landing Page], "/community-partners/") then "Product"
ELSEIF CONTAINS([Landing Page], "/topics/") 
OR CONTAINS([Landing Page], "/resources/") then "Resources"
ELSEIF CONTAINS([Landing Page], "/blog/") then "Blog"
ELSEIF CONTAINS([Landing Page], "/post-job/") then "Self Service"
ELSEIF CONTAINS([Landing Page], "/success-stories/") then "Success-Stories"
ELSEIF CONTAINS([Landing Page], "/demos/") 
OR CONTAINS([Landing Page], "/contact-sales/") then "Handraisers"
ELSE "Null" END

我目前正在使Blog,Home,Resources,Self Service和Null填充为Tableau中的行或列,但是缺少Product,Success-Stories和Handraisers一词。有人知道为什么吗?

1 个答案:

答案 0 :(得分:1)

我重新格式化了您的计算,但没有发现任何问题。

IF CONTAINS([Landing Page], "/employers/") 
    then "Home"
ELSEIF 
    (
     CONTAINS([Landing Page], "/our-products/") 
     OR CONTAINS([Landing Page], "/what-we-do/") 
     OR CONTAINS([Landing Page], "/sign-up/")
     OR CONTAINS([Landing Page], "/what-is-employer-branding/") 
     OR CONTAINS([Landing Page], "/informed-candidates/") 
     OR CONTAINS([Landing Page], "/community-partners/") 
     )
     then "Product"

ELSEIF 
   (
    CONTAINS([Landing Page], "/topics/") 
    OR CONTAINS([Landing Page], "/resources/") 
   )
   then "Resources"
ELSEIF CONTAINS([Landing Page], "/blog/") 
   then "Blog"
ELSEIF CONTAINS([Landing Page], "/post-job/") 
   then "Self Service"
ELSEIF CONTAINS([Landing Page], "/success-stories/") 
   then "Success-Stories"
ELSEIF 
    (
     CONTAINS([Landing Page], "/demos/") 
     OR CONTAINS([Landing Page], "/contact-sales/") 
    )
    then "Handraisers"
ELSE "Null" END

可能发生的情况是您的URL包含多个词组,例如/employers/sign-up吗?

我建议尝试拉出URL的这一部分并将其放在自己的字段中。 EG使用这样的regexp_extract计算:REGEXP_EXTRACT('http://google.com/employers/', 'http:\/\/google\.com(.*)')。结果将为/employers/。这可能会帮助您弄清楚为什么没有得到预期的结果。

如果您还可以提供一些数据样本(如果这不能解决问题),那么我可以解决这个问题。

相关问题