2017-08-08 80 views
0

我是Tableau的新手,对创建过滤器有疑问。我有一个数据集有一个名为“开始日期”的字段和一个名为“结束日期”的字段。使用这两个领域,我想创建一个具有以下选项的过滤器:根据日期范围创建过滤器

有有一个“结束了“开始日期”之前为当前日期,名为“待定记录”
  • 记录
    1. 记录数据“,称为”过期记录“
    2. ”开始日期“等于或大于当前日期并且”结束日期“小于当前日期的记录,称为”活动记录“

    我希望这是一个过滤器,这三个选择。这可能吗?如果是这样,有什么我可以看看的例子吗?

    仅供参考,我使用的Tableau桌面版10.3

    感谢

    UPDATE

    我也不得不增加一个状态为“记录6个月内的最后一天”,所以我使用此代码:

    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个选项的过滤器。但是,“EndingIn6Moths”实际上是ActiveRecord的一个子集。所以,当用户选择ActiveRecords时,它也应该包含EndingIn6Months。这可能吗?当用户检查ActiveREcords选项时,是否可以自动检查筛选器(EndingIn6Months)?

  • 回答

    0

    我认为以下几点对你有帮助。

    1 - 创建当前日期计算字段:现在()

    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 
    

    能否请您分享您的工作簿?

    我觉得不同的行会落入不同的桶中。你会遇到什么情况,你会遇到第一和第二个条件。我认为你需要排除他们彼此。看到数据集会很高兴。

    如果有任何问题,请让我知道。

    +0

    是的,这是我最终做的,它的工作。问题是我的企业所有者也希望在未来6个月内记录具有结束日期的记录。我将添加我用来获取此代码的代码,但它所做的是将ActiveRecords分成两个组,即以6个月结束的组,以及那些不是。这很好,但这会影响我的过滤器。我会更新我的问题,以反映我的后续问题,但也许它是最好的新线程? – jason