【问题标题】:Tableau Reference Line that avoids the current filter避免当前筛选器的 Tableau 参考线
【发布时间】:2018-05-25 00:44:15
【问题描述】:

我有任务完成或未完成。这些任务与具有开始和结束日期的项目相关联。当任务完成时,它会获得一个完成的时间戳。

我想用从左下角到右上角的参考线显示已完成任务的运行总数图表。我希望这条线的斜率由与项目开始日期和结束日期之间的差异无关的任务总数来定义。

我已成功创建了一条参考线,其斜率由过滤数据的时间跨度内已完成任务的总数定义。换句话说,我的问题是我无法从当前过滤器中省略参考线。

这是我正在寻找的图片: 想象那条蓝线是直的。读取行是我运行的任务完成总数,它们的任务完成时间戳决定了它们沿 x 轴的位置。我想要一条直线来显示假设任务以恒定速度完成的情况下整个项目的进度。

更新

我尝试通过两个点以自定义 sql 脚本的形式将线创建为第二个数据源:

SELECT p.ProjectId, n * COUNT(t.TaskListId) AS Tasks, IIF(n = 0, p.DateStart, p.DateEnd) AS DATE
FROM (VALUES (0),(1)) v(n)
INNER JOIN analysis.Tasks t ON t.ProjectId = t.ProjectId
INNER JOIN analysis.FacilityProject p ON t.ProjectId = p.ProjectId
GROUP BY v.n, p.ProjectId, p.DateStart, p.DateEnd
ORDER BY ProjectId, Tasks

当我将它添加到我的工作表中时,它会使 Tableau Desktop 变慢。我不确定该怎么做,因为它将查询中的列拆分为维度和度量(Date 出现在维度 > 任务计数中,Tasks 出现在度量 > 任务计数中)。我已经尝试将Tasks 放在行和列中,它似乎真的勾选了 Tableau Desktop。

以下计算字段不起作用。我试图理解下面的现有答案,但我正在尝试使用聚合值和非聚合值的混合算术。还有其他想法吗?

【问题讨论】:

    标签: sql sql-server tableau-api


    【解决方案1】:

    Level of Detail expressions 将允许您将计算“修复”到特定维度。此外,LoD 表达式是在 Dimension 或 Measure 过滤器之前计算的。

    您可以使用 FIXED 关键字以及计算应基于的维度。因此,如果您拥有的最不具体的维度是日期(即它是第一个维度),您可以这样做:

    {FIXED [Date] : <aggregation calculation for line> }
    

    【讨论】:

    • 我认为这绝对是我正在寻找的东西!我在这个表达式的右侧遇到了一些麻烦。如果我希望我的线基于恒定的完成率(从左下角到右上角的直线对角线),我该怎么做?就像 Y 值(已完成的任务)与已过去的时间与分配给项目的时间(总)之间的比率相同。
    • @JakeSmith :如果您只想要一条与 X 轴和 Y 轴等距的对角线,呈 45 度角。因此,将其视为两点之间的斜线:(0,0) 和 (max X, max Y)。我认为,LoD 表达式的“右侧”应该是斜率公式?
    • 我知道坡度以及它是如何定义的。我只是无法让 Tableau 帮我在他们的语法中定义它。 Total Tasks / date range 是斜率。我在这里的挣扎是我不知道FIXED [Date] 在做什么,当我输入这个除法/斜率方程时,它给出的错误并不表明我做错了什么。
    • @JakeSmith : FIXED [Date] 仅表示 Tableau 正在计算 [Date] 维度的级别。我会看看我是否可以设计一个通用示例来帮助解释。
    • 太棒了,谢谢。同时,我生成了这个 SQL 脚本,我可以将它作为自定义 SQL 加载到另一个数据源中。还不能完全得到我想要的东西,但这也可能是另一种选择。我会更新我的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2020-05-13
    • 2020-06-28
    相关资源
    最近更新 更多