所以我有如下数据。如果我将状态示例添加为具有以下数据的过滤器,我将只有3个选项可供选择。相反,我正在尝试创建一个只列出所有可用选项的过滤器。
快速编辑:是的我已经考虑使用参数,但是我需要过滤器选择哪些参数不提供。
State
NY
PA
FL
SC
NC
WV
TX
CA
ID | State
1 | PA, NY, FL, SC
2 | CA, WV, PA, NY
3 | NC, SC, TX, FL, NY
第二次编辑:
我没有能力重塑这些数据,因为我需要过滤每列可能的选项数量,(75+至少两个)。这就是我问这个问题的原因。我希望可能有类似于SSRS的解决方案,我可以使用查询B填充我的过滤器,并使用结果过滤回查询A.
答案 0 :(得分:1)
重塑您的数据。单元格中没有重复列表。
在您的示例中,重塑一个数据行,描述状态与ID的每个关联。你应该有13行,每行有一个ID和一个状态。
然后分析将更加直截了当。无论工具如何。您可以阅读有关数据建模,数据库方案设计的更多信息。您的数据违反了第一范式。尽可能尝试达到至少第二范式
答案 1 :(得分:1)
我也有类似的需求。用例是一个唯一的员工列表,其记录每个都包括他们一年中访问过的所有城市的单个链接区域。 (对于访问的每个城市,基础数据都正确地编有不同的记录,但是客户希望有一个特别适合他们的显示视图。)
所以客户想要一个看起来像这样的表:
EMPLOYEE CITIES VISITED
Person A London
Person B London,Paris
Person C Geneva
Person D Geneva,London,Milan
对于客户来说,找到访问过伦敦的所有人的最简单方法是添加通配符搜索过滤器。他们一输入伦敦,就会出现相应的“访问的城市”记录供他们选择。但是,客户希望使用带有可单击的预设城市的过滤器选项(而不是徒手输入城市名称,因为他们不想猜测所有选项是什么,否则可能会出现拼写错误)。
事实证明,使用参数控件执行此操作非常容易,这要归功于Tableau社区论坛(https://community.tableau.com/thread/210796)中的Dave Rawlings!我不是Dave协助的职位的OP,但我很高兴找到它。
1)为过滤器创建唯一选项列表:我删除了基础数据中的重复项,以生成访问过的城市的唯一列表。 (此处的OP仅使用状态列表或状态缩写。)
2)创建一个参数以创建过滤器选项: -在工作表的左下方,创建一个新参数。我称我为“城市”。 -类型为字符串,值选项来自列表。 -将您的唯一选项一一添加到列表中。我还包括一个名为“全部”的选项。 -将“当前值”设置为“全部”。
3)创建一个计算字段以调节参数。我将其命名为“ CityFilter”,并使用此公式将“全部”或所选城市设置为“是”。
If [Cities]="All" THEN "Yes"
ELSEIF FIND([CitiesVisited],[Cities])> 0 THEN "Yes" ELSE "No" END
此处,“城市”是指用户从参数列表中选择的城市,“城市已访问”是指记录中具有多个/逗号分隔值的串联字段。
4)从计算所得的字段中创建一个过滤器:将该字段拖动到要添加到您的过滤器中:将所需的值设置为“是”。
5)将参数显示为工作表过滤器:右键单击参数为“显示参数”。这会将其添加到工作表右侧的过滤器列表中。
6)将参数显示为仪表板过滤器:在仪表板的其中一个视图的右上角,选择“向下”箭头,然后选择“参数”。选择您创建的参数,也将其添加到破折号的过滤器列表中。
提醒,到目前为止,参数仅是单选,因此客户端一次只能过滤到一个城市! Tableau正在开发的多选动态参数着重于跨多个数据源的参数,而不是针对一个字段内的多个值。这是因为从理论上讲这是不好的数据记录。但是,如果像这样的例子可以帮助客户理解和利用数据,我很乐意为您服务。
我希望这能回答OP或任何其他可以为项目使用快速解决方案的人的原始问题!
答案 2 :(得分:0)
我不确定您的数据库设计。通常在数据库中会有一个表格,它将单独包含所有值,这些值将用于您所拥有的情况。
我可以想到一种方式可能有点粗糙但可行。
如果您有权访问数据库,请将state
列放在单独的Excel工作表中。
使用text to columns为所有值创建单独的列,然后将这些列转换为单列。
现在在使用原始数据库的tableau中,然后使用完全连接加入这两者,这将创建一整套所有数据。
现在使用Excel工作表中的列创建一个过滤器。
希望这会有所帮助,但请确保在加入2个数据库时通过QA进行操作