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 列表永远不会改变,您可以通过以下步骤:
- 连接到 Tableau Desktop 中的 Excel 数据源
- 提取数据
- 将提取发布到 Tableau Server。
- 不要为已发布的摘录授予刷新权限。
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...
因此,我有一个仪表板,其中包含来自特定人群的约 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 列表永远不会改变,您可以通过以下步骤:
- 连接到 Tableau Desktop 中的 Excel 数据源
- 提取数据
- 将提取发布到 Tableau Server。
- 不要为已发布的摘录授予刷新权限。
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...