我正在创建一个带有“按钮”的 Tableau 仪表板,这些“按钮”根据特定标准以及在过滤器中选择的内容显示为红色或绿色。过滤器只是在不同地区选择不同办公室的一种方式,在选择办公室时,按钮应根据该办公室是否达到不同指标的目标而改变颜色。
Tableau 上的导航按钮无法适应这种情况,因此我进行了解决。对于每个“按钮”,我创建了一个工作表,其中只有标签标记上的度量名称文本和颜色标记上的计算字段。然后,我将工作表添加到仪表板并添加了一个操作,以在单击“按钮”时转到相应的指标仪表板。
我遇到的问题是这些指标之一的条件着色。该指标基于库存水平。每个办公室都有多个类别的库存类型,每个类别都有一个相应的目标,每个类别中有多个“箱”。如果某个类别的箱子中的任何总库存超过该办公室该类别的目标,我希望按钮变为红色。
尝试按逻辑输入 - 对于当前过滤的数据: IF EXISTS(FOR EACH OFFICE( FOR EACH CATEGORY: [SUM(BinValue)< CategoryTarget])) THEN 'Green' ELSE 'Red'
我试图将该逻辑转换为计算字段中的 Tableau 函数并具有以下内容: SUM(INT({INCLUDE [Category]:Min([CategoryTarget])} > {INCLUDE [Category]:SUM(BinValue)}) )
当我将办公室名称和类别药丸添加到工作表以测试我的逻辑时,这种着色是正确的,但是当我移除药丸时,颜色不正确。当我尝试对所有办公室和目标的目标级别内的类别数量求和时,似乎出了点问题。
我已经尝试了以下函数的多次迭代,并且已经转了好几天:INCLUDE、EXCLUDE、FIXED、IF、SUM、INT
如果有人知道如何正确地做到这一点,甚至只是一种能够有条件地为仪表板上的按钮着色的不同方式,我将非常感激。
我的数据结构如下,以一些虚拟数据为例:
地区 | 子区域 | 办公室 | 类别 | 垃圾桶 | 二进制值 | 类别目标 |
---|---|---|---|---|---|---|
北 | 西北 | 曼彻斯特 | 玩具 | B123 | 30 | 50 |
北 | 西北 | 曼彻斯特 | 玩具 | B456 | 40 | 50 |
因此,对于库存水平指标,选择任何 ALL/North/NorthWest/Manchester 过滤器选项应标记为红色,因为办公室中一个类别中的垃圾箱总数高于该办公室该类别的目标数量。
我已经更新了我的计算字段,但是我仍然遇到分组正确显示为真/假的问题。这就是现在的样子: MAX( {INCLUDE Category, Office:Sum(BinValue)} > {INCLUDE Category, Office:MIN(CategoryTarget)} ) True 显示为红色和 False Green(我们希望低于目标,因此绿色)。