【问题标题】:Get value that is outside scope of filter获取超出过滤器范围的值
【发布时间】:2019-06-01 03:21:19
【问题描述】:

我正在处理一个表格项目,其中包含显示开始月份、结束月份和每月费用的长格式表格数据。我试图显示日期的每月成本(动态)范围的视觉效果,然后覆盖多月行总成本的参考线。我怀疑答案在于使用细节层次 (LOD) 表达式,但似乎无法弄清楚。

示例 csv:

start,end,month length,x,a,b,c,d,total
1/1/2019,1/1/2019,1,1.2,0.08,0.01,0.1,0.299,0.489
2/1/2019,2/1/2019,1,1.1,0.08,0.01,0.1,0.295,0.485
3/1/2019,3/1/2019,1,0.9,0.08,0.01,0.12,0.285,0.495
1/1/2019,2/1/2019,2,2.3,0.08,0.01,0.1,0.297086956521739,0.487086956521739
2/1/2019,3/1/2019,2,2,0.08,0.01,0.109,0.2905,0.4895
1/1/2019,3/1/2019,3,3.2,0.08,0.01,0.105625,0.2936875,0.4893125

忽略 x,a,b,c,d - 它们将显示图表有多个等于月度总数的度量。

对于相同的开始和结束月份,我们有一个month length: 1。与这些行关联的值是每月值。为了绘制月份的动态范围,我可以通过过滤 month length: 1 并添加计算字段过滤器来将开始日期设置为结束日期范围 [Start Date] >= [Selected Start Date] AND [Start Date] <= [Selected End Date] 来绘制这些月度值。

鉴于此表,即使存在过滤器month length: 1?这里的最终结果将是一行0.4893125

【问题讨论】:

    标签: tableau-api


    【解决方案1】:

    是的,你是对的,你需要使用 LoD。

    如果您需要绕过过滤器,请使用 LoD Fixed,下面的代码 sn-p 将为您提供 month = 3 的数据,尽管过滤器是 month=1。根据您的要求更改代码:

    { FIXED : Max(IF [Month Length] = 3 THEN [A] END)}
    

    编辑---------------------------------------------- ------------------------------------

    { FIXED : 
    Max(
    IF ([Start Date] >= [Selected Start Date] AND 
    [Start Date] <= [Selected End Date]) AND
    [Month Length] = 3 THEN [A] END)}
    

    【讨论】:

    • 嗨 Siva 感谢您的回复 - 如果我想要第 4 行的值怎么办?似乎是一个多标准问题
    • @EvanFriedland 用 4 替换 3,如果它的动态创建一个参数并使用它来代替,它将动态改变
    • 我的意思是第 4 行,而不是第 4 行——我理解。您会注意到第 4 行和第 5 行都具有相同的术语长度 2,开始和结束的日期不同。
    • @EvanFriedland 检查我的编辑,在这种情况下需要月份长度并与开始和结束日期混合。
    猜你喜欢
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多