我有一个我无法弄清楚的基本问题。我需要创建一个具有多个计算字段的表,但我只需要为特定维值过滤一个计算字段。例如,我有以下数据集(虚拟数据),我想创建一个表格,其中包括两家公司的总点击次数,但仅来自一家公司的公司B的[每次点击费用]。
数据集
Company| Clicks| $ Cost
------------------------
Comp A | 100 | $20
Comp B | 200 | $40
我正在寻找什么
CLICKS | COST/CLICK
TOTAL 300 | $0.13
0.13美元来自40/300; B公司40美元,A公司和B公司点击300次。
如何创建一个具有多个计算的表,但其中一个计算仅在一个维度值上进行过滤?
答案 0 :(得分:0)
这应该让你朝着正确的方向前进。 根据您的问题和评论,您希望将费用除以数据集中的总点击次数。
window_sum(sum([Clicks]))
//此公式将汇总所有行的点击字段sum([Cost]) / [TotalClicks]
将成本/点击字段添加到工作表中,它应该如下所示注意:如果您需要对报告进行分区/分组,则可能需要使用此方法。我经常不在tableau中使用窗口函数,因为我通常在数据源级别处理聚合。
注意:由于您提到了过滤,我将添加此声明 - 如果您过滤掉任何数据,那么该数据将不会(不能)包含在任何计算字段中(据我所知和经验,无论如何)。如果您需要包含该数据(总点击次数),我想想唯一的选择是将汇总的总数添加到您的数据集中 - 否则,如果您要将其过滤掉,则表格无法计算。
Edit2:如果您无法更改基础数据集,可以通过创建另一个数据源并将其连接到初始数据源来实现此目的 -
答案 1 :(得分:0)
一个简单的计算字段:
sum(if [Company] = 'B' then [Cost] end )/sum([Click])