Tableau table 仅筛选 table 中的一列
Tableau table filter for one column only in table
我有一个非常基本的问题,我想不通。我需要创建一个具有多个计算字段的 table,但我只需要为特定维度值过滤其中一个计算字段。例如,我有以下数据集(虚拟数据),我想创建一个 table,其中将包括两家公司的总点击次数,但仅来自一家公司 B 公司的 [每次点击费用]。
数据集
Company| Clicks| $ Cost
------------------------
Comp A | 100 |
Comp B | 200 |
我在找什么
CLICKS | COST/CLICK
TOTAL 300 | [=13=].13
$0.13 来自 40/300; B 公司 40 美元,A 和 B 公司均获得 300 次点击。
如何创建一个 table 具有多个计算但其中一个计算仅在一个维度值上过滤的?
这应该会让您朝着正确的方向前进。
根据您的问题和您的评论,您希望将成本除以数据集中的总点击次数。
- 创建一个名为 "TotalClicks" 的计算字段并输入此公式
window_sum(sum([Clicks]))
// 此公式将对所有行的点击次数字段求和
- 创建一个名为 Cost / Clicks 的计算字段并输入此公式
sum([Cost]) / [TotalClicks]
将成本/点击字段添加到 sheet,它应该如下所示
注意:如果您需要对报告进行分区/分组,您可能需要尝试一下。我不经常在 tableau 中使用 window 函数,因为我通常在数据源级别处理聚合。
注意:由于您提到了过滤,我将添加此声明——如果您过滤掉任何数据,该数据将不会(不能)包含在任何计算字段中(据我所知和经验) , 反正)。如果您需要包含该数据(总点击次数),我 认为 唯一的选择是将该汇总总数添加到您的数据集中 - 否则,如果您正在过滤它,则 tableau 无法计算它出去。
Edit2:如果您无法更改基础数据集,您可以通过创建另一个数据源并将其加入您的初始数据源来完成此操作 --
- 数据 > 添加数据源,再次添加数据源并更改名称以便识别它
- 单击数据 > 编辑关系。单击“自定义”并删除任何链接字段——这实际上会产生笛卡尔连接(第一个数据源中的每条记录都将包含第二个数据源中的每条记录)
- Select 第二个数据源并使用相同的 window_sum 函数
创建计算字段 (ClicksTotal_DS2)
- Select 第一个数据源并使用此公式创建一个计算字段(名为 Cost / Clicks_DS2)
sum([Cost])/ [Sheet1 (test) (2)].[ClicksTotal_DS2]
现在您可以对第一个数据源应用过滤器,第二个数据源仍会计算总数。
一个简单的计算字段:
sum(if [Company] = 'B' then [Cost] end )/sum([Click])
我有一个非常基本的问题,我想不通。我需要创建一个具有多个计算字段的 table,但我只需要为特定维度值过滤其中一个计算字段。例如,我有以下数据集(虚拟数据),我想创建一个 table,其中将包括两家公司的总点击次数,但仅来自一家公司 B 公司的 [每次点击费用]。
数据集
Company| Clicks| $ Cost
------------------------
Comp A | 100 |
Comp B | 200 |
我在找什么
CLICKS | COST/CLICK
TOTAL 300 | [=13=].13
$0.13 来自 40/300; B 公司 40 美元,A 和 B 公司均获得 300 次点击。
如何创建一个 table 具有多个计算但其中一个计算仅在一个维度值上过滤的?
这应该会让您朝着正确的方向前进。 根据您的问题和您的评论,您希望将成本除以数据集中的总点击次数。
- 创建一个名为 "TotalClicks" 的计算字段并输入此公式
window_sum(sum([Clicks]))
// 此公式将对所有行的点击次数字段求和 - 创建一个名为 Cost / Clicks 的计算字段并输入此公式
sum([Cost]) / [TotalClicks]
将成本/点击字段添加到 sheet,它应该如下所示
注意:如果您需要对报告进行分区/分组,您可能需要尝试一下。我不经常在 tableau 中使用 window 函数,因为我通常在数据源级别处理聚合。
注意:由于您提到了过滤,我将添加此声明——如果您过滤掉任何数据,该数据将不会(不能)包含在任何计算字段中(据我所知和经验) , 反正)。如果您需要包含该数据(总点击次数),我 认为 唯一的选择是将该汇总总数添加到您的数据集中 - 否则,如果您正在过滤它,则 tableau 无法计算它出去。
Edit2:如果您无法更改基础数据集,您可以通过创建另一个数据源并将其加入您的初始数据源来完成此操作 --
- 数据 > 添加数据源,再次添加数据源并更改名称以便识别它
- 单击数据 > 编辑关系。单击“自定义”并删除任何链接字段——这实际上会产生笛卡尔连接(第一个数据源中的每条记录都将包含第二个数据源中的每条记录)
- Select 第二个数据源并使用相同的 window_sum 函数 创建计算字段 (ClicksTotal_DS2)
- Select 第一个数据源并使用此公式创建一个计算字段(名为 Cost / Clicks_DS2)
sum([Cost])/ [Sheet1 (test) (2)].[ClicksTotal_DS2]
现在您可以对第一个数据源应用过滤器,第二个数据源仍会计算总数。
一个简单的计算字段:
sum(if [Company] = 'B' then [Cost] end )/sum([Click])