本节我们主要介绍Tableau中各主要的功能函数,以及如何利用这些函数在恰当的时机快速地构造出一个新的字段,利用这个新的字段我们可以在创建的可视图中发现更多的信息。
此外,我们还会讲到除了使用功能函数,Tableau中还有一个快速表计算功能,对于度量中的某个字段,我们可以对该字段的计数方式进行设置。对于已经创建好的图表,我们仍可使用快速表计算功能,随时改变图表中某个字段的计数方式,从而在图表中展示我们所想分析的数据。
(1)构造利润率指标——SUM函数
将Tableau连接到“某公司销售数据.xls—全国订单明细.sheet”之后,可以看到原始数据中并没有利润率这一指标数据。怎么办呢?为了解该公司各产品类别的盈利能力,我们可以利用Tableau的公式编辑器构造一个利润指标。步骤如下。
在【维度】和【度量】列表中任意选择某个变量,这里我们选中“销售额”,单击鼠标右键,选择【创建】—【计算字段】,出现如图5-4-1所示对话框。也可以将鼠标移至空白处,单击鼠标右键,选择【创建计算字段】,区别在于出现的对话框中与前者相比,公式编辑框中没有前者所选中的那个变量。
在图5-4-1中,【名称】处可以对该新字段进行命名,其下方是公式编辑框。在公式编辑框下方有一行小字,会时刻显示公式编辑是否正确。右边是函数列表框,有各种各样的函数可供选择。函数列表框右边是对所选中的函数的说明框,当选中某个函数时,框内就会对该函数的功能及如何使用给出说明。
首先,我们在【名称】处写上“利润率”,在公式编辑框中输入:sum([利润额])/sum([销售额]) ,如图5-4-2所示,下方文字显示“计算有效”,单击【确定】按钮。
图5-4-1 创建计算字段窗口
图5-4-2 创建“利润率”计算字段
这时,发现在【度量】下方多了一个“利润率 ”,现在,我们就可以像使用其他字段一样来使用“利润率”了。如图5-4-3所示,将“产品类别”、“利润率”放到如图5-4-3所示位置,即可看到每一种产品类别的利润了,从图中我们很容易发现家具产品的利润率相对于其他两大类产品低了很多。我们还可以单击“产品类别”左边的【+】以钻取到每个产品子类别、每款具体产品的利润率。
图5-4-3 产品类别的利润率视图
为了解各产品类别的订单数及每个订单的利润情况,我们需要进行产品订单数统计。为此,首先连接到数据源,右键单击“产品类别”,选择【创建】—【计算字段】,弹出对话框后,在【名称】处输入“订单数”,鼠标移至公式编辑框中,在函数列表中选中“聚合”函数集,在弹出的下拉列表中双击“COUNT”,在公式编辑框中将公式调整为:COUNT([产品类别]),如图5-4-4所示,单击【确定】按钮。
可以看到,在【度量】下方多了一个“订单数”字段,将“订单数”、“产品类别”、分别拖放于【列】、【行】处,再单击“产品类别”左边的【+】以钻取到“产品子类别”,将“利润额”拖放到【颜色】框中,结果如图5-4-5所示。从图中,可以发现家具产品下的桌子共有364个订单,但利润却为-100,006元,应引起注意。
图5-4-4 创建“订单数”计算字段
图5-4-5 产品子类别订单数的条形图展示
在聚合函数集中,还有其他如 AVG、MAX、MIN、STDEV 等函数,我们在需要时,就可以在公式编辑过程中随时调用这些函数。
产品在顾客下单后,从下单当天到发货出仓,中间有一个反应时间。了解这个反应时间非常重要,这不仅会影响顾客的满意度,还会对公司的产品流转周期造成影响。
现在,我们使用日期函数来构造一个新的字段,不妨称该字段为“订单反应时间”,通过该字段我们可以观察到每个订单从下单到配送需要多少时间,步骤如下。
将Tableau连接到数据源,右键单击【订单日期】,选择【创建】—【计算字段】,弹出对话框后,在函数下拉列表中选中“日期”函数集,在弹出函数列表中,双击“DATEDIFF”函数,右边则会显示对该函数的使用说明,然后在公式编辑框中调整公式为DATEDIFF(“day”,[订单日期],[运送日期]),如图5-4-6所示,单击【确定】按钮。
图5-4-6 创建“订单反应时间”计算字段
现在,我们就可以分析每款产品从下单到配送用了多少时间了。将“订单日期”、“顾客姓名”分别拖放于【列】和【行】,然后双击“订单反应时间”,如图5-4-7所示,图中显示了对各个客户的订单反应时间。我们看到订单反应时间前面是SUM函数,在Tableau中被自动汇总了,我们可以把它改成以最大值方式计算,只需右键单击【文本】框中的“订单反应时间”,选择【度量(总计)】—【最大值】。这里我们选择用甘特图来表示会更合适,单击【智能显示】,选择最下面一行左侧的“甘特图”即可,同时将“订单反应时间”拖放至【大小】框中,将“订单日期”钻取为“年/月/日”的格式,结果如图5-4-8所示。我们可以再把“产品类别”拖放到【颜色】框中,以观察每位客户购买的是属于哪个产品类别。再单击一下工具栏中的【 】对反应时间进行降序排列。最后结果如图5-4-9所示,就样就可以非常直观地看出对每位客户在各类产品上的订单反应时间。
图5-4-7 每位顾客的订单反应时间
图5-4-8 订单反应时间的甘特条形图
图5-4-9 每位客户在各类产品上的订单反应时间
在日期函数集中,还有其他函数如DATEADD、DATENAME、DATEPART、DAY等函数,这里不一一介绍了,我们在用的时候,如果不知道某个函数的功能,只需点击它,然后参阅对该函数的使用说明即可。
在前面,我们构造过一个利润率字段以观察各产品类别的盈利能力情况(见图5-4-3),我们发现家具产品利润率较办公用品、技术产品的利润率低了很多。我们了解到家具产品的运输费是由公司出的,其利润是扣掉运输费之后的利润,而办公用品、技术产品是不用公司出运输费的。因此,在计算家具产品的利润率时,应把其中的运输费包含进来,这样对比三者的利润率或许更有意义。
为此,我们对前面构造过的“利润率”做一个修正,使得在计算家具产品的利润率时使用其利润率加上运输费后再除以销售额,步骤如下。
首先,选中“利润额”,单击右键,选择【创建】—【计算字段】,弹出公式编辑框。现在我们要使用一个逻辑函数来判断,当产品类别为家具产品时,其利润率等于利润额加上运输费再除以销售额,用IF函数来表达就是Sum(IF [产品类别]=“家具产品”THEN [利润额]+[运输费]ELSE [利润额] END)/sum([销售额]),并将名字改为“校正利润率”,如图5-4-10所示,单击【确定】按钮。
图5-4-10 创建“校正利润率”计算字段
选择IF 函数时,只要在函数列表下选择“逻辑”函数集,然后再双击IF函数,或者直接在公式编辑框手动输入亦可,不分大小写。在图5-4-10中,可以看到在公式下方还有一行文字,这行文字是对该公式的一个注释,以便他人理解。若要在公式编辑框里添加文字注释,则需要在文字前输入两条斜线,即“//”。
现在,我们利用校正后的利润率,重新来看一下各类产品的盈利能力情况,并与之前利润率对比,如图5-4-11所示,可以看到校正后的家具产品利润率是有些提升的,但提升不大。
图5-4-11 各类产品校正后盈利能力及与之前利润率对比
同样,在裸机函数集中还有诸如CASE、IFNULL、IIF、ISDATE等函数,这里不做一一介绍了。我们在需要用的时候,若不知某个函数的功能,只须点击它,然后参阅对该函数的使用说明即可。
前面,我们已经介绍了好几种函数功能,并利用它们构造了新的字段来分析和展示数据。在Tableau中有很多种函数,对于不同的函数,操作几乎是一样的,只是功能不同而已,为此,我们不再对每一个函数做详细举例介绍。
现在,我们要利用5.3节中已设置好的一个参数,把该参数插入到函数中来构造一个新的字段。通过该新字段,可以快速地看出当销售额增长一定百分比时,销售额会发生什么样的变化,并且该百分比可以随时改动。操作步骤如下。
右键单击“销售额”,选择【创建】—【计算字段】,弹出公式编辑对话框,将该字段命名为“变化后销售额”,在公式编辑框中输入:sum([销售额])*(1+[销售额增长率]/100),如图5-4-12所示,单击【确定】按钮,而后我们会发现在【度量】下方多了一个度量“变化后销售额”。
图5-4-12 创建“变化后销售额”计算字段
将“订单日期”、“变化后销售额”、“销售额”拖放到如图5-4-13销售额随时间的变化视图所示的位置。并将参数“销售额增长率”的控制器显示出来,只需右键单击“销售额增长率”,选择【显示参数控件】即可。图中蓝线代表增长一定百分比后的销售额,浅红色线带表示原始销售额。当我们滑动右边的“销售额增长率”到不同的百分比时,就可以很清楚地看到两条销售线之间的对比情况了。另外,我们可以对不同颜色线条所代表的销售额做个性化设定,只需双击图形左下方的【度量名称】框内的任一位置,即可实现对颜色的更改。
图5-4-13 销售额随时间的变化视图
恰当利用参数,我们可以做出更具交互感的数据图表。关于对参数的利用,我们在本书后面章节中还会再遇到。
在5.4.1节中,我们介绍了如何使用不同的功能函数来构造新字段,从而在所分析的数据中发现更多信息。然而,有时我们并不希望每一个指标值都用函数去构造,这样将会非常麻烦。并且,有时对于已经用函数构造好的新字段,我们不仅希望看到它的求和值,还想看到它的平均值、最大值、最小值、占总体百分比等。
这一节中,我们要介绍如何使用Tableau的快速表计算迅速计算出某个字段的各种统计值。
首先连接到数据源,分别双击“订单日期”、“销售额”,然后单击【智能显示】,可以看到Tableau自动推荐了一种图形,如图5-4-14所示红线所圈住的图形即为Tableau推荐的图形。被Tableau推荐的图形其边框颜色会突显为蓝色,这也是Tableau一个极其智能的功能,使得其容易使用并且大大提高了工作效率。单击该推荐的图形,即可得到如图5-4-15所示的智能图形。
图5-4-14 智能图形推荐
图5-4-15 智能图形显示
图5-4-15中只展示了销售额随时间变化的序列图。但如果我们想看到每年累积销售额或者年增长率,那该怎么办呢?在公式编辑框中用各种函数构造一个新字段吗?不,这将大大增加工作量。在Tableau中,我们只需右键单击【行】上的“销售额”,弹出列表框,而后将鼠标移至【快速表计算】(或者单击【添加表计算】),弹出下拉列表,其中有很多种计算可供选择,如图5-4-16所示。如果想观察年累积销售额,只须单击【汇总】即可,那么图5-4-15立即变为图5-4-17所示,这时如果仔细看的话,可以发现【行】上的“销售额”右侧有一个“△”符号,即表示原有计算方式被改变了;如果想观察年销售额的增长率情况,那只需在上一步中单击“年同比增长”即可,则结果如图5-4-18所示,一眼就可看出10年、11年增长率都是负的。另外,我们注意到在图右下角显示有一个空缺值,这是因为2009年并没有对比值。
图5-4-16 快速表计算
图5-4-17 快速表计算后的视图
图5-4-18 销售额年同比增长差异视图
在图5-4-18中,我们观察的是销售额年增长率情况,如果我们想看各年相对于2009年的增长情况该怎么办呢?同样,只需右键单击【行】上的“销售额”,弹出下拉表,选择【编辑表计算】,弹出对话框如图5-4-19所示,将对比值选为“第一个”即可。在该对话框中,可以编辑各种我们所想要的计算值。如果想清除之前选择的计算方式,那也只需右键单击【行】上的“销售额”,弹出下拉表,选择【清除表计算】,则回到最初的状态。
图5-4-19 编辑表计算
另外,我们注意到在右键单击【行】上的“销售额”后,弹出的下拉列表中还有一个选项【度量】,在【度量】菜单下还有很多计算方式供我们选择,如图5-4-20所示,如均值、计数、最大(小)值等,如果我们想观察年销售额的均值、计数、最大(小)值等,那只需在此单击相应的选项即可。
图5-4-20 度量值的计算方式
总之,Tableau中的快速表计算是非常实用的。当我们想观察某个字段的某种值时,我们可以先右键单击它,然后在快速表计算中看能否找到相应的计算方式,若可以,则可以大大提高我们的工作效率。在做一般描述性统计分析时,我们可以试着多用快速表计算,有时会有意想不到的结果。