【问题标题】:Tableau Calculated Field using FIXED使用 FIXED 的 Tableau 计算字段
【发布时间】:2017-08-05 01:57:35
【问题描述】:

我在 Tableau 中有一个来自 Excel 文件的数据库。数据库中的每一行都是两年内不同主题公园的一张门票(分配给客户的 ID)。

结构如下:

每个ID都可以购买不同公园(或同一公园多次)的门票,也可以购买不同年份的门票。

我不能做的是标记那些在两个不同年份去过同一个公园的客户(在示例中,客户 004 曾在 2016 年和 2017 年去过公园 a)。

如何在 Tableau 中创建此计算字段?

(我设法在 Excel 中使用 sumproduct 函数解决了这个问题,但是数据库有超过 500k 行,过了一段时间它崩溃了/另外我想使用计算字段,以防我用新的公园更新 excel 文件或新年)

理想情况下,我认为输出的结构应该如下所示(但我对不同的观点持开放态度,只要我得到结果):用 1 标记那些在两个不同年份访问过同一个公园的客户.

【问题讨论】:

    标签: excel tableau-api


    【解决方案1】:

    创建一个名为 customer_park_years 的计算字段 =

    { fixed [Customerid], [Park] : countd([year]) }
    

    您可以在过滤器架上使用它来仅包含 customer_park_years >= 2 的数据

    然后,您将能够仅将与访问他们多年访问的特定公园的客户相关的数据可视化。如果您还想查看他们在其他公园的行为,您将不得不调整您的方法,而不是简单地过滤掉其他数据。更改取决于您的问题的详细信息。

    但要回答您的具体问题,这应该是一个简单的方法。

    请注意,对于非常大的数据集,countd() 可能会很慢,但它可以在不重新塑造数据的情况下轻松回答问题,因此它通常是一个很好的折衷方案。

    【讨论】:

      【解决方案2】:

      试试这个!

      IFNULL(str({fixed [Customerid],[Park]:IF  sum(1)>1 then 1 ELSE 0 END}),'0')
      

      【讨论】:

      • 您好,感谢您的回复!该公式似乎有效,但没有显示客户两次去过哪个公园,知道吗?
      • 编辑:公式并不总是有效。在发现一种情况下,一位客户被标记为 1,但它是 0
      • 你能发布测试用例吗?
      猜你喜欢
      • 2020-07-09
      • 2021-10-15
      • 2017-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-25
      相关资源
      最近更新 更多