TABLEAU:如何从多列过滤中创建单个计算字段

TABLEAU: How to create a single calculated field from multiple columns filtering

我是 tableau 的新手,在各种在线帮助论坛中进行了搜索,但未能找到与我的相似的论坛。因此张贴在这里。不确定这是一个相当简单的还是复杂的(如我所想!)

我有 3 列(2 个维度和 1 个度量),我想根据维度列中出现的一些字符串来使用度量列。

设列为 'Event'、'Screen' 和 'Time'

让值如下所示 table(注意:还有许多其他值,但我只需要小写的值,即排除 NULL 和 NAVIGATION)

我想要一个单个计算字段,其结果如下所示的三个步骤:

(2*"name submitted" 在 Event 中出现的次数) - (AVG time of corresponding "name submitted" (来自 Event)* "name submitted" 在 Event 中出现的次数)
+

(2*在事件中出现"address added"的次数) - (相应"Add address"的AVG 时间 (来自 屏幕 )* 事件 中出现 "address added" 的计数)
+

(2*"order created" 在 Event 中出现的次数) - (AVG time [=86] 的相应总和=]+"order detail"+"order confirmation"(来自屏幕)*事件中出现"order created"次的计数)

我的做法:

我已将 EventScreen 维度拖到 筛选器窗格 并选择了所有包括 NAVIGATION AND NULL 的值(因为这些字段对应于我在计算中需要的时间)并且它不太有效!

我还为计算的三个步骤(上面)中的每一个都创建了事件和屏幕的参数,但它也没有用!

那么,实现上述计算的最佳方法是什么?

非常感谢任何帮助。

您可以在计算中考虑过滤器。因此,对于您的第一部分,它可能类似于以下内容:

(2*count(if [Event]='name submitted' then [number of records] end)) - avg(if [Event]='name submitted' then [time] end)*count(if [Event]='name submitted' then [number of records] end)

我不确定你的操作顺序,但你可以根据需要进行调整。对您的其他计算重复此格式。

是这样的吗?请注意,示例数据和您的示例计算之间存在大小写差异(提交的名称与提交的名称),因此您可能需要为此调整以下内容。

(
    (2 * SUM(IIF([Event] = 'Name submitted',1,NULL)))
    - 
    (
        AVG(IIF([Event] = 'Name submitted',[Time],NULL))
        * SUM(IIF([Event] = 'Name submitted',1,NULL))
    )
)

+

(
    (2 * SUM(IIF([Event] = 'Address added',1,NULL)))
    -
    (
        AVG(IIF([Screen] = 'Add address',[Time],NULL))
        * SUM(IIF([Event] = 'Address added',1,NULL))
    )
)

+

(
    (2 * SUM(IIF([Event] = 'order created',1,NULL)))
    -
    (
        AVG(IIF([Screen] = 'orders'
                OR [Screen] = 'order detail'
                OR [Screen] = 'order confirmation'
            ,[Time],NULL))
        * SUM(IIF([Event] = 'order created',1,NULL))
    )
)