根据日期范围创建过滤器

时间:2017-08-08 22:33:12

标签: tableau

我是Tableau的新手,对于创建过滤器有疑问。我有一个数据集,其中包含一个名为"开始日期"和一个名为"结束日期"的字段。使用这两个字段,我想创建一个包含以下选项的过滤器:

  1. 具有"开始日期"的记录在当前日期之前,称为"等待记录"
  2. 记录有"结束数据"在当前日期之后,称为"过期记录"
  3. 具有"开始日期"的记录等于或大于当前日期并且具有"结束日期"小于当前日期,称为" Active Records"
  4. 我希望这是一个过滤器,有这三个选择。这可能吗?如果是的话,有什么我可以看的例子吗?

    仅供参考,我使用的是Tableau Desktop版本10.3

    感谢

    更新

    我还必须为"记录添加状态,结束日期在6个月内#34;所以我使用了这段代码:

    IF 
    (
    [Start Date] > TODAY()  
    ) then "PendingRecord"
    elseif (
    [End Date] < TODAY() 
    ) then "ExpiredRecord" 
    elseif (
    [Start Date] <= TODAY() AND 
    ([End Date] > TODAY() AND
    [End Date] > DATEADD("month",6, TODAY()))
    ) then "ActiveRecord"
    elseif (
    [Start Date] <= TODAY() AND 
    ([End Date] > TODAY() AND
    [End Date] <= DATEADD("month",6, TODAY()))
    ) then "EndingIn6Months"
    END
    

    这将创建一个包含4个选项的过滤器。但是,&#34; EndingIn6Moths&#34;实际上是ActiveRecord的一个子集。因此,当用户选择ActiveRecords时,它还应包括EndingIn6Months。这可能吗?当用户检查ActiveREcords选项时,是否可以自动检查过滤器(EndingIn6Months)?

1 个答案:

答案 0 :(得分:0)

我认为以下内容会对您有所帮助。

1-为当前日期创建计算字段:Now()

2-创建另一个计算字段

If  [Start Date] = [Now] then "Pending Records"
    ELSEIF      [END Date] = [Now] then "Pending Records"              
    ELSEIF      [Start Date] => [Now]  AND [END Date] < [Now] then "Active Records"                                                                     
    ELSE        "Others"
    END 

你能分享一下你的工作簿吗?

我觉得不同的行会落入不同的桶中。当你遇到第一和第二个条件时,你会遇到这种情况。我认为你需要将它们排除在彼此之外。看到数据集会很棒。

如果有任何问题,请告诉我。