Tableau 基于静态列表创建布尔维度

Tableau Create Boolean Dimension Based On Static List

因此,我有一个仪表板,其中包含来自特定人群的约 24,000 名客户的列表。我们还有其他一些客户群体,有些是重叠的。一个是约 182,000 个客户数量。我被要求在我原来的 24k 仪表板中识别这些客户中哪些是 182k 人口的成员,哪些不是。我的最终目标是 table 看起来像:

CustomerNumber    MemberOf182k    ABC    XYZ
0000001           Y               123    456
0000002           N               789    012

我的问题是仪表板中的数据是自定义 SQL 查询。它吸引了我约 24k 的人口。 182,000 人口并非来自一个数据源——它来自多个不同的数据源,现在存在于一个 Excel 文件和一份主报告中。

更复杂的是,我们的 Tableau 团队不喜欢在生产中使用 Excel 文件作为数据源,所以我需要弄清楚如何在 Tableau 中创建某种静态列表(也许是维度) 的 182k 客户编号,然后执行计算字段,如:

IF CONTAINS([182kPop],[24kPop])=TRUE THEN 'Y' ELSE 'N' END

有人知道我会怎么做吗?我试着在这个计算字段中粘贴 182k 客户号码的列表,但是,唉,它锁定了我。我希望我可以在 Tableu 中创建某种类型的列表作为参考,因为这个列表永远不会改变,然后在创建新的计算字段时将其用作比较……有什么想法吗?提前致谢!!

创建静态列表通常不是一个好主意(正如您在计算字段中看到的那样)。Tableau 并非为此而生;认为它旨在从数据源中读取。

您可能想向 Tableau 团队澄清他们不愿意将 Excel 文件作为生产中的数据源。我猜想这纯粹是出于刷新困难的原因(即:文件更改位置,可能因使用而被锁定,保存在个人机器上等)因为您的 182k 列表永远不会改变,您可以通过以下步骤:

  1. 连接到 Tableau Desktop 中的 Excel 数据源
  2. 提取数据
  3. 提取发布到 Tableau Server。
    1. 不要为已发布的摘录授予刷新权限。

Tableau Server 不会关心此数据的基础源是 Excel。它只会看到它是 Hyper Extract。

从那里开始,您在组织和混合数据方面仍有一些工作要做。 (此时 Tableau 不支持对 Tableau 数据提取进行跨数据库联接——这在这种情况下是理想的。)只要两者之间有像 ID 这样的公共字段,它就应该可以工作。它可能看起来像这样:

(如果 Tableau 团队甚至担心在 Extract 中与基础 Excel 数据源有联系,您也可以考虑 Tableau Data Extract API。这需要一些编码,但您可以基本上从 Excel 移动到 Python 并直接移动到数据提取中,而不引用 Excel。)

为了显示总 Y 和 N,请执行以下步骤:

是Sheet:

创建以下计算字段:

//[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...

没有 Sheet:

创建以下计算字段:

//[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...