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"次的计数)
我的做法:
我已将 Event 和 Screen 维度拖到 筛选器窗格 并选择了所有包括 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))
)
)
我是 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"次的计数)
我的做法:
我已将 Event 和 Screen 维度拖到 筛选器窗格 并选择了所有包括 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))
)
)