动态颜色格式值 - Tableau

问题描述 投票:0回答:1

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

如果连续增加的值或相同的值与增加值从开始日期,那么值应该是红色。

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

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

如果数值是减少,然后增加,则为黄色。

enter image description here

对于上面的数据,学生值的预期颜色应该是下面的。

学生:Mon,Pat,Henry,Kim 黄色。

杰克,斯坦利-雷德

凯文,伦德尔-格林

我试过下面的代码,但没有达到预期的效果。

如果我错过了任何事情,请纠正。

/绿色 - 连续下降趋势 如果window_sum(if FIRST() = 0 then 0 elseif sum([Value]) < lookup(sum([Value]),-1) then 1 end) = MAX([天数]) then "绿色"

//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
1个回答
0
投票

在不知道你的数据结构的情况下,你可以研究一下表格计算。这可能并不直接,特别是要把 "Compute Using "设置正确,但下面的一些逻辑可能会有用。

计算当天的日差(用表计算就可以了)。

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

接下来对结果进行求和。

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

最后将求和的结果与最大可能数进行比较,如果上升或下降。这个字段可以放在颜色架子上。

我没有测试过这些,但从逻辑的角度来看,你也许可以让这个工作。

根据评论进行编辑。

构建以下的计算字段,它应该可以工作。如果有 "计算使用 "的挑战,你就可以通过计算来排除故障。把【颜色】字段放在颜色架上。

[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
© www.soinside.com 2019 - 2024. All rights reserved.