【问题标题】:Dynamic color format values - Tableau动态颜色格式值 - Tableau
【发布时间】:2020-08-10 23:42:42
【问题描述】:

我想在 tableau desktop 中根据以下条件对值(.csv 文件格式)进行颜色格式化。

如果从开始日期开始连续增加值或相同的值增加值,则值应为红色。

如果从 startDate 开始连续减少值,那么值颜色应该是绿色

如果值是从开始日期开始增加然后减少,则为黄色。

如果值减少然后增加然后黄色。

对于上述数据,学生值的预期颜色应低于..

学生:Mon,Pat,Henry,Kim Yellow,

杰克,斯坦利·雷德

凯文,伦德尔-格林

我尝试了下面的代码,但没有按预期工作..

如果我遗漏了任何东西,请更正。

//绿色-连续下降趋势
如果
window_sum(如果 FIRST() = 0 那么 0
elseif sum([Value]) end) = MAX([天数]) 然后是“绿色”

//Yellow - downward and upward trend but not consecutive  

elseif window_sum(if FIRST() = 0 then 0  
elseif sum([Value]) < lookup(sum([Value]),-1) then 1  
end) > 0 and    
window_sum(if FIRST() = 0 then 0  
elseif sum([Value]) < lookup(sum([Value]),-1) then 1  
end) < MAX([Number of Days]) then "Yellow"  

//Red - consecutive upward trend  

elseif  
window_sum(if FIRST() = 0 then 0  
elseif sum([Value]) > lookup(sum([Value]),-1) then 1  
end) = MAX([Number of Days]) then "Red"  
end  

提前感谢您的帮助!!

【问题讨论】:

    标签: tableau-api


    【解决方案1】:

    在不了解您的数据结构的情况下,您可以查看表格计算。这可能并不简单,尤其是要正确设置“计算使用”设置,但以下一些逻辑可能有效。

    计算日间差异(表格计算即可)。

    如果当日差异为正,则为其赋值 1,如果为负,则将其设置为 -1。这将是一个围绕表计算的 IF 语句。

    接下来对结果求和。

    计算有多少个日期,如果每天都在增加或减少,这将提供最大可能的数字。

    最后将求和的结果与可能的最大值进行比较。这个字段可以放在颜色架子上。

    我还没有测试过这些,但从逻辑的角度来看,你也许可以做到这一点。

    基于 cmets 编辑:

    构建以下计算字段,它应该可以工作。如果遇到“计算使用”挑战,您将能够通过 calc 对 calc 进行故障排除。将 [颜色] 字段放在颜色架子上:

    [DailyDiff]: ZN(SUM([Value])) - LOOKUP(ZN(SUM([Value])), -1)
    
    [isUpOrDown]: IF [DailyDiff] >0 THEN 1 ELSEIF [DailyDiff] <0 THEN -1 ELSE 0 END
    
    [TotalUpOrDown]: WINDOW_SUM([isUpOrDown])
    
    [NumDays]: {COUNTD([Date])}-1 //1 less to account for the first day
    
    [Colour]: IF [TotalUpOrDown] = MIN([NumDays]) THEN "Increasing" ELSEIF [TotalUpOrDown]=-MIN([NumDays]) THEN "Decreasing" ELSE "Other" END
    

    【讨论】:

    • 感谢您的即时回复!我已经尝试了下面的计算字段..但是它没有按预期工作!如果我遗漏了任何东西,请更正。
    • 我在主要问题中添加了代码。结构与 Csv.@ 2 维,1 度量值中发布的结构相同。维度:学生,日期,度量值。
    • 编辑后的答案中提供了计算字段
    • [@Andy Colour]: ELSEIF [TotalUpOrDown]=-MIN([NumDays]) THEN "Decreasing" ELSE "Other" END
    • [TotalUpOrDown]=-MIN([NumDays]) 给出错误:Arugument to Min(一个聚合函数已经是一个聚合函数,不能进一步聚合..
    猜你喜欢
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2012-03-06
    • 2014-12-14
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多