【发布时间】:2021-03-25 02:21:09
【问题描述】:
我正在创建一个带有“按钮”的 Tableau 仪表板,这些按钮根据特定条件和在过滤器中选择的内容显示为红色或绿色。过滤器只是在不同地区选择不同办公室的一种方式,在选择办公室时,按钮应根据该办公室是否达到不同指标的目标而改变颜色。
Tableau 上的导航按钮无法适应这种情况,因此我进行了解决。对于每个“按钮”,我创建了一个工作表,其中只有标签标记上的度量名称文本和颜色标记上的计算字段。然后,我将工作表添加到仪表板并添加了一个操作,以便在单击“按钮”时转到相应的指标仪表板。
我遇到的问题是这些指标之一的条件着色。该指标基于库存水平。每个办公室都有多个类别的库存类型,每个类别都有一个相应的目标,每个类别中有多个“箱”。如果某个类别的箱子中的任何总库存超过该办公室该类别的目标,我希望该按钮变为红色。
尝试按逻辑输入- 对于当前过滤的数据: IF EXISTS(FOR EACH OFFICE( FOR EACH CATEGORY: [SUM(BinValue)
我尝试将该逻辑转换为计算字段中的 Tableau 函数,并具有以下内容: SUM(INT({INCLUDE [Category]:Min([CategoryTarget])} > {INCLUDE [Category]:SUM(BinValue)}))
当我将办公室名称和类别药丸添加到工作表以测试我的逻辑时,此着色是正确的,但是当我删除药丸时,颜色不正确。当我尝试对所有办事处和目标的目标级别内的类别数量求和时,似乎出了点问题。
我已经尝试了以下功能的多次迭代,并且已经转了好几天: 包含、排除、固定、IF、SUM、INT
如果有人知道如何正确地做到这一点,甚至只是一种能够有条件地为仪表板上的按钮着色的不同方式,我将非常感激。
我的数据结构如下,以一些虚拟数据为例:
| Region | SubRegion | Office | Category | Bin | BinValue | CategoryTarget |
|---|---|---|---|---|---|---|
| North | NorthWest | Manchester | Toys | B123 | 30 | 50 |
| North | NorthWest | Manchester | Toys | B456 | 40 | 50 |
因此,对于 Stock Level 指标,选择所有/North/NorthWest/Manchester 过滤器选项中的任何一个都应标记为红色,因为办公室中一个类别中的垃圾箱总数高于该办公室该类别的目标数量.
我已经更新了我的计算字段,但是我仍然遇到分组正确显示为真/假的问题。 现在是这样的: MAX({INCLUDE Category, Office:Sum(BinValue)} > {INCLUDE Category, Office:MIN(CategoryTarget)} ) True 显示为红色和 False Green(我们希望低于目标,因此是绿色)。
【问题讨论】:
-
欢迎来到 SO。你能分享一下你的数据/数据结构吗?否则请在超市数据上复制您的问题
-
@AnilGoyal - 我添加的数据结构够详细了吗?
-
所以这里的 binsum 是 70 而目标是 50,并且想将玩具涂成红色!我说的对吗?
-
@AnilGoyal 是的,没错!
-
萨曼莎,您能否提供更多数据以供使用!这个问题虽然太罗嗦,但听起来并不难
标签: function logic tableau-api level-of-detail