因此,我有一个仪表板,该仪表板列出了特定人群中的〜24k客户。我们也有其他一些客户群,有些重叠。一个是约182,000个客户号码。我被要求在我的24k原始仪表板中,确定其中哪些客户是182k人口的成员,而哪些不是。我的最终目标将是一个看起来像这样的表:
CustomerNumber MemberOf182k ABC XYZ
0000001 Y 123 456
0000002 N 789 012
我的问题是仪表板中的数据是自定义SQL查询。它吸引了我约24000的人口。 182k人口不是来自一个数据源,而是来自多个不同的数据源,现在存在于Excel文件和主报告中。
为了进一步使事情复杂化,我们的Tableau团队不喜欢将Excel文件用作生产中的数据源,因此我需要弄清楚如何在Tableau(可能是一个维度)中为182k客户编号创建某种静态列表然后执行一个计算字段,如:
IF CONTAINS([182kPop],[24kPop])=TRUE THEN 'Y' ELSE 'N' END
有人知道我会怎么做吗?我尝试在此计算字段中粘贴一个182k客户编号的列表,但可惜,它锁定了我。我希望我可以在Tableu中创建某种形式的列表作为参考,因为该列表永远不会改变,然后在创建新的计算字段时将其用作比较...。有什么想法吗?在此先感谢!
答案 0 :(得分:1)
通常创建一个静态列表不是一个好主意(就像您在计算字段中看到的那样)。Tableau并非为此而创建;考虑将其设计为从数据源读取。
您可能想与Tableau团队说明他们不愿意将Excel文件作为生产中的数据源。我想这纯粹是出于刷新困难的原因(例如:文件更改位置,可能因使用而被锁定,保存在个人计算机上等)由于您的182k列表从不更改,因此您可以通过完成以下步骤:
Tableau Server不会在乎此数据的基础源是Excel。它只会看到它是一个超级提取。
从那里开始,在组织和混合数据时,您仍然需要做一些工作。 (此时,Tableau不支持在Tableau数据提取上进行跨数据库联接-在这种情况下将是理想的选择。)只要两者之间存在诸如ID之类的公共字段,它就应该起作用。看起来可能像这样:
(如果Tableau团队担心甚至与Extract中的基础Excel数据源相关联,您也可以考虑使用Tableau Data Extract API。这将需要一些编码,但实际上您可以从Excel迁移到Python并直接导入到数据提取中,而无需参考Excel。)
要显示Y和N的总数,请执行以下步骤:
创建以下计算字段:
//[Is in 182k? (Y)]//
IF ATTR([24k ID]) = ATTR([182k].[182k ID]) THEN 1 END
〜
//[WindowSum (Y)]//
If FIRST() = 0 THEN WINDOW_SUM([Is in 182k? (Y)]) END
将它们按如下方式放置在标记卡上:(行或列无任何内容。)
Right Click on [WindowSum (Y)] > Edit Table Calculation...
创建以下计算字段:
//[Is in 182k? (N)]//
IF ATTR([24k ID]) = ATTR([182k].[182k ID]) THEN NULL ELSE 1 END
〜
//[WindowSum (N)]//
If FIRST() = 0 THEN WINDOW_SUM([Is in 182k? (N)]) END
将它们按如下方式放置在标记卡上:(行或列无任何内容。)
Right Click on [WindowSum (N)] > Edit Table Calculation...