首页 > 解决方案 > 如何在 Tableau 中将 5 列合并为 1 个过滤器?

问题描述

我的(简化的)数据结构如下:

在此处输入图像描述

我已经标记了我的用户在过去 7 天、14 天、1 个月、6 个月和 1 年内是否执行了某个操作(1 表示用户执行了该操作,0 表示他没有执行该操作)。我想在 Tableau 中创建一个下拉筛选器,我可以在其中筛选出在过去 7 天、14 天、1 个月、6 个月和 1 年内执行过该操作的用户。我的仪表板顶部将有一个用户总数和一个“操作日期”过滤器。有谁知道我如何在 Tableau 中实现这种过滤器?我相信我必须创建一个参数,但我不确定如何将这 5 列组合成 1 个过滤器。

任何帮助表示赞赏!

标签: tableau-api

解决方案


最简单的解释方法是创建一个参数,允许用户从规定的字符串列表中精确选择一个值,例如“7 天”、“14 天”......等等。您可能还需要其他一些选择例如“时间开始”或“所有用户”。无论你喜欢什么选择。

然后创建一个(布尔)计算字段,该字段表示是否应根据当前参数值包含当前数据记录。就像是

if [My Filter Param] = "7 Days" then
   [7 Days] = 1
elseif [My Filter Param] = "14 Days" then
   [14 Days] = 1
...
else // last one
   [My Filter Param] = "Start of Time"
end

然后将您的计算字段放在过滤器架子上,选择 True 作为过滤器值,应用于任何重要的工作表或数据源,当然还可以显示您的参数控制。

这是一种非常通用的技术,将参数(用于要求用户做出选择)与布尔计算字段(以应用用户选择)和过滤器或其他架子相结合,以将该计算应用于可视化。适用于各种问题。

如果您的数据集很大或很慢,您可以通过几种方式优化性能。比如说在数据中使用布尔字段而不是整数,并使用整数值参数而不是字符串,这样您就可以使用快速 case 语句来替换所有字符串比较(尽管 Tableau 可以优化其中一些比较)如果您确实使用一个整数参数,您仍然可以定义选项以在参数控件中显示有意义的字符串。请参阅编辑参数对话框。

最后,您可以考虑通过调整预处理以生成仅包含两列的数据 - User 和 Date_of_Last_Key_Action ,从而使您的分析和即更灵活一点。然后,您的用户可以使用 Tableau 中的内置日期筛选器控件根据任何时间范围进行查看,例如,如果他们愿意,可以查看过去 13.5 天。在这种情况下,您不需要参数或计算字段。


推荐阅读