tableau各种精典示例经验总结

​ 注意:所有示例中,如果没有特殊注明数据源,则该示例的数据源都是Tableau Desktop软件自带的《示例—超市订单数据源》。

63、制作哑铃图

需求

​ 我们做数据分析时,时间维度的分析必不可少。我们往往纠结于如何把多个维度展现得直观易懂,不至于版面凌乱。这样类似哑铃形状的图表(我们称它为 哑铃图)既美观,又可以很清晰地比较不同年份的数据变化情况。

当然,你也可以让它竖着呈现,看上去就更像 DNA 链图。

设置方法(4步)

1、将“子类别”字段拖至“行区”,“销售额”字段拖至“列区”。“标记卡”中的标记类型修改为“圆”,再将“订单日期”字段(注意:字段格式为单值年格式)拖入“标记卡”中的“颜色”中,完成一个“圆形图”的设计。

2、按住“Ctrl”键,将“列区”中的“总和(销售额)”胶囊再拖一个到“列区”该胶囊的右侧,并在“标记卡”中“总和(销售额)(2)”中将其标记更改为“线”。

3、接着,把维度“订单日期”字段拖进到“总和(销售额)(2)”的“标记卡”的“路径”中(注意当“订单日期”拖进“路径”卡时,由于之前已经有一个“订单日期”在“颜色”卡中了,所以之后的“订单日期”自动调整为“季”,需要手动改为“年”)。

4、在“列区”右键右侧那个“总和(销售额)”胶囊,勾选“双轴—>同步轴”,完成哑铃图的制作。(注意:为了版面美观,可以取消顶部横轴的“显示标题”。)

65、在地图中显示条形图

需求

​ 如例子“37在工具提示中显示条形图”一样,也可以使用同样的设计方法在地图上显示条形图。

设置方法(4步)

1、更改“省/自治区”字段的地理角色为“州/省/市/自治区”,双击“省/自治区”字段,这将在“行区”和“列区”上自动生成“经度”和“纬度”。然后将“标记卡”下的标记下拉框更改为“文本”。

2、地图上的水平条形图:在例子“37在工具提示中显示条形图”中创建了“2.82021年销售柱子字符串”计算字段和“2.92020年销售柱子字符串”计算字段和“3.02019年销售柱子字符串”三个计算字段,将这三个计算字段拖到文本中,并尽量缩小相应的标签尺寸,并将这三个字段赋予不同的三种颜色,这样,地图上有3个横杠柱形图,代表该省2021年和2020年和2019年的销售额大小。

3、地图上的垂直条形图:只需要在第2步的基础上调整文本对齐方式:将文字方向对齐方式设置为向上;将垂直对齐方式设置为底部。

4、地图上的堆叠条形图:对于堆叠条形图,只需将所有标签(三个计算字段)放在同一行上,并将文字方向调整为正常或向上,以获取水平或垂直堆叠条形图。

66、用Lookup函数同时跨行跨列取数(金融行业的M0-M1滚动率)

需求

​ 金融、零售、互联网等行业的用户在做数据分析时,经常需要做同比环比销售额指标的分析。这时候,就要用到 Lookup 函数了。实际上Lookup 函数不仅仅可以跨行或跨列取数,这个函数还可以同时跨固定的行列取数。同时跨固定的行列取数:如下图所示,方框2是从方框1取的数,从方框2原始的位置【20004】到【53448】,从人为的想象和认知第一反应是向左跨了1列,向上跨了1行。

设置方法(7步)

1、首先,我们先来了解一下 Lookup 函数!它其实是可以帮你定位出你要取的数的位置的函数(其中第一个参数expression,用来指定要计算的值;第二个参数offset,用来指定具体位置)。

2、借助Lookup 函数实现跨行或跨列取数:我们先用 Lookup 函数来实现一个简单的计算同比、环比分析:计算2019年或2020年或2021年各地区的同比环比销售额。

3、分别创建两个计算字段:“3.9同比销售额”和“4.0环比销售额”,如下图。

3.9同比销售额:LOOKUP(SUM([销售额]),-12)
//计算销售额的年同比值(即2021年1月销售额相对于2020年1月销售额的同比值)
4.0环比销售额:LOOKUP(SUM([销售额]),-1)
//计算销售额的月环比值(即2021年1月销售额相对于2020年12月销售额的环比值)

4、设置Lookup计算字段“3.9同比销售额”和“4.0环比销售额”的计算依据为“订单日期”字段,如下图;并制作如下图所以的工作簿。

5、下面,我们利用Lookup函数来计算金融行业的M0-M1滚动率,M0-M1滚动率具体定义如下:M0-M1的滚动率=当天进入M1的贷款余额/30天前M0的贷款余额。通俗来讲就是看看30天前M0的贷款余额今天有百分之多少变成了M1。这里,我们将用 Lookup 函数来查看:6月1号的M0-M1的滚动率=6月1号M1的贷款余额/5月2号M0的贷款余额。基础数据结构如下图所示:

6、创建“上月M(n-1)余额”和"M0-M1滚动率 "两个计算字段.

上月M(n-1)余额:LOOKUP(SUM([贷款余额]),-271)
M0-M1滚动率:SUM([贷款余额]) / [上月M(n-1)余额]

7、将“贷款余额”字段及两个计算字段拖至工作表中,这样我们就能在 5月31号M1这一个单元格取到5月1号M0的值990,其他单元格依次类推。同样的,也就能计算出5月31号的滚动率了,其他单元格依次类推。如此,我们就通过 Lookup 函数实现了同时跨行跨列取数。

68、制作连线冲蚀地图(物流路线)且只显示中国地图

需求

​ 通常,物流行业需要知道货物的运输线路,发货与收货地址之间的关系,这时就需要制作物流地图来展示。

设置方法(5步)

1、物流地图需要准备特有的数据形式,物流地图数据源表结构类型如图所示:其中的“国家”,“省份”,“城市”三个字段用于生成地图,“顺序”字段用于城市连接“路径”,“发运线路”字段,定义了每一条连接路径所属类别,用于颜色卡,“发运量权重”字段:用于定义每一条连接线的粗细,用于“大小卡”。

2、打开 Tableau,连接到我们准备好的数据源文件。然后把“国家-省份-城市”三个字段设置为分层结构,并设置对应的地理角色。再然后在 Tableau的“文件—工作簿区域设置—中国(中文)”。这样一来,完整的中国陆地地图就可以全部显示出来了。

3、双击“国家”后,我们发现出现一个中国地图,在工作簿“行区”和“列区”分别出现“维度(自动生成)”和“经度(自动生成)”,然后在“标记卡”中将标记类型更改为“染色地图”,并修改颜色为中国红。再然后把“经度(自动生成)”拖到“列区”既有的经度(自动生成)右边,设置“详细信息”粒度为“城市”,并以“圆”标识,两张地图设置具有对比度的颜色标识。

4、设置“地图—地图层—冲蚀(100%)”,冲蚀出只显示中国地图的地图。

5、对第二张地图进行操作:将“标记卡”中的标识改为“线”标识;“顺序”度量字段拖放至“路径”;“发运线路”维度拖放至“颜色”,并且将同一个城市出发的发运线路颜色改成一模一样;“发运量权重”度量拖放至“大小”,“城市”拖放至“标签”(数据量太多时不建议),删除“详细信息”中的“省份”字段(这一步很重要,不删除省份的话就不会出现物流地图)。再然后将列上的两个“经度(自动生成)”设置“双轴”。就这样,一个连线冲蚀双轴地图就完成了!

需求扩展(单独查看某一个城市发出到其他城市)

​ 有时,会出现我们想要单独查看某一个城市发出到其他城市的情况,尤其是当数据量比较大的时候,如果同时查看全部的发运情况,在地图中会出现重复交错的路径,可视化效果显然不理想

设置方法(3步)

1、创建如下"1.4发货城市参数"(注:这里是将发运城市写进了参数中,并无特殊含义,具体栗子按照实际情况进行参数编写)。创建好参数后,右键该参数,勾选“显示参数”功能按钮。

2、创建计算字段“匹配发货城市”,字段意思表示:若“发运线路”字段的最左边两个字符串与“1.4发货城市参数”的字符串相符,则输出结果为“真”,以数字1表示;否则为“假”,以数字2表示。并将该字段转换为“离散”形式,再转换为“维度”形式。

IIF(LEFT([发运线路],2) = [1.4发货城市参数],1,0)

3、将“匹配发货城市”计算字段拖放至筛选器中,并显示筛选器,勾选1(即城市匹配为“真”),好奇的数据粉也可以试试勾选2(没错,就是排除选择的意思)。将“1.4发货城市参数”参数控件的“发运城市”为北京,可视化效果图如下,如此,就实现单独查看某一个城市发出到其他城市的物料地图:

70、制作环状条形图即跑道图

需求

​ 制作环状条形图(跑道图)

设置方法(4步)

1、先准备数据源,环状条形图需要特殊的数据源结构,如下图所示的数据源表结构:需要注意的是数据中“对数”字段表示的是跑道图的“路径”,“类别”字段表示4个城市。环状条形图的长度主要取决于数据源中“对数”的字段,但是路径长度并非一定是从0~23,视分析需求而定。

2、首先创建“X”和“Y”两个计算字段,这是最重要的一步,设置“X”和“Y”轴能以弧度为单位指定角度,然后创建“达成率”计算字段。

X:    -[类别] * COS([对数] * PI() / 180 + 0.5 * PI())
Y:    [类别] * SIN([对数] * PI() / 180 + 0.5 * PI())
达成率:SUM([实际值]) / SUM([目标值])

3、我们将创建好的“X”,“Y”两个计算字段分别放至“行区”、“列区”中,“城市”字段放入“标记卡”中的“颜色”功能区,标记卡中的标识改成“线”,再将“对数”放进“标记卡”的“路径”功能选项中。这时候变成了直线条型,并不是圆环型线条,为什么呢?仔细观察你会发现现在的线条上的四个点是4个城市X、Y轴聚合后的结果(因为无论是行区还是列区还是标记卡中的度量都是“总和”形式)。

4、取消聚合:点击菜单中的“分析”菜单,里面有一个“聚合度量”是已经“默认勾选的”,我们重新点击一下,把勾选取消,这时候再看图形已经变成了圆环型的线条了。最后把“达成率”和“城市”两个字段放进“标记卡”中的“标签”内显示,后续再调整一下,环条图就出来了。

71、tableau server中实现工作簿的自动刷新

需求

​ Tableau 的企业用户,可能会遇到类似的应用场景:当业务数据迭代频繁或者业务数据分析需实时监控时,我们就要经常在服务器中刷新工作簿。

​ 如果能实现工作簿的自动刷新,绝对是事半功倍的!那么,如何实现呢?码农们的第一反应:这个要写代码做集成吧。其实,写代码做集成也是一种方法。但是,还有另一种方法是:在Tableau server 中进行设置实现工作薄的自动刷新。

设置方法(4步)

1、打开 Tableau,选择连接数据库。

2、选择所需数据模型,点击实时连接,点击立即更新。

3、制做工作表并发布至 Tableau server。

4、用 QQ 浏览器打开 Tableau server (注:因要使用到浏览器自带的自动刷新功能,已测试QQ 浏览器和 360 浏览器是有自带的自动刷新功能的),发布完成后会自动弹出以下界面,点击完成。

5、打开已发布的工作表时会弹出数据库连接凭据窗口。

6、在打开工作表的网页后增加 refresh 参数,即如下后缀&: refresh=yes。

7、在QQ浏览器的右侧菜单栏中依次点击“工具----自动刷新----按需选择刷新频次”即可。

72、用环饼图呈现进度百分比

需求

​ 通常,我们做数据分析时,希望在仪表板上放一个呈现进度百分比的图表,我们经常用来呈现百分比的图表有两种:条形图或环形图(如下图),其中条形图比较简单,直接运用(总销售额和其下属的子类销售额绘制条形图),然后双轴一下就可以了,此处不在多讲述,本次重点讲解用环饼图呈现进度百分比。

设置方法(6步)

1、先创建“2.52021年销售额”和“4.1二一年销售额占比”和“4.2除了21年外的销售额”三个计算字段。

2.52021年销售额:     IF YEAR([订单日期])=2021  THEN [销售额]  END
4.1二一年销售额占比:   SUM([2.52021年销售额]) / SUM([销售额])
4.2除了21年外的销售额: SUM([销售额]) - SUM([2.52021年销售额])

2、首先,在没有执行任何操作的时候,先更改“标记卡”中的图形类型为“饼图”;将 “度量”当中的“度量值”拖入“角度”当中,再将“维度”中的“度量名称”拖入 “颜色”中,然后在“度量值”标记卡中,找到两个我们只需要的字段“2.52021年销售额”和“总和(销售额)”,而将除此之外的其他度量值胶囊全部移除。然后你的画布中会出现这样的饼图图:

3、因为我们需要的是百分比饼图,有颜色的部分应该是逻辑正确数,而没有颜色或者灰色的部分应该是(总量-逻辑正确数)才对。所以我们需要在“度量值”选项卡中,将“4.2除了21年外的销售额”计算字段拖入“度量值”选项卡中,并且将里面的“销售额”字段移除。修改后,界面展示如下的饼图,我们可以观察发现,现在的饼图是合理的,饼图的角度发生了变化。

4、接下来我们要做的是将这个饼图变成环形图,方法请学习“例子4:制作环饼图”,将“1.3最小记录”字段拖入“行区”,然后再一次将“1.3最小记录”字段拖入“行区”,再然后将“行区”中的两个“1.3最小记录”字段的度量设置为“最小值”。

5、右键“行区”中任意一个胶囊,选择“双轴—>同步轴”,然后选择“标记卡”中的“最小(1.3最小记录)(2)”选项卡,移除掉标记卡中的所有胶囊(“度量名称”和“度量值”),再然后调整该饼图圆圈的“大小”,到一个较小的直径,并设置这个环形图圆圈的“颜色”为白色。

6、将我们事先创建好的计算字段“4.1二一年销售额占比”拖入到“标签”选项卡中(注意,第5步的操作都是在针对“最小(1.3最小记录)(2)”这个环形图圆圈进行编辑,确保目前还在该选项卡下),右键该胶囊,以更改它的数字格式为“百分比”样式。这样,我们的百分比环形图就完成啦!

74、运用本福德定律验证数据真实性

需求

​ 本福德定律(本福德法则 Benford’s law ),也称为本福德法则,说明一堆从实际生活得出的数据中,以1为首位数字的数的出现机率约为总数的三成,接近期望值 1/9 的 3 倍。而越大的数值,以它为首几位的数出现的机率就越低。本福德定律对数据工作的价值在于:它可以用于检查数据源是否有问题。当欺诈者伪造数据时,他们或许想不到要去创建符合本福德定律的假数据。在某些情况下,可以运用本福德定律检测伪造数据或者对数据真实性做出验证。

设置方法(8步)

1、下面我们使用 Tableau 自带的“Sample-Superstore”数据源,验证其销售数据。

2、首先,我们需要创建两个必要的计算字段:“首数字”和“本福德定律”。本福德定律说明在b进位制中,以数n起头的数出现的机率为(logb(n + 1) − logb(n)).本福德定律不但适用于个位数字,连多位的数也可用。

首数字:    LEFT(STR([Sales]),1)
本福德定律: LOG(INT([首数字]) + 1) - LOG(INT([首数字]))

3、将“首数字”拖拽到“列区”,将“Sales“字段拖拽到”行区“,并右键将其更改为“快速表计算—>合计百分比”,然后按住“Ctrl键”将“行区”中的“Sales“字段拖入“标记卡”中的“标签”中,现在,我们就可以看到“Sales“字段呈如下的分布形式了,这就说明该字段基本符合本福德定律。

4、接下来,我们可以通过添加引用分布来执行更多操作以精确地查看数据。将“本福德定律”字段拖拽到“详细信息”标记卡中,并更改该胶囊的度量为“最小值”。

5、切换到分析窗格,将“分布区间”拖拽到画布的“单元格”选项中。

6、在编辑对话框中,更改“计算-值”的设置。在“百分比”区域中键入“80,100,120”(这会指定希望区间介于 80% 到 100% 以及 100% 到 120%),并且在“百分比”字段中,选择“最小(本福德定律)”。

7、配置外观:将“标签”设置为“无”、“线”为最细型的可用线、“填充”为“停止指示灯”、勾选“向下填充”;配置完成后点击“确定”。

8、通过上图,我们很容易发现:虽然 Superstore 是系统自带的演示数据,但它也是达到符合本福德定律程度的现实数据。蓝色条表明首数字实际百分比超过视图中显示预期本福德值的 100%(分布在绿色区间的值说明改区间超过预期本福德值的100%,黄色区间则介于80%~100%之间)。

75、参数与计算实现在同一视图切换相同分析维度的图表(类似tab页加全部参数)

需求

​ 实际业务场景中,你可能会遇到类似的分析需求:多组织架构、多业务线的数据分析,希望能在同一个视图中,通过切换图表,可以快速查看不同层级数据的分析结果。例如下图,我们将企业总部设置为“板块”,通过板块的筛选,可以查看总部的数据;将下属子公司设置为“合并单元” ,通过合并单元的筛选,可以查看所有子公司的数据。

​ 与之前的“例子29:利用容器与参数同一视图中tab页切换不同图表”相似,但是也有不同。那么它们之间有什么不同呢?两种方法最根本的区别在于:利用容器的方式,可以实现图表在视图物理位置的切换,与所切换图表的分析维度是否相同无关;利用计算的方式,可以轻松实现不同数据的相同分析维度的分析切换,不再需要制作很多同样分析维度的图表。

设置方法(3步)

1、先创建“1.5类别参数”和“1.6子类别参数”两个参数。创建这两个参数时,将数据类型改为“字符串”,允许的值选择“列表”类型,值列表选择“固定”,点击值列表”空白行”添加“值”为全部(至于全部,原来的超市订单示例中的“类别”列中没有“全部”,这个是人为添加的,好让选择“全部”时展示为所有类别或所有子类别),显示为全部,并依次添加其他类别名称或子类别名称。

2、创建“1.6类别/子类别/产品名称选择”计算字段。

IF [1.5类别参数] = '全部' AND  [1.6子类别参数] != [子类别] THEN [类别]
ELSEIF  [1.5类别参数] = [类别] AND [1.6子类别参数] = '全部' THEN [子类别]
ELSEIF  [1.5类别参数] = [类别] AND [1.6子类别参数] = [子类别] THEN [产品名称]
ELSEIF  [1.5类别参数] = '全部' AND [1.6子类别参数] = [子类别]
THEN [产品名称] END

3、左键双击维度中“1.6类别/子类别/产品名称选择”字段,左键双击度量中“销售额”字段,然后在智能显示里选择饼图。然后右键点击参数中的“1.5类别参数”和“1.6子类别参数”两个参数,勾选“显示参数”功能按钮,再然后将“1.6类别/子类别/产品名称选择”字段拖到“筛选器”中并排除“Null”,如此,我们就轻松完成了一个可切换显示的饼图。

76、蝴蝶图实现数据之间的对比

需求

​ 通常,条形图很适合表达对比关系。然而,如果需要表达两组数据之间的不同之处,蝴蝶图(旋风图类似于“例子33:制作漏斗图”)就有着不可比拟的优势。

设置方法(3步)

1、先创建一个“4.3男性总销售额”和“4.4女性总销售额”和“4.5女性总销售额为负”共三个计算字段。

4.3男性总销售额:    SUM(IF [性别] = '男' THEN [销售额] END)
4.4女性总销售额:    SUM(IF [性别] = '女' THEN [销售额] END)
4.5女性总销售额为负: -[4.4女性总销售额]

2、将“4.5女性总销售额为负”和“4.3男性总销售额”字段拖入“列区”(注意顺序,负数在前,正数在后),然后将“子类别”字段拖入“行区”,再然后分别在两个度量字段“标记卡”的“颜色”功能选项中修改各自的颜色,从而形成对比色 。

3、将“4.4女性总销售额”和“4.3男性总销售额”字段分别拖入“标记卡”中各自的“标签”功能选项中,从而显示各自的标签,再然后右键底部的横坐标轴,取消勾选“显示标题”功能 ,到此蝴蝶图设计制作完成。

另外还有方法二,只是方法二无法同时让男女销售额都显示为正数。

78、制作常用的倾斜图

需求

​ 倾斜图(slopegraph),又名斜线图或斜率图,可以展示单指标不同时期的变化。既能展示值的大小变化,也能同时展示排名的变化。例如下图,我们以“团队名次”为指标查看以下 20 支团队的预测名次与实际名次的变化,左边是预测名次、右边是实际名次。注意:1、其中的颜色表示名次进步或退步(橙红色表示退步,蓝色表示进步,灰色表示没有变化);2、连线的粗细表示差距的多少,线条越粗表示实际名次比预测相差越大。

设置方法(4步)

1、如图所示,为本例子的数据源,数据源表结构很简单,只需要一个“团队”维度字段和“实际完成”及“预计完成”两个度量字段即可。

2、将维度“度量名称”拖放至“列区”,将度量“度量值”拖放至“行区”;将“标记卡”的标记类型改为:“线”。

3、将“度量值卡”中的“计数”胶囊删除。然后,右键单击纵轴,下拉菜单选择:编辑轴。在对话框中,将比例设置为:倒序。

4、将维度“团队”字段拖到“标记卡”中的“详细信息”功能选项中,这时,视图变成如下形式。

5、创建一个“变化量”计算字段。

SUM([实际完成]) - SUM([预计完成])

6、将计算字段“变化量”拖放至“标记卡”的“颜色”选项中,然后将计算字段“变化量”拖放至“标记卡”的“大小”选项中,然后双击该胶囊,在[变化量]前面键入 ABS 函数,取其绝对值。再然后将维度“团队”字段和度量“度量值”分别拖放至“标记卡”的“标签”选项中。

7、单击“标记卡”的“标签”选项,在弹框中单击文本右侧的…按钮。在编辑对话框中,如下设置标签标记。

8、单击“标记卡”中的“标签”选项,将垂直对齐方式改为:“中部”,然后将“标签标记”选为:线末端,勾选三个选项。到此就完成了倾斜图的设计制作。

80、用数据桶实现图表的固定轴距

需求

​ 在创建图表时,如何实现横轴的固定轴距呢?我想知道某个固定范围的数据量多少,也就是需要明确度量的分布范围。例如销售数据的分析中,我们可能需要知道:某固定范围的销售额中的订单数量或客户数量,就需要让销售额轴的轴距是固定相等的。例如下图,我们通过直方图呈现出销售额在02500,25005000……区间的订单数量,代表销售额的横轴的轴距便固定在2500。

设置方法(3步)

1、导入超市订单数据源,右键点击“销售额字段—创建—数据桶”,注意数据桶的功能就相当于是一个维度(如这里创建的“销售额(数据桶),就是将连续的销售额度量变成离散的维度”,另外数据桶中有建议数据桶大小,也可以手动设置数据桶大小。),如图所示。

2、将销售额(数据桶)拖至“行区”,将“订单Id”拖至“列区”,并且选择计数不同。这样就实现横轴的固定轴距,横坐标轴的轴距都是688。

3、在“标记卡”的标记类型中点击标记选择“甘特图”,然后按住”Ctrl键“将”行区“中的“计数(不同)(订单Id)"拖至”标记卡“的”大小“功能选项中。再然后将”销售额“字段拖入”标记卡“中的”颜色“中,修改颜色为”红色-绿色发散“,完成设置,到此用数据桶实现图表的固定轴距设计制作完成。

82、Fixed函数实现环比分析

需求

​ Fixed函数实现销售额月环比分析。

设置方法(4步)

1、首先,我们创建参数控件,利用此控件控制日期。右键单击“订单日期”字段(这样可以不用定义参数的数据类型,且能将“订单日期”字段中的所有值显示在参数的允许的值的列表中),在弹出来的菜单中选择“创建”-“参数”;在弹出的对话框中,将其命名为“1.7订单日期参数”,单击确定。然后右键该参数,在弹出的功能列表中,勾选“显示参数”功能。

2、接下来,创建三个计算字段,分别是“4.6上月销售额”和“4.7销售额月环比”和“1.7日期参数判当年当月”。

4.6上月销售额:        { FIXED [子类别]:SUM(IF DATEDIFF('month',[订单日期],[1.7订单日期参数])=1 THEN [销售额] END)}
4.7销售额月环比:       (SUM([销售额]) - SUM([4.6上月销售额])) / SUM([4.6上月销售额])
1.7日期参数判当年当月:  YEAR([订单日期])=YEAR([1.7订单日期参数]) and MONTH([订单日期])=MONTH([1.7订单日期参数])

3、计算字段创建好了,现在把“度量名称”和”子类别“字段分别拖至”列区“和”行区“,然后将”度量值“拖到”标记卡“的”文本“中,再然后删除”度量值标记卡“下所属的其他度量字段,只保留”4.6上月销售额“和”销售额“和“4.7销售额月环比”三个字段。再然后在边条右键单击“4.7销售额月环比”字段,设置该字段的格式,选择百分比,小数位数可以自由调节。

4、最后一步,把“1.7日期参数判当年当月”字段,拖入筛选器,并再常规选项卡中选择“真”,点击确定。到这,一个环比分析就设置制作完成了。

83、小面积图表显示完整标签

需求

​ 在日常的业务数据分析时,经常会遇到分析图表中的某些图形面积非常小,以至于标签都无法自动显示,会影响数据分析结果呈现的直观性。例如:下面这个显示销售额的堆积图,颜色代表产品子类,面积大小代表销售额大小。可看到,办公用品所在的堆积图有一部分颜色区域的销售额,因为面积大小并没有显示出标签。下面来分享如何将面积较小图表的标签显示出来的方法。

设置方法(3步)

1、首先把“销售额”字段放在“行区”上,“类别”字段放在“列区”上,把“子类别”字段拖到“标记卡”中的“颜色”上,“销售额”字段拖到“标记卡”中的“标签”上。

2、选中没有标签的颜色区域,右击选择“标记标签”中的“始终显示”,就显示了标签。

3、步骤2设置完成后,如果发现有些图表因为面积过小,显示的标签会和其他标签数据挤在一块或超出图表区域。则接下来,选中标签拥挤的图表区域,右击选择“添加注释”中的“标记”,在标记对话框输入标签想要显示的内容,调整边框大小和背景颜色。如此,我们就把面积小的图表的标签都显示出来了。

84、盒须图(K线图)查看数据分布

需求

​ 盒须图又称箱线图,是一种用作显示一组数据分散情况资料的统计图。在各种领域经常被使用,较多用于品质管理。如果你想显示一组数据的分布情况:例如:一目了然地理解数据,查看数据如何向某一段偏斜,查看数据中的异常值。建议使用盒须图,它是显示数据分布情况的重要方式。

​ 盒须图,从名称上可以看出,这种图表包含两个部分:1须、盒:包含数据的中位数,以及第1和第3个四分位数(比中位数分别大、小25%);2、须:一般代表四分位距1.5倍以内的数据(第1和第3个四分位数之间差)。“须”也可以用来显示数据内的最高和最低点。

​ 例如下图:比较住房销售价格。在某一段时间,出售住房的中位价格以旧金山为最高,但洛杉矶的分布情况则更宽。实际上,洛杉矶最贵的住房销售价格数倍于中位数。

设置方法(4步)

1、首先把“销售额”字段放在“行区”上,“类别”字段放在“列区”上,生成一个柱形图。

2、鼠标点击右上角的“智能推荐”按钮,或通过快捷键 Ctrl+1(Mac用户:Command-1),打开“智能推荐”,选择“盒须图”。

3、接着,双击“订单日期”字段,用盒须图来呈现销售额的年度变化趋势,并点击“标记卡”中的“标签”按钮,勾选“显示标记标签”功能。

4、最后,我们通过解读这个图表,来帮助你更好的理解盒须图。通过上面的盒须图,可以大致得出以下数据结果:

2018年 2019年 2020年 2021年
上须 103M 129M 154M 198M
上枢纽 99M 123M 147M 189M
中位数 94M 116M 141M 181M
下枢纽 94M 106M 134M 173M
下须 94M 96M 128M 166M

​ 不难发现:2021年的销售额最大值最高,2018年销售额的最小值最低;2019年的下枢纽接近等于2018年的最大值,2018年的下枢纽最低,中位数最低。

85、比例方式(1:N:M)呈现数据构成

需求

​ 业务数据分析时,我们经常会遇到占比的分析需求,虽然百分比是一种常用的呈现方式,但不一定适用所有的场景。例如,人员构成的分析 或者 配料构成的分析,可能用比例的方式(1:N,或1:N:M)呈现会更加适合。

设置方法

1:N形式的设置方法(3步)

1、下面,我们来设置比例方式(1:N)呈现数据构成,目标:实现“办公类别的销售额” 与“技术类别的销售额”之比。先创建五个计算字段,分别是“4.8办公用品销售额”和“4.9技术销售额”和“5.0家具销售额”和“5.1办公用品:技术”和“5.2办公用品:家具”共五个计算字段(注意:“5.1办公用品:技术”和“5.2办公用品:家具”两个字段这里是实际比值的反比,为后面展示 1:N 做准备,所以前面加了1/ )。

4.8办公用品销售额: IF [类别] = '办公用品' THEN [销售额] END
4.9技术销售额:    IF [类别] = '技术' THEN [销售额] END
5.0家具销售额:    IF [类别] = '家具' THEN [销售额] END
5.1办公用品:技术: 1 / (SUM([4.8办公用品销售额]) / SUM([4.9技术销售额]))
5.2办公用品:家具: 1 / (SUM([4.8办公用品销售额]) / SUM([5.0家具销售额]))

2、接下来,我们把“5.1办公用品:技术”的计算字段拖入“标记卡”下的“文本”中。

3、右键点击“标记卡”下的“5.1办公用品:技术”字段,选择设置格式,选择数字中的自定义,并在格式中,改成如下的形式“1:0.00”(其中需要特别注意的是,这里冒号必须是中文输入法下的冒号,不然 Tableau 会把它视为计算字段进行计算,就达不到想要的效果了)。到此就实现了1:N的比例展示。

1:N:M形式的设置方法(2步)

1、下面,我们来设置比例方式(1:N:M)呈现数据构成,目标:实现“办公类别的销售额” :“技术类别的销售额”:“家具类别的销售额”。在1:N形式的设置方法已经创建了五个计算字段,这里的计算字段和上面的一样,就不再重新创建了。

2、如下图,把计算字段“5.2办公用品:家具”拖入“标记卡”中的“文本”中。点击“标记卡”的“文本”,然后点击“文本”右边的三点按钮,进入编辑标签窗口,按照下图编写格式。

86、ZN函数处理数据缺失点

需求

​ ZN 函数可以用于处理空值,最主要的场景便是趋势分析中的数据缺失处理。另外,也可以处理销售额的加法减法等。例如:要 SUM(销售额),如果其中有一条记录销售额为空,这个结果也会为空,通常用 ZN 处理才能得到正确结果。

​ 日常的数据分析中,你可能经常会遇到这种情况:数据源里面有一些数值是缺失的。例如,下图零售销售数据中,有几个月的数据里没有销售额。有可能当月没有营业,也有可能漏记或确实没有销售额。如果我们做销售趋势分析,这些数据缺失点一定会影响最终的呈现效果。这种情况,该如何处理呢?其实,我们可以用一个函数将缺失的数据当作 0 处理。

设置方法(3步)

1、分别将“销售额”字段和“月份”字段拖入“行区”和“列区”,并将这两个字段拖入“标记卡”的“标签”中。可以看到,数据缺失的月份,折线图是断掉的,因为没有数值与具有空值不同。如果数据缺失点是空值(即NULL),我们可以使用 IFNULL 函数。但实际情况是没有数据,我们就得用到另外一个函数 ZN。

2、在不更改任何数据值的前提下,我们创建一个计算字段“ZN销售额”。

ZN(SUM([销售额]))

3、接着,我们将刚才创建好的“ZN销售额”字段拖到“行区”,就看到一条连续的折线图,与之前的断开的销售额月份趋势形成鲜明对比。

87、购物篮Fixed函数实现客户回购分析

需求

​ 市场营销中,能否抓住回头客以及回头客的多少,都是产品是否能够经受市场考验的具体表现,对于回头客的分析则会直接影响到公司的决策。

​ 其实,我们可以通过一个客户回购的分析(如下图),来查看客户的留存情况,从而反映出客户的整体忠实度。

​ 1、图表中的纵坐标是“第一次购买时间”,我们这里按照季度统计(实际应用中也可以换成年、月、日等);

​ 2、图表中的横坐标是“第二次购买时间-第一次购买时间”,如果这个客户没有发生二次购买(即第二次购买时间的值为NULL),横坐标会出现NULL,它就是一个流失状态。

​ 3、图表中的数字是“二次购买的客户数量”,颜色的深浅代表回购的客户数量多少。

​ 那么,这样一个 客户回购分析 该如何实现呢?这里,我们需要用到 Fixed 函数。

设置方法(3步)

1、先创建四个计算字段,分别是“1.8客户第一次购买日期”和“1.9判断是否第一次购买”和“2.0再次购买日期”和“5.3再次购买日期间隔-季”共4个计算字段。

1.8客户第一次购买日期:  { FIXED [客户 Id] : MIN([订单日期]) }
1.9判断是否第一次购买:  IIF([订单日期] > [1.8客户第一次购买日期],[订单日期],NULL)
2.0再次购买日期:       { FIXED [客户 Id] : MIN([1.9判断是否第一次购买]) }
5.3再次购买日期间隔-季:  DATEDIFF('quarter',[1.8客户第一次购买日期],[2.0再次购买日期])

2、接着,把“5.3再次购买日期间隔-季”和“1.8客户第一次购买日期”分别拖至“列区”和“行区”,右键单击“列区”中的“5.3再次购买日期间隔-季”胶囊并选择“维度”。再次右键点击该字段选择“离散”;右键单击“第一次购买时间”选择第二个季度(即双值季度类型),再选择“离散”。

3、接着把“客户ID”字段拖进“标记卡”中的“颜色”和“文本”,然后选择“度量>计数(不同)”,并在“标记卡”中的“标记类型”内选择“方形”;再然后右键点击横轴上的“ NUl”l 选择“编辑别名”功能将别名改为“流失”,再把工作表调整一下。如此,就完成了这个客户回购分析!

88、制作华夫饼图(直角饼图)

需求

​ 华夫饼图(Waffle Chart)又称为直角饼图,可以直观的呈现完成的百分比情况:共有 100 个格子,每一个格子代表1%。相比传统的饼图,华夫饼图表达的百分比更直观和准确。通常,我们用华夫饼图来比较同类型指标的比例。例如,企业季度销售完成比例的比较、不同电影上座率的比较等等。

设置方法(9步)

1、为方便学习,我们使用 Tableau 自带的“示例-超市”数据,并自己准备了一个“华夫饼图”数据源。因为“百分比”字段的呈现需要做一个 10×10 的表格,所以数据源的“行”字段和“列”字段写成了 1-10,“百分比”字段是准备和“超市数据源”的“利润率”来进行比较,这份数据源对任何华夫饼图都是通用的。

2、打开 Tableau,先连接“示例-超市”数据源,然后新建工作表,再添加 “华夫饼图”数据源。将两个数据源进行“数据混合”操作。此时,我们发现“列”和“行”两个字段因为是数字被默认为“度量”。这里,我们不想对这它们进行任何聚合计算,只想把它们当成“字符串”,因此可以先把“列”和“行”两个字段从“度量”直接拖到“维度”即可。

3、创建一个关于“超市订单”数据源中的“利润率”字段和 “华夫饼图”数据源中的“百分比”字段相关性的计算字段“颜色”,以实现颜色区分(注意:编辑该计算字段时,拖动“利润率”字段时选中“超市订单”数据源,拖动“百分比”字段时选中 “华夫饼图”数据源,这就是使用“数据混合”连接两个不同数据源)。另外,为了让两个数据源能够进行“数据混合”连接操作,还需要在两个数据源中,分别创建相同的计算字段:关联,并且分别拖放至各自的“维度”中,如下图。

[订单 (示例 - 超市)].[利润率] >= SUM([百分比])

4、选择 “华夫饼图”数据源,将维度 “列”字段拖放至“列区”,将维度“行”字段拖放至“行区”,将计算字段“颜色”拖放至“标记卡”中的“颜色”中(注意:因为是“数据混合”操作连接两个不同数据源,所以还需要在“超市订单”数据源中点击“关联”字段右端的图标将其点亮)。

5、将分别右键点击“横、纵坐标轴刻度”,在弹出的功能选项中取消勾选“显示标题”。

6、在“列区”上“列”字段胶囊的右侧,双击会出现一个可编辑计算字段的胶囊,在这个胶囊中键入计算字段:AVG(1),用来调整表格之间的距离。

7、右键单击“行区”上的“行”字段胶囊,在下拉菜单中选择:排序。在弹出的对话框中,选择:降序。然后选中“超市订单”数据源,将度量“利润率”字段拖放至“标记卡”的“详细信息”中,以便在图形上标注百分比。

8、右键单击视图,在下拉菜单中选择“添加注释—>标记”,进入编辑注释窗口,我们可以将不希望显示的内容删掉,只保留我们要显示的“利润率”,并将字体设置大一点。

9、右键单击百分比标记框,进入设置“注释格式”窗格。在这里,对标记框做一些格式设置,将“框”设置为“无”。如此,我们就完成了一个想要的华夫饼图表啦!

90、让图表背景变透明

需求

​ 让图表背景变透明,注:此栗子适用于 Tableau 2018.3 及以上版本,低版本用户请先点击阅读原文下载最新版 Tableau 再学习!

设置方法(3步)

1、先创建一个仪表板,接着,双击仪表板左下方的“图像”,添加自备的背景图片 (注意图片的大小要与仪表板大小相符)。

2、然后,点击仪表板左下方的“平铺”,切换至浮动,将工作表拉进仪表板,调整大小使其铺满整个页面(注意要比图片即仪表板长高更小)。

3、打开顶部的下拉菜单“设置格式”,选择“阴影”,在设置阴影格式中,将工作簿的默认颜色设置为“无”。如此,我们就将图表的背景变透明啦!

91、制作马赛克图表

需求

​ **马赛克图表是帮助战略规划者和决策制定者通盘考虑的商业图表,也称为市场地图或变宽条形图。**它能在单一的、二维的图表中,表现3个层级的数据(如按竞争者、按细分市场分的销售额),因其可以直观、图形化地表现复杂数据和概念的能力,广泛的应用于会议汇报。马赛克图也被数据粉们称为矩阵图、堆叠旋转图、脊柱图、奥林匹克或潜艇图、蒙德里安图,或者简称为 mekko 图。

​ 马赛克图表有许多方法可以定义此图表类型:1、100%堆积柱形图和100%堆叠水平条形图;2、可变宽度堆叠柱形图;3、一种显示两个变量的部分到整体关系的方法;4、一种显示列联表的频率的方法,其中每个显示的单元格的面积和整体成比例。

​ 我们来看一个马赛克图表的实例(如图所示),关于全球大型资产管理公司的分析:不难发现,世界上最大的资产管理公司大多数都集中在美国东北部。在14家管理1t及以上的公司中,有8家位于纽约、波士顿或费城地区。

设置方法(4步)

1、先将维度“省/自治区”字段和“类别”字段拖到“行区”,然后将“省/自治区”字段拖入“筛选器”中,任意选择五个省份。

2、将“度量值”拖到“标记卡”的“文本”中,并将“度量名称”拖到“列区”,在“度量值区域”去除多余的度量字段,保留“销售额”度量字段,并且点击此处“销售额”胶囊右端的下拉箭头,选择“快速表计算—>合计百分比”,然后再拖一次“销售额”字段到“度量值区域”。

3、点击“度量值区域”上进行了“表计算”的“销售额”胶囊,选择“编辑表计算—>计算依据—>特定维度—>勾选类别”。

4、创建两个计算字段,分别是“5.4去除类别影响的销售额”字段和“5.5特殊销售额”字段。

5.4去除类别影响的销售额:  { EXCLUDE  [类别] : SUM([销售额]) }
5.5特殊销售额:          IF FIRST() == 0 THEN MIN([5.4去除类别影响的销售额])ELSEIF MIN([省/自治区]) != LOOKUP(MIN([省/自治区]),-1)THEN PREVIOUS_VALUE(0) + MIN([5.4去除类别影响的销售额])ELSEIF MIN([订单日期]) != LOOKUP(MIN([订单日期]),-1) THEN PREVIOUS_VALUE(0) + MIN([5.4去除类别影响的销售额])ELSE PREVIOUS_VALUE(0) END

5、把“5.4去除类别影响的销售额”字段和“5.5特殊销售额”字段拖入“度量值区域”,然后右击“5.5特殊销售额”字段胶囊,选择“编辑表计算—>计算依据—>特定维度—>勾选省/自治区”。

6、接着,将”列区“中的”度量名称“移除,并将”行区“中的”省/自治区“字段和“类别”字段拖到”标记卡“中的”详细信息“。

7、将“度量值区域”中的计算字段”5.5特殊销售额“拖到”列区“;同时将合计百分比的”销售额“字段拖到”行区“(带有三角号的进行了表计算的销售额),此时,工作表呈现以下散点图。

8、在”标记卡“的类型中选择”条形图“。

9、将”度量值区域“中的“5.4去除类别影响的销售额”字段拖到“标记卡”中的”大小“中,然后在”大小“中选择”固定—>右侧“。

10、将“标记卡”中的”类别“字段的”详细信息“改为”颜色“,再将“类别”字段和“省/自治区”字段拖入“标记卡”中的“标签”中,这样马赛克图表就做好了。

92、制作气泡时间表比较不同类别数据

需求

​ 气泡时间表又称圆圈时间轴,通常用来展示不同类别数据的不连续数值。为方便理解,我们来看示例(下图)。图表展示了 2018-2021年每个季的各地区利润情况:圆点的大小表示利润额的大小、颜色深浅表示销售额的大小。我们可以根据颜色深浅和圆点的大小来比较销售额和利润之间的关系。

设置方法(5步)

1、先把“订单日期”字段拖到“列区”,然后点击胶囊上下拉选择以“双值季度“显示,再然后在”标记卡“的标记类型处选择”线“。

2、重复第一步的操作拖动“订单日期”到“列区”,然后点击胶囊上下拉选择以“双值季度“显示,再然后在”标记卡“的标记类型处选择”圆“。

3、拖动“地区”字段到“行区”,并在“标记卡”中设置第一个“订单日期”的标记线的“路径”格式如图所示为“跳转”。

4、点击“列区”的第二个“订单日期”字段胶囊的下拉三角选择“双轴—>同步轴”,再把“销售额”字段拖到“标记卡”的“全部”区域下的“颜色”中。

5、将“利润”字段拖到“标记卡”中的“第二个订单日期”下的“大小”中,最后,隐藏横坐标轴的标题标记,如此,就完成了一个气泡时间表了。

扩展:气泡时间表与哑铃图的区别

​ 对比之前“例子63制作哑铃图”,我们发现气泡时间表跟我们之前的例子中哑铃图外观很相似。那么,两种图表的区别是什么呢?

​ 1、横轴:哑铃图的横轴是度量(销售额),而气泡时间表的横轴是维度(时间)。2、气泡:哑铃图的气泡一样大小,而气泡时间表的气泡大小不一致。3、颜色:哑铃图的颜色有很多种,而气泡时间表的颜色只有一种。

​ 总结:哑铃图通过不同颜色的气泡所处位置来得出增加或减少的结论;气泡时间表则通过气泡大小和颜色深浅,来比较不同类别数据在不同时间点的关系。

93、用热图标记地图或散点气泡图

​ 通过热图标记,无论是在地图上还是在散点图上,你都可以在几秒钟内了解点的聚集位置并得出数据结论。

需求1(用热图标记地图)

​ 如果区域地图中有多个数据点,想要了解这些标记在何处最为集中,使用热图标记地图非常有效。示例(下图)中,地图上颜色深的红色代表订单比较多的区域,浅色区域订单相对较少。

设置方法(4步)

1、左键双击“城市”字段,就会自动在生成一个地图,将“标记卡”中的“详细信息”下的“省/自治区”字段移除,只保留“国家/地区”和“城市”字段,然后将“订单ID”字段拖拽至“详细信息”里,生成如下地图。

2、在“标记卡”处,将标记类型改为“密度”,这样“散点地图”就被更改为“密度地图”(密度地图通过对重叠的位置进行颜色编码,重叠的数据点越多,颜色的浓度就越深)。

3、这里,如果你觉得系统默认的蓝色热图效果不直观。可以调整颜色。在“标记卡”中选择“颜色”,并从菜单中选择“密度-浅多色彩”,并通过“强度”滑块来改变标记的鲜艳度,比如增加鲜艳度会减少数据中的“最大热度”点,以便显示更多内容。

4、当然,你也可以修改密度的大小来实现最佳可视化效果。在“标记卡”中选择“大小”,可以轻松调整密度核心的大小。

需求2(用热图标记散点气泡图)

​ 如果区域中有多个数据点,想要了解数据标记在何处最为集中,使用热图标记也非常有效。示例(下图)中,每一个点代表一个订单id,颜色越深表示处于这个位置的数据量越大。可以看出:处于“利润值0-4K”和“销售额0-10K”的订单id最多。

设置方法(4步)

1、分别将“销售额”字段和“利润”字段拖入“行区”和“列区”,然后将“订单ID”字段拖拽至“标记卡”的“详细信息”里,生成如下散点气泡图。

2、和上面的地图热图的步骤相同。在“标记卡”处,将标记类型改为“密度”,这样散点图就被更改为密度图(密度图通过对重叠的位置进行颜色编码,重叠的数据点越多,颜色的浓度就越深)。

3、和上面的地图热图的步骤相同。从“标记卡”中选择“颜色”,并从菜单中选择“密度-浅多色彩”,并通过“强度”滑块来改变标记的鲜艳度,比如增加鲜艳度会减少数据中的“最大热度”点,以便显示更多内容。

4、和上面的地图热图的步骤相同。从“标记卡”中选择“大小”,来调整密度核心的大小。

98、使用数据混合批量修改字段值

需求

​ 实际分析场景中,你可能会遇到这样的问题:如何批量改变数据源中某一字段的所有值?通常的解决方法是使用数据融合,但解决问题的同时会伴随着一些缺点,例如:1、数据融合会影响整体的性能,在融合过程中会建立临时表,增加计算压力;2、过多的数据融合会造成后续维护的困难,需要去了解各个辅助表的作用以及实现的方式。

​ 那么,如何扬长避短,轻松的实现批量修改字段值呢?我的建议:用辅助表,用完不需要长期保留,删掉即可。如下图,一开始只是用数字对省份进行编码,但后面觉得使用简称加代码会更具有描述性和代表性,于是就想把“图1”里的代码一列的值换成“图2” 里省份代码对应的值。这个效果可以通过使用另一个数据源中的字段值为数据源中的值重新指定别名实现。

设置方法(5步)

1、首先,将原来的数据源设置为主数据源(从主数据源拖一个字段进入视图即可)。例如,我们把“代码”拖入“行区”,可以看到左上角位置的主数据源图标的左下角出现蓝色的 ✓号。

2、接着,点击辅助数据源“省/自治区”字段右侧的连接图标至“红色”,从而达到“数据混合”操作(注意数据混合操作时,两个数据源表结构必须含有名称一模一样的字段来充当两个数据源的连接字段)的效果来建立和主数据源之间的连接,此时可以看到左上角位置的辅数据源图标的左下角出现橙红色的 ✓号。;并且将辅助数据源的“省份代码”字段拖入“行区”。

3、选中“省份代码”字段胶囊,点击下拉三角,选择“编辑主要别名”功能按钮。

4、可以看到“有别名”下面有一列“星号”,“星号”表明数据源具有对应的别名值(注意如果“有别名”下未显示星号,则要么是辅助数据源没有对应的别名来匹配主数据源中的字段值,要么是主数据源中的多个字段值在辅助数据源中具有相同别名。在这种情况下,无法使用辅助数据源中的数据为主数据源中的字段值指定别名)。单击“确定按钮”,则“省份代码”字段的值便替换了“代码”字段的值。

5、最后,删除辅助数据源:选中辅助数据源、右键、选择关闭。然后回到数据源界面,最终得到如下图效果:主数据源“代码”字段对应的一列值由数字替换成我们想要的含省份简称的代码。

99、创建主组解决数据融合的性能问题(数据混合)

需求

​ 实际分析场景中,你可能遇到过以下情况:同时连接多个不同数据源,费时费力;业务底层数据的各种差异,越理越乱;每增加一个需求,就要额外添加一个数据源,让原本轻量的工作薄变臃肿迟缓。

​ 多数情况下,企业数仓的建设通常采取“先污染,后治理”的原则,让原本很容易提取到的数据,不得不通过融合多个数据源才能得到。当我们只需要新增数据源当中的某一个列的数据时,却不得不链接一个表,甚至一个库,这样的做法拖慢整个仪表板呈现的性能。今天就让我们用创建主组的方式,减少数据源个数,从而为打包工作薄瘦身,跟以上的情况说拜拜~

​ 例子中使用两个数据源: Tableau 自带的“超市订单”数据源和“主组销售目标”数据源(如下图)。其中“主组销售目标”数据源,只包含省份信息和各省对应的目标值数据。我们假设这样的场景:当你作为一名超市分析师,你可能更看重自己所在超市或区域的销售目标。而关联省份和区域或市场的信息,则是在“示例-超市订单”中的数据源中体现的。遇到类似的情况,我们可以创建一个主组,仅将副数据源中您需要的字段并入主数据源,然后关掉辅助数据源。在本例子中,我们设定“主组销售目标”数据源为主数据源,因为包含我们最重要的目标值的度量信息。而“超市订单”数据源则作为辅助数据源,仅提供地区与各省份的对应关系。

设置方法(4步)

1、打开 Tableau ,连接“超市订单”数据源和“主组销售目标”数据源。然后,将“主组销售目标”数据源下的维度字段“省/自治区”字段拖动到“行区”上,作为视图中的第一个字段,此时 Tableau会默认将“主组销售目标”数据源作为该工作表的主数据源。可以看到左上角位置的该数据源图标的左下角出现蓝色的 ✓号。

2、接着,点击“超市订单”数据源中的“省/自治区”字段右侧的连接图标至“红色”,从而达到“数据混合”操作(注意数据混合操作时,两个数据源表结构必须含有名称一模一样的字段来充当两个数据源的连接字段)的效果来建立和主数据源之间的连接,此时可以看到左上角位置的辅数据源图标的左下角出现橙红色的 ✓号。;并且将“超市订单”数据源中的“地区”字段拖入“行区”,放在“省/自治区”字段前面。

3、右键单击“行区”中的“地区”字段,并选择“创建主组”。 省份就会自动分配到一个区域中,然后单击“确定”关闭“编辑组”对话框。

4、在“数据”窗格中,选择“主组销售目标”数据源。你可以看到一个新的组字段列在 “主组销售目标”数据源(主数据源)中,名为“省/自治区(组)”,然后将“省/自治区(组)”维度拖到“行区”并将“行区”上的“地区”维度胶囊移除,再然后将“目标值”度量拖到“列区”。现在就完成了通过创建主组解决数据融合的性能问题(不需要连接“超市订单”数据源也能使用原本只有“超市订单”数据源才有的“地区”字段(即使用了“省/自治区(组)替换了地区字段,提升了数据质量,报表性能”))。

101、设置用户筛选器分角色查看数据

需求

​ Tableau 注重帮助每一个用户去看到和理解数据,并从中发现问题,鼓励用户不断对数据进行探索和发现。利用功能强大的 Tableau Server 可以实现工作簿共享,让组织中的每个人都可以查看分享数据。组织中不同的角色和职位,负责不同的区域和业务。如何让工作簿仅展示用户业务内的视图呢?例如,对于下面这个各类别商品在 2021年每个月份的利润变化情况表。图中有六个地区的数据,是否可以实现各地区经理打开视图的时候,只能看到自己地区的利润情况?这就需要我们通过设置用户筛选器来实现。

设置方法

场景一:当没有独立的权限对应表时,则直接创建用户筛选器(6步)

1、打开Tableau中的上述报表,依次选择“服务器—>创建用户筛选器—>地区”,打开“用户筛选器”对话框。

2、报表发布后,修改名称为“地区筛选器”。根据地区经理所负责的区域,在右侧的窗口中进行设置。已经设置了区域的用户,在名字后面会有“√”。

3、经历过第2步后,在Tableau中就会出现“地区筛选器集”,我们将这个集添加到报表“筛选器”中,并设置该筛选器为“添加到上下文”筛选器(注意:“上下文筛选器”都是灰色的胶囊;如果已经默认是“上下文筛选器”,则不需要再设置为上下文筛选器)。

4、预览用户视图。在窗口的右下方,选择人员,就能预览该用户的视图。例如选择“peixun”,视图就只显示"东北"地区2021年利润数据。

5、编辑用户筛选器。创建用户筛选器后,系统自动创建了“地区筛选器集”,这也就意味着可以通过编辑集的方式对筛选器进行编辑、更改。右击“地区筛选器集”,然后选择编辑集。

6、发布带有用户筛选器的视图。在“当用户执行以下操作时生成缩略图”下拉列表中选着一个用户或一个组,然后点击发布。没有设置内容的用户,在 Tableau Server 上将显示空白。

场景二:若有权限对应表时,则使用数据源中的用户列表进行筛选(3步)

1、例子中,数据源中的“销售人员”sheet页中的“地区经理”字段就是 Tableau Server 中的用户名,我们还可以基于字段中的用户名创建筛选器。先让“销售人员”sheet页数据源与“超市订单”数据源通过“地区”字段进行“内联接”。

2、创建一个“2.3判断用户名”的计算字段(注意:这里,你也可以使用函数USERNAME( )。这两个函数用法基本一致,一个返回用户全名,一个返回用户名,均适用于这个场景)。

[地区经理] = FULLNAME()

3、将新建的字段添加到筛选器中,在筛选器设置里选择“真”。最后,完成发布到服务器的操作。

102、制作新年日历(4个工作簿组合成仪表板)

需求

​ 利用如下数据源制作新年日历。

设置方法

一、创建日历台头工作簿(3步)

1、创建“年份”计算字段,用于提取日期中的年。

YEAR([日期])

2、然后,更改刚刚创建的“年份”计算字段的数据类型为“日期”格式;再然后,将“年份”维度字段拖动到文本标记中;再然后,设置文本格式(如下图):

3、右键文本标记中的“年份”字段,选择“设置格式按钮”,然后将阴影格式中默认值设置为“无”。如此便完成日历台头的设置。

二、创建日历月份工作簿(4步)

1、创建“月份”计算字段,用于提取日期中的月,并创建“月份%3”计算字段代表季度,并将这两个计算字段转换为“维度”。

月份:    MONTH([日期])
月份%3:   MONTH([日期]) % 3

2、将维度中的计算字段“月份%3”拖到“列区”。然后,右键“月份%3”点击排序,选择手动排序,将0置于最下层,再然后将“日期”维度拖动到“行区”,右键“日期”字段胶囊,选择离散的“单值季度”。

3、将“日期”维度字段拖动到“标记卡”中的文本中,右键该胶囊,选择格式为“离散的单值月”。右键月(日期),选择“设置格式按钮”将“区格式”中的日期格式设置为数字。

4、然后,点击阴影下拉到行分级,将区格式设置为无(清楚表格中单双相间的阴影);最后,编辑标签的字体和大小,调整后的效果如下,如此便完成了日历月份的设置。

三、创建日历具体日工作簿(3步)

1、创建“周索引”计算字段,并创建“天”计算字段。

周索引: WEEK([日期]) - { FIXED MONTH([日期]) : MIN(WEEK([日期])) }
天:    IIF(ISNULL([日期 (节假日)]),DATENAME('day',[日期]),[节日])

2、将维度中的计算字段“月份%3”拖到“列区”。然后,右键“月份%3”点击排序,选择手动排序,将0置于最下层,再然后将“日期”维度拖动到“行区”,右键“日期”字段胶囊,选择离散的“单值季度”。再然后将“日期”维度拖动到“列区”,右键“日期”字段胶囊,选择离散的“单值工作日”。再然后将“周索引”计算字段拖入“行区”。再然后将计算字段“天”拖到“标记卡”中的“标签”。再然后将“日期”拖到标记中的颜色,设置为“连续的天”。将“标记卡”中的“标记类型”从自动更改为“方形”。点击“颜色”选框设置不透明度为“80%”。最后右键“行区”中的“工作日(日期)"胶囊,设置格式,将默认值中的日期格式改为第一个字母,并将字体设置为白色。如下图:

3、最后,通过“设置边界格式”调整整体格式如下图所示。

四、创建日历的日范围工作簿(3步)

1、将“日期”字段拖动到“列区”,选择属性为“连续,双值天”,然后将“日期”字段拖动到“标记卡”中的“标签”中,也是选择属性为“连续,双值天”,再然后将“标记卡”中的标记类型设置为“条形图”,再然后右键编辑轴,范围选择固定:2019年1月1日- 2019年12月31日。

2、通过“设置格式”调整整体格式如下。如此便完成了日范围工作簿的设置。

五、4个工作簿组合成仪表板(3步)

1、创建“新年日历”仪表板,并自定义报表大小为“1600 x 900”。然后拖入一个垂直对象到面板,将“日范围工作簿”拖入其中,在左侧“布局”中设置其“外边距”;右键面板中的“日范围工作簿”,去除标题显示后,勾选固定高度并编辑高度,最后选择适合整个视图。

2、将“月份工作簿”拖至下方后,右键隐藏标题,最后选择适合整个视图。

3、将“具体日工作簿”拖到面板中,并将排版方式改选为“浮动”后,右键隐藏标题,并在右侧布局中将背景色设置为黑色(透明度70%),坐标位置如下图:

4、将“台头工作簿”拖动到面板中,并将排版方式改选为“浮动”后,右键隐藏标题,选择上排中间的位置放置即可。

103、只筛选视图而不筛选数据

需求

​ 当我们在 Tableau 中使用筛选器时,维度筛选器会筛选出原始数据以及视图中的数据。但有些时候,我们并不希望视图中的数据发生改变,尤其在计算总和百分、计算总体排名、移动平均或运行总和的场景中。例如:下面的分析视图,我们对产品子类别按销售额进行了排序。注意看办公用品类别中“器具”的排名,在所有商品中,它的销售额排第2名(如下图)。

​ 接着,我们想看看办公用品下子类别的具体排名,用右侧筛选器只选中“办公用品”。此时,会发现‘器具’的排名由刚刚的第2名变成了第1名(如下图)。这显然不是我们想要的!

​ 按照业务需求,我们希望:即使筛选不同类别,子类别的排序结果仍然保持它原有的排序(如下图),而不会因为筛选就改变既定的排序。

​ 下面我们就来实现:只筛选视图而不筛选数据。注意:这里涉及到一个表计算的知识点——基于表计算的筛选器不会筛选原始数据。会在视图中隐藏数据,并允许在视图中隐藏维度成员,不影响视图中的数据。

设置方法(3步)

1、先将“子类别”字段拖入“列区”,再将“销售额”字段拖入“行区”,设置“子类别”字段依据“销售额”字段“降序”排序,然后将“例3”所创建的“1.1序号”拖入“行区”,并将其数据类型更改为“离散”,然后移动到“子类别”字段前面。

2、再创建一个“6.7特殊类别筛选”计算字段,该函数会返回目标行中表达式的值,0是指定为与当前行的相对偏移为0,将该字段拖到筛选器,显示筛选器,并进行筛选。

LOOKUP(MAX([类别]),0)

3、结果,每一个子类别只有一个排名,不会因为筛选了类别而重新获得名次。基于表计算的筛选器不会筛选出基础数据,而是会在视图中隐藏数据,并允许在视图中隐藏维度成员,而不影响视图中的数据。至此,只筛选视图而不筛选数据的工作簿就制作完成了。

104、使用合并字段调整堆叠柱形图排序

需求

​ 实际分析场景中,当我们完成堆叠柱形图时,Tableau 通常会默认:按照相同的颜色顺序堆叠每个柱形(如下图所示)。然而,这样的呈现方式,有时候会影响我们了解每一个柱形中、不同类别的销售额大小情况。但是,如果想让每个柱形的堆叠条形按照销售额大小排序,而不是按照颜色排序。该如何实现呢?方法其实不难,试试合并字段吧!

设置方法(4步)

1、先将“地区”字段拖入“列区”,再将“销售额”字段拖入“行区”,设置“地区”字段依据“销售额”字段“降序”排序,然后将“类别”字段拖入“标记卡”中的颜色中。

2、在维度窗格按住Ctrl键选中类别和地区,右击创建合并字段,就会自动生成一个“地区和类别(已合并)”字段,这个字段中的地区和类别采用“,”进行隔开。然后将创建的“地区和类别(已合并)”字段拖至“标记卡”中的“详细信息”。

3、右键“标记卡”中的“详细信息”中的“地区和类别(已合并)”字段,设置该字段依据“销售额”字段“降序”排序。然后将“标记卡颜色”中的“类别”字段变成“属性”(这一步特别重要,不能缺少,缺少了达不到效果)。此时,三个堆叠柱形的条形就实现“按照销售额大小降序排序”的呈现效果了。

4、实际应用中,如果堆叠柱形图有很多个柱形。我们还可以利用突出显示功能,一目了然的查看具体类别在每一个柱形的位置情况。

105、用四象限图对数据进行分类分析(参考线)

需求

​ 四象限图是对数据进行分类分析的常见方法,利用水平和垂直分割线将图表区域分为四个象限,利用散点图的呈现方式,让每个象限的数据表现有所不同,从而快速找到具有共同特征或属性的项集。

设置方法(4步)

1、先将“折扣”字段拖入“列区”,并将其修改为“平均值”,再将“利润率”字段拖入“行区”,分别点击“横/纵坐标”,设置“轴格式”为百分数,然后将“订单日期”字段拖入“标记卡”中的“详细信息”中,并将其设置为“连续的双值月”,完成散点图的制作。

2、分别右键“横纵坐标轴”,在弹出的功能中选择“编辑轴-去掉包括零选项”。

3、将左侧窗口由“数据切换为分析”,然后向视图中添加两条常量线:折扣轴上常量线设置为0.11,利润率轴上的常量线设置为0.13。

4、创建“6.8象限颜色”计算字段,并将该字段放入“标记卡”中的“颜色”中。如此,我们在 Tableau 中实现了四象限图表。代表数据的圆点根据它的表现不同,分落在不同的象限,并且颜色让图表看上去更直观。

IF [利润率] > 0.13 and AVG([折扣]) >= 0.11 THEN 'A'
ELSEIF [利润率] > 0.13 and AVG([折扣]) < 0.11 THEN 'B'
ELSEIF [利润率] <= 0.13 and AVG([折扣]) < 0.11 THEN 'C'
ELSE 'D' END

109、用LOD计算产品销售周期

需求

​ 需求:计算单品在各销售节点与最初销售日期的时间差。这个业务需求对研究商流的数据粉朋友们来说是一个很重要的需求。下面我们采用LOD计算来计算产品销售周期。

设置方法(4步)

1、先创建一个“6.9销售间隔天数”计算字段,“6.9销售间隔天数”计算字段表示“从第 2 个订单日期开始,各订单日期节点分别与最开始的订单日期(最小日期)之差”,从第 1 天开始显示。

DATEDIFF('day',{ FIXED [产品名称]: MIN([订单日期])},[订单日期]) + 1

2、将“订单日期”拖至“列区”,将“销售额”拖至“行区”,并把“订单日期”字段的粒度设置为“连续的双值天”,然后把“子类别”和“产品名称”分别拖至“筛选器”,并设置“显示筛选器”;例子是按“子类别(器具)”和“产品名称(Cuisinart 搅拌机,白色)为示例的。再然后将”标记卡“中的”标记类型“设置为”线“,如下图呈现所示。

3、为确保工作表美观、且让销售天数标签只展示一次,这里对视图做双轴处理。复制“行区”中的“销售额”胶囊,拖至原有“销售额”胶囊的右侧。第一个轴视图以“线”展示,第二个轴视图以“圆”展示,右键在右边“销售额”字段,选择“双轴—>同步轴”并隐藏标题,并调整视图格式。

4、切换至“标记卡”中的“总和(销售额)(2)”视图下,把“6.9销售间隔天数”计算字段拖至“标签”,编辑修改标签显示为“第<总和(销售天数)>天”。完成之后,会发现图表的呈现效果更直观了,到此,就完成了计算产品销售周期的需求。

5、实际业务中,可能存在单个值对应多个产品名称销售天数合计的情况(虽然例子中并未体现,但实际业务中应该会经常遇到),这里我们只需要做一步操作即可:“分析—取消聚合度量”。如此,多个产品名称对应的值便会分散显示啦!

110、运用数据桶实现正态分布

需求

​ 正态分布,也称“常态分布”,又名高斯分布。正态分布是统计学中一个重要的概率分布方法,在数学、物理及工程等多领域有着广泛的应用场景。日常分析工作中,我们对企业业务进行数据分析时,常常需要监测数据的分布情况。让数据实现正态分布是很有效的监测方式。正态分布图表横轴上一定区间的面积反映该区间的例数占总例数的百分比,或变量值落在该区间的概率分布。

设置方法(4步)

1、先创建了一个“7.0正态分布”计算字段。

([利润] - {FIXED : AVG([利润])}) / {FIXED  : STDEV([利润])}

2、将”例子4制作环饼图“所创建的”1.3最小记录“计算字段和“7.0正态分布”计算字段分别拖入”行区“和”列区“,然后右键”列区“中的“7.0正态分布”胶囊,选择”维度—>离散“,再然后将”1.3最小记录“计算字段拖入”标记卡“中的”详细信息“中。

3、右键“7.0正态分布”计算字段,弹出的功能选项中选择“创建—>数据桶—>设置数据桶大小(大小可以依据实际情况进行调整)”。

4、将“7.0正态分布(数据桶)”拖入“列区”,替换移除“列区”中原本的“7.0正态分布”计算字段。到此,正态分布图表就制作完成了。

111、制作目标与实际对比滑珠图

需求

​ 很多时候,我们需要通过实际值与目标值的对比,来了解工作进度情况,最常用的呈现方式有如“例子30时间趋势图中的双柱图和折线图的组合图”和“例子32目标与实际值对比标靶图”,其实,还有一种简洁的方法可以实现数据的对比分析,它就是滑珠图(如下图所示);从图例可以看出,滑珠图是条形与散点的组合图表,用圆点在条形图上的不同位置表示实际数值的大小。

设置方法(3步)

1、将”销售额“字段和“销售额目标”字段拖入”列区“(注意:实际在前,目标在后,即“销售额”字段在前,“销售额目标”在后),再将“子类别”字段拖入”列区“。

2、在“标记卡”中的“销售额”栏目下,将“标记类型”更改为“圆”,然后在该栏目的“大小”中调整“圆”的大小,在“颜色”中将其更改为“橙色”。

3、右键“列区”中的“销售额目标”胶囊,选择“双轴—>同步轴”,然后在“标记卡”中的“销售额目标”栏目下,将“标记类型”更改为“条形图”,然后在该栏目的“颜色”中调整其“不透明度为60%”。到此,目标与实际对比滑珠图就制作完成了。

112、用轨迹地图分析路径数据

需求

​ 现代交通和物流的快速发展,当我们需要分析路径数据时,轨迹图是个很好的呈现方式。在 Tableau 中,可以利用经纬度数据来实现轨迹图。现在,我们将使用一份骑车旅游路线数据,为大家示范:如何在 Tableau 中实现轨迹地图(如下图)。

设置方法(4步)

1、用轨迹地图分析路径数据需要比较特殊的数据源,这要求数据源中的每个地理位置都有其对应的实际经纬度。如下图所示:

2、数据源导入Tableau后,将“度量”中的“纬度”、“经度”两个字段分别设置为地理角色中的“纬度”和“经度”,然后将这两个字段及“顺序”字段共三个字段转换为“维度”类型。再然后将“纬度”和“经度”字段分别拖入“行区”和“列区”(也可以直接双击这两个字段),这样就生成了一个地图。

3、在“列区”中复制一个“经度”胶囊,图表中出现了两个相同的地图。在“标记卡”中把“左边地图”的标记类型修改为“线”,然后把“顺序”字段放到该“标记卡”的“路径”中,并把“骑行路线”字段拖至到该“标记卡”的“颜色”中。

4、设置“双轴”,并在“标记卡”中调整第二个地图的标记类型为“圆”,并把“骑行路线”字段拖至到第二个地图“标记卡”的“颜色”中。到这,我们就完成了轨迹地图的呈现。

113、仪表板的工作表中嵌入可切换网页

需求

​ 在仪表板中嵌入多个网页内容,并且可以实现不同网页内容的切换。因为在企业实际应用中,可能需要切换查看存货、供货和签约等多个网页(如下图)。

设置方法(5步)

1、首先,连接我们准备好的数据源。再创建一个“工作簿”,将“页面”和 “URL”两个仅有的字段分别拖至“行区”,这样就生成了一个二维表形式的工作簿。

2、在该工作簿顶端的工作簿“菜单”中,选择“操作—>添加操作—>转到URL”。

3、先在“源工作表”右侧的“运行操作方式“中点击”选择“,然后点击在“URL”最右端的向右箭头中,选择“URL”字段,再点击”URL“下面的”测试链接(T)“按钮,最后点击确认。

4、接着,创建一个新的“仪表板”,把刚刚创建的“工作簿”拖入“仪表板”。再从“对象”菜单中,拖拽“网页”到仪表板,弹出的“编辑URL提示框”,直接选择确定。

5、调整仪表板布局,“工作表”置于左侧、“网页”置于右侧(如下图)。此时,用鼠标点选左边的字段或网址,右侧就会出现不同的网页内容了。

114、购物篮同时购买其他产品订单量分析(啤酒尿布关系参数)

需求

​ 购物篮同时购买其他产品订单量分析(啤酒尿布关系)是通过销售数据研究顾客的购买行为。零售、电信、金融服务、保险、医疗等多行业,可通过了解顾客的购买习惯和规则,将两种或多种产品关联绑定在一起销售,来挖掘商业利益并建立竞争优势。

设置方法(5步)

1、首先,连接“示例—超市”数据源,然后直接右键“子类别”字段,选择“创建—>参数“功能来创建”1.8子类别参数”,数据类型采用默认的“字符串”,允许的值采用默认的“列表”,其余皆采用默认配置,最后点击“确定”就完成参数的创建。

2、右键”1.8子类别参数”,在弹出的功能选项中勾选“显示参数”,然后创建“2.4同时也购买了”计算字段(该计算字段用于标识订单(除了用户通过参数选择的产品外)同时包含的其他产品)和“7.1产品计数”计算字段(用于计数匹配的产品)和“7.2订单量计数”计算字段。

2.4同时也购买了:  IF [子类别] <> [1.8子类别参数] THEN [子类别] END
7.1产品计数:     IF [子类别] = [1.8子类别参数] THEN 1 END
7.2订单量计数:    COUNTD([订单 Id])

3、创建一个集来确定某个订单是否具有在参数控件中选择的项:右键维度里的“订单Id”字段,选择“创建—>集”;然后,在弹出的创建集对话框中,输入集的名称“2.5是否包含选定产品集”,转到“条件”选项卡,选择“按字段→7.1产品计数→总和→>=→1”(该集用于确定某个订单是否具有在参数控件中选择的项)。

4、分别将计算字段“2.4同时也购买了”和“7.2订单量计数”拖入“行区”和“列区”,然后将“7.2订单量计数”字段拖入“标记卡”中的“标签”中,再然后把“2.4同时也购买了”字段拖入“筛选器”中,并设置“排除Null值”。

5、将“2.5是否包含选定产品集”拖入“筛选器”中,这样,我们就能计算出:同时购买包含多种子类别产品的订单量。通过右侧的筛选器,我们选择不同的产品子类,很容易查看”与此子类商品同时购买“的其他商品子类别的订单量。

115、购物篮用RFM模型分析客户价值(LOD函数)

需求

​ RFM模型:1、最后交易时间距离当前天数(Recency);2、累计交易次数即交易频率(Frequency);3、累计交易金额(Monetary)。

​ 客户关系分析中广泛使用的 RFM 模型,是衡量客户价值和客户创利能力的重要手段。通过分析客户的近期购买行为、购买的总体频率以及花了多少钱,来描述客户价值。RFM 模型能够根据客户价值精确地对客户进行分类,量化各类客户价值的差别,对于业务人员细分市场、精准营销的帮助很大。注意:用 Tableau 快速建立 RFM 模型的关键是使用 LOD 详细表达式获取客户的最后一次下单时间。

设置方法

一、获取R、F、M数值数据(LOD函数4步)

1、创建一个计算“2.6客户最后一次消费日期”,我们利用“Max函数”来获取客户的最后交易时间。

{ FIXED [客户名称] : MAX([订单日期]) }

2、通过“DATEDIFF函数”获取:最后交易距离当前天数(Recency),创建计算字段“7.3最后一次消费日期距离现在天数R”。注意:这个时间差是指距离客户最近一次消费的时间,计算逻辑是用当前时间减去客户最后一次下单时间。客户最后一次消费时间是标识最可能对新产品做出反应的现有客户的最重要因子。

DATEDIFF('day',[2.6客户最后一次消费日期],NOW())

3、接着,我们获取累计交易次数(Frequency):是顾客在限定的期间内前来消费的频次。创建计算字段“7.4客户累计消费单数F”。

{ FIXED [客户名称] : COUNTD([订单 Id]) }

4、然后,获取累计交易金额(Monetary):是顾客在限定的期间内购买产生的金额。创建计算字段“7.5客户累计消费金额M”。

{ FIXED [客户名称] : SUM([销售额]) }

二、R、F、M数据标准化(LOG函数3步)

​ 完成第一步之后,我们可以看到:R是指向时间的一个变量(单位:天);F是指向频率的数量(单位:次);M是指向金额的数量(单位:元)。为了将三个不同单位的指标放在同一个模型中进行比较,我们需要将数据标准化,通过数据标准化去掉单位的限制使其具有可比性,转化成没有单位限制的纯数值。数据标准化有多种实现方式,这里我们选择用以 10 为底的LOG函数,通过三个计算字段来实现数据的标准化。

1、创建计算字段“7.6标准化R”。

(LOG([7.3最后一次消费日期距离现在天数R],10) - { FIXED : MIN(LOG([7.3最后一次消费日期距离现在天数R],10)) })
/ ({ FIXED : MAX(LOG([7.3最后一次消费日期距离现在天数R],10))} - { FIXED : MIN(LOG([7.3最后一次消费日期距离现在天数R],10)) })

2、创建计算字段“7.7标准化F”。

(LOG([7.4客户累计消费单数F],10) - { FIXED : MIN(LOG([7.4客户累计消费单数F],10)) })
/ ({ FIXED : MAX(LOG([7.4客户累计消费单数F],10))} - { FIXED : MIN(LOG([7.4客户累计消费单数F],10)) })

3、创建计算字段“7.8标准化M”。

(LOG([7.5客户累计消费金额M],10) - { FIXED : MIN(LOG([7.5客户累计消费金额M],10)) })
/ ({ FIXED : MAX(LOG([7.5客户累计消费金额M],10))} - { FIXED : MIN(LOG([7.5客户累计消费金额M],10)) })

三、设置R、F、M数据参考值(MEDIAN函数3步)

​ 完成了第二步的数据的标准化后,我们还需要RFM模型中客户分类的划分指标,也就是客户分类的依据。在我们的模型中我们选择使用MEDIAN函数求出中位数作为参考值(可以有不同标准,取决于业务需求)。

1、创建计算字段“7.9R参考值”。

{ FIXED : MEDIAN([7.6标准化R]) }

2、创建计算字段“8.0F参考值”。

{ FIXED : MEDIAN([7.7标准化F]) }

3、创建计算字段“8.1M参考值”。

{ FIXED : MEDIAN([7.8标准化M]) }

四、判断R、F、M值高低(IIF函数3步)

​ 为了解三个指标在实际商业场景中的差异,我们需要将标准化后的数值与我们预设好的参考值进行逻辑比较,通过对比得到 RFM 模型 的变动情况(金额或者消费时间的差异变动)。

1、创建计算字段“8.2R值判断高低”。

IIF([7.6标准化R] < [7.9R参考值],0,1)

2、创建计算字段“8.3F值判断高低”。

IIF([7.7标准化F] < [8.0F参考值],0,1)

3、创建计算字段“8.4M值判断高低”。

IIF([7.8标准化M] < [8.1M参考值],0,1)

五、根据RFM模型对客户分层(1步)

​ 得到模型的变动情况后,我们需要根据不同的客户表现进行分类。在我们的模型中,根据每个类别的RFM变动情况区别客户类别的性质,判断客户是倾向于忠诚的还是倾向于背离的。创建计算字段“2.7RFM客户分层”

IF [8.2R值判断高低] = 1 AND [8.3F值判断高低] = 1 AND [8.4M值判断高低] = 1 THEN '重要价值客户'
ELSEIF  [8.2R值判断高低] = 0 AND [8.3F值判断高低] = 0 AND [8.4M值判断高低] = 1 THEN '重要挽留客户'
ELSEIF  [8.2R值判断高低] = 1 AND [8.3F值判断高低] = 0 AND [8.4M值判断高低] = 1 THEN '重要深耕客户'
ELSEIF  [8.2R值判断高低] = 0 AND [8.3F值判断高低] = 1 AND [8.4M值判断高低] = 1 THEN '重要换回客户'
ELSEIF  [8.2R值判断高低] = 1 AND [8.3F值判断高低] = 0 AND [8.4M值判断高低] = 0 THEN '新客户'
ELSEIF  [8.2R值判断高低] = 1 AND [8.3F值判断高低] = 1 AND [8.4M值判断高低] = 0 THEN '潜力客户'
ELSEIF  [8.2R值判断高低] = 0 AND [8.3F值判断高低] = 1 AND [8.4M值判断高低] = 0 THEN '一般维持客户'
ELSEIF  [8.2R值判断高低] = 0 AND [8.3F值判断高低] = 0 AND [8.4M值判断高低] = 0 THEN '流失客户' END

六、可视化RFM模型(3步)

​ 完成RFM客户分层定义后,最后,需要将我们的 RFM 模型可视化,查看我们的样本数据中 8 类客户的分类情况以及量化各类客户价值的影响。

1、通过RFM模型制作的客户分层了解现有客户的组成情况。分别将“2.7RFM客户分层”字段和“销售额”字段拖至“行区”和“列区”,将“销售额”字段拖至“标记卡”的“标签”上,并且右键该胶囊选择“快速表计算—>合计百分比"方式,以此查看各客户分类的销售影响差别,将“2.7RFM客户分层”字段拖入“标记卡”中的“颜色”上。

2、针对某一个具体的客户RFM分层类别查看详细名单,从而便于市场运营的后续动作。分别将“2.7RFM客户分层”字段和“客户名称”字段拖至“行区”,然后将“销售额”字段拖至“标记卡”的“标签”和“颜色”上,并且将“标记卡”的“标记类型”修改为“方形”,再然后将“2.7RFM客户分层”字段拖入筛选器中,并勾选“重要价值客户”。这样就实现了查看重要价值客户的详细名单了。

3、通过RFM模型可以了解各客户类别的具体差异。分别将“2.7RFM客户分层”字段和“度量名称”拖至“行区”和“列区”,然后将“度量值”拖至“标记卡”的“标签”上,然后在“度量值”下保留“7.3最后一次消费日期距离现在天数R”计算字段和“7.4客户累计消费单数F”计算字段和“7.5客户累计消费金额M”计算字段共三个度量字段。

4、运用标准化数值查看各客户分类重要程度的比较。分别将“2.7RFM客户分层”字段和“度量名称”拖至“行区”和“列区”,然后将“度量值”拖至“标记卡”的“标签”上,然后在“度量值”下保留“7.6标准化R”计算字段和“7.7标准化F”计算字段和“7.8标准化M”计算字段共三个度量字段。

116、制作锥状柱形图(上宽下窄类似烟花升空)

需求

​ 制作锥状柱形图(上宽下窄类似烟花升空)。

设置方法(3步)

1、制作锥状柱形图需要特殊的数据源,如图所示。

2、Tableau连接上述数据源后,将“子类别”字段拖至“行区”,将“销售额”字段拖至“列区”,创建一个常见的柱形图。

3、在“标记卡”中将“标记类型”改为“线”,然后将“size”字段拖入“标记卡”的“大小”中,将“规整”字段拖入“路径”中。再然后我们调整”标记卡“中的“大小和颜色“,如此,一个锥状柱形图就完成了。

扩展:改锥状柱形图为烟花升空图(2步)

1、如果希望实现烟花升空的效果,需要先找一个类似的烟花图片下载下面,放到“本地Tableau存储库\形状\自定义”中。如下图所示:

2、再拖一个“销售额“字段拖至”行区“原有的”总和(销售额)“胶囊的右侧(此时,”行区“上面有两个”总和(销售额)“胶囊)。将第二个“销售额”的“标记卡”的标记类型更改为“形状”,选用我们自定义的“烟花”。最后,右键“行区”中的第二个”总和(销售额)“胶囊,弹出的功能中选择“双轴→同步轴”。到此,烟花升空的呈现效果就实现了。

117、用参数实现数值的累计

需求

​ 实际分析业务中,有很多情况,我们需要实现金额或数量的累计。例如下面的柱形图,我们希望实现的呈现效果是:通过筛选器选择销售额的累计月数。1、选择1月时,柱形图只展示出1个月的销售额;2、选择2月时,柱形图只展示1月和2月两个月销售额的累加和,3、选择3月时,柱形图只展示1月和2月和3月共三个月销售额的累加和。以此类推——。

设置方法(3步)

1、先分别右键“年份”和“月份”字段,弹出的功能中选择“创建→参数”来创建“1.9年份参数”和“2.0月份参数”。右键这两个参数,弹出的功能列表中勾选“显示参数”。

2、结合刚刚创建的“年月”两参数,创建计算字段“8.8年月参数算累加销售额”。

IF [2.1年份] = [1.9年份参数] AND [2.1.1月份] <= [2.0月份参数] THEN [销售额] END

3、将刚刚创建计算字段“8.8年月参数算累加销售额”拖入“行区”,将“子类别”字段拖入“列区”,将计算字段“8.8年月参数算累加销售额”拖至工作簿“标记卡”的“标签”中,这就生成了一个普通柱状图。切换右侧的“年和月两个参数”,柱状图会跟着变化。到处,用参数实现数值的累计柱状图就设置完成了。

119、购物篮回购分析之连续订单人数

需求

​ 关于回购分析,之前的例子“87购物篮Fixed函数实现客户回购分析”,可以了解客户第二次购买(回购)的周期(通常多久会进行回购),如下图。

​ 其实,还有一种常见的分析需求,例如:想知道在11月份购买产品的这些客户,在12月继续购买的人数有多少。换言之,我们需要解决:如何计算当月购买的客户,在次月或未来几个月持续下单的人数(同一个月份第二次购买的不算)?今天,我们就分享两种方法。

设置方法一(合并集6步)

​ 注意:这种方法适合计算短期( 1-2 个时间周期)回购人数,如果需要计算 3 个时间周期及以上有持续订单的人数,请使用第二种方法。

1、先将“客户名称”字段拖入“行区”,然后将“订单日期”字段拖入“筛选器”中,并在筛选列表中勾选“2021年11月”。

2、点击第一个客户名称,按住“Shift键”,移动滚动条到底部最后一个客户名称,同时点击最后一个客户名称,选择创建集,将该集命名为“2.8二一年11月客户名称集”。

3、重复上述第一步和第二步的方法,创建“2.9二一年12月客户名称集”。

4、按住 Ctrl 键,同时点击“2.8二一年11月客户名称集”和“2.9二一年12月客户名称集”,右键选择“创建合并集—>两个集中的共享成员“,并命名为”3.0十一月与十二月共有客户集“。

5、创建计算字段“8.5客户数计数”。

COUNTD([客户名称])

6、最后,将计算字段“8.5客户数计数”拖至工作簿“标记卡”的“文本”中,将 ”3.0十一月与十二月共有客户集“拖入“筛选器”。如此,就得到”2021年11月购买产品的客户中,12月持续购买“的人数。

设置方法二(LOD函数4步)

​ 注意:如果想要计算 3个时间周期及以上有持续订单的人数,方法一就无法实现了。我们需要第二种方法,使用 LOD 函数。

1、创建计算字段“8.6有订单的月份数”。

{ FIXED [客户名称] : COUNTD(DATETRUNC('month',[订单日期]))}

2、将刚刚创建计算字段“8.6有订单的月份数”转换为“维度”。将计算字段“8.5客户数计数”拖至工作簿“标记卡”的“文本”中,然后将“订单日期”字段拖入“筛选器”中,并在筛选列表中勾选“2021年11月和2021年12月”,再然后将“8.6有订单的月份数”计算字段拖入“筛选器中”,并勾选数据“2”(注意:因为订单日期只勾选了两个,所以计算字段勾选对应的2个,如果日期勾选3个,则计算字段勾选对应的3个,以此类推),并将设为单选值。

3、从上一步的报表结果来看“2021年11月购买产品的客户中,12月持续购买的人数”数量和方法一做出的结果完全不同,那是因为筛选器优先级不同,FIXED函数优先级高于维度筛选器,所以最后一个步骤是:右键“筛选器”中的“订单日期”胶囊,弹出的功能中勾选“添加到上下文”,将“订单日期”字段由维度筛选器转换为上下文筛选器(注意:黑灰色就是上下文筛选器)。如此,就得到”2021年11月购买产品的客户中,12月持续购买“的人数。

121、用Makepoint和Makeline函数实现连线地图

需求

​ 在上述例子“68制作连线冲蚀地图(物流路线)且只显示中国地图”中,我们已经实现了制作连线地图,但是那个示例的数据结构特别复杂,而且操作步骤也是比较复杂。现在借助Makepoint和Makeline函数,我们不需要特别复杂的数据表结构,仅仅只需要出发地和目的地的经纬度就可以轻松实现连线地图的制作。

设置方法(5步)

1、先确定数据源的数据表结构,这里要求数据表结构中含有出发地和目的地的经纬度坐标。

2、连接数据源之后,首先用“Makepoint函数”和“Makeline函数”创建“1.1出发地”和“1.2目的地”和“1.3出发地与目的地连线”共三个计算字段。其中的Makepoint([纬度],[经度]):返回根据纬度和经度构建的空间对象;而Makeline([Start],[End]):返回根据两个点构建的线。

1.1出发地:               MAKEPOINT([出发地纬度],[出发地经度])
1.2目的地:              MAKEPOINT([目的地纬度],[目的地经度])
1.3出发地与目的地连线:    MAKELINE([1.1出发地],[1.2目的地])

3、将计算字段 “1.3出发地与目的地连线” 拖放至“标记卡”的“详细信息”,系统会自动生成一个连线地图;然后将“城市”字段拖入“标记卡”中的“颜色”中。

4、按住“Ctrl键”,单击选中“列区”上面的“经度”胶囊,向此胶囊右侧的列中拖放。此时,视图中出现了左右两个地图。接着,在“经度(自动生成)(2)”的“标记卡”中将计算字段“1.3出发地与目的地连线”移除,并将“1.1出发地”计算字段拖放至“经度(自动生成)(2)”的“标记卡”的“详细信息”中;再然后将“城市”字段拖入该“标记卡”的“标签”中;再然后将该“标记卡”的标记类型更改为“圆”;再然后在该“标记卡”的“大小”中调整一下圆的大小。

5、右击“列区”上的第二个“经度(自动生成)”胶囊,在下拉菜单中,选择“双轴”;将左右两幅地图合并,到这,一个连续地图就制作完成了。

122、制作圆角条形图

需求

​ 制作圆角条形图。

设置方法(4步)

1、创建计算字段“10.0圆角条形图辅助字段”。

AVG(0)

2、将“子类别”字段放到“行区”上,“度量值”放到“列区”,系统会自动将“度量名称”显示在“筛选器”中,并将“度量名称”显示在“标记卡”下的“详细信息”中,右键“筛选器”中的“度量名称”,弹出的功能选项中选择“编辑筛选器”,取消勾选本筛选器里面的其他度量,只保留“10.0圆角条形图辅助字段”和“销售额”两个度量字段,生成如下条形图。

3、在“标记卡”中将“标记类型”由“自动更改为线”形式,然后将“度量名称”拖动到本标记卡的“路径”中。

4、在步骤3的基础上,在本标记卡的“大小”中,将大小拖大,这样就生成了一个圆角条形图。然后将“销售额”字段拖到该标记卡的“标签”中,再然后点击该“标签”,在弹出的功能选项中,将“标签标记”设置为“线末端”,在“选项”中只保留“线尾标签”。到这,一个圆角条形图就制作完成了。

123、仪表板中用Tabs选项卡切换查看图表

需求

​ 选项卡 Tabs 是 Web 中一种很常用的功能。通过 Tabs 选项卡,将不同的内容重叠放置在某一布局区块内,重叠的内容区里的每次只有其中一层是可见的。用户点击对菜单项,能切换出对应的内容。对每一个开发者而言布局是有限的,传递的信息是无限的。

设置方法(8步)

1、连接数据源后,先创建一个Tab01工作簿:将维度“地区”字段拖放至“列区”,将度量“销售额”字段拖放至“行区”及“标记卡”的“标签”中,将工作表重命名为:Tab01。

2、创建一个Tab02工作簿:右键已经转换为“地理角色”维度“省/自治区”字段,工作簿会自动生成一个“散点地图”,点击右上角“智能推荐“将”散点地图“修改为”染色地图“,然后将度量“销售额”字段拖放至“标记卡”的“颜色”中,将工作表重命名为:Tab02。

3、创建一个Tab03工作簿:将维度“地区”字段拖放至“行区”,再将“度量名称”拖入“列区”,然后将“度量值”拖入“标记卡”的“文本”中,系统自动会将”度量名称“放在”筛选器“下,点击该筛选器,勾选”利润,数量,销售额,销售额目标“四个度量字段,再然后将工作表重命名为:Tab03。

4、创建三个字段:tab01、tab02 和 tab03,分别键入函数:“tab01”、“tab02”、“tab03”。

5、创建一个选项卡工作簿:分别双击“行区”和“列区”空白处,在空白胶囊中输入:0,即可在行上添加一个“0”作为定位符、列上添加三个“0”作为占位符。然后在“标记卡”的“全部”中将标记类型修改为“文本”;再然后隐藏行列标题,去掉工作表所有的默认属性(网格线、零值线、轴刻度等);再然后将刚刚创建的计算字段“tab01”、“tab02”和“tab03”分别拖放至“标记卡”中的“总和(0)”、“总和(0)”和“总和(0)”的“标记卡”的“文本”中。

6、新建仪表板,从左侧“对象”窗格中,先将一个“垂直容器”拖放至右侧视图中,再分别拖放两个“水平容器”(如图容器 1 和 容器 2)到该容器里面。此时,后拖入的两个“水平容器”应是上下位置,可通过鼠标点选来确认位置关系。将工作表“选项卡”拖放至上面的容器(容器 1) 中,将工作表“Tab1”、“Tab2”和“Tab3”依次拖放至下面的容器(容器 2 )中。隐藏所有工作表标题,并将每个工作表的视图大小都设置为:整个视图。此时,下面容器中的三个工作表从左到右排列,图表可能没有完全显示,是正常情况。再从左侧“对象”窗格中,将一个平铺的空白拖放至上面的容器(容器 1)中,摆放在工作表”选项卡“的右侧。然后,调整工作表”选项卡”和空白对象的尺寸,其工作表”选项卡”实现左对齐。

7、最后,通过仪表板的操作设置,实现通过单击选项卡来切换视图工作表的效果。单击顶部菜单栏“仪表板”,下拉菜单中选择:操作,在“操作”对话框中,选择“添加操作→筛选器”。在弹出的“添加筛选器操作”对话框中,将筛选器名称分别设置为“tab01”、“tab02”和“tab03”。源工作表都选为“选项卡”,目标工作表分别选为:Tab01、Tab02和Tab03。将运行方式更改为“选择”,并勾选“仅单选”;清除选定内容将会设置为“排除所有值”,目标筛选器设置为:选定的字段,单击底部的“添加筛选器”,源目标字段分别选择:“tab1”、“tab2”和“tab3”。

8、如此,就完成了用 Tabs 选项卡切换查看图表的可视化效果,分别单击三个选项卡,对应的图表就会在下面呈现出来了。

124、筛选到最新日期值

需求

​ 通常,用户希望筛选日期时,报表始终自动筛选到最新日期值?比如,当前数据源的最新日期是 8 月,工作表打开筛选器默认选项是 8 月;当数据源更新到 9 月时,筛选器默认就自动变成9月。

设置方法(2步)

1、连接数据源后,新建工作表,将维度“订单日期”字段拖放至“筛选器”,单击筛选器上的“订单日期”胶囊右侧小三角,选择“编辑筛选器”。在弹出的对话框中,选择离散日期“年/月/日”,单击“下一步”。

2、在从列表中选择中勾选“最近的日期,例如这里的2021年12月30日”。勾选底部的“打开工作簿时筛选到最新日期值”之后,单击“确定”。(注意:如果软件实时连接数据源时,每次打开报表筛选器都可以更新到最新的日期。但如果采用数据提取方式,就需要每次手动刷新数据源,或将视图发布到 Server上,并设置好提取计划,方可实现每次打开报表,筛选器更新到最新的日期。)到此,完成设置。

125、用筛选器下钻维度

需求

​ 通常,在实际业务场景中,我们经常需要通过下钻来查看维度下一层的情况。比如,想查看类别下的子类别销售额时,单击列上“类别”胶囊上的加号,图表会呈现所有子类别的详情。但如果想查看具体某一个子类别的情况,尤其在地图应用中,没有下钻轴的情况,该怎么办呢?你可以试试筛选器!

​ 如下图所示,在同一张工作表中,通过筛选器来进行维度的切换下钻:1、选择“全部”时,图表呈现“类别”维度;2、选择“技术、家具或办公用品”时,图表呈现具体的“子类别”维度。

设置方法(3步)

1、连接数据源后,新建工作表;创建计算字段“3.2显示&隐藏子类别”,如果当前维度(类别)个数小于 3 ,显示 子类别;如果当前维度 (类别)个数等于 3 , 显示类别。

IF { FIXED : COUNTD([类别])} < 3 THEN [子类别]
ELSEIF { FIXED : COUNTD([类别])} = 3 THEN [类别] END

2、将度量“销售额”字段拖放至“行区”,将新建的计算字段“3.2显示&隐藏子类别”拖放至“列区”。生成一个柱状图。

3、将维度“类别”字段拖放至“筛选器”,单击筛选器上的“类别”胶囊,勾选“显示筛选器”和“添加到上下文”(注意:一定要添加到上下文,不然无法实现功能)。然后,单击工作表视图右侧“类别”筛选器右侧小三角,勾选“单值(下拉列表)”。到此,我们就完成了使用筛选器下钻维度的呈现。

126、几个常用的日期函数

1、date_part(以下日期函数的日期单位):

2、DATEADD(日期偏移指定单位):

1)语法:DATEADD(date_part, interval, date)

2)返回:返回指定日期,该日期的指定 date_part 中添加了指定的数字 interval

3)举例:

DATEADD(‘month’, 3, #2020-04-15#) = 2020-07-15 12:00:00 AM
//该表达式会向日期 #2020-04-15# 添加三个月。

3、DATEDIFF(时间差计算):

1)语法:DATEDIFF(date_part, date1, date2, [start_of_week])

2)返回:返回 date1 与 date2 之差(以 date_part 的单位表示)。

start_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”等。

3)举例:

DATEDIFF(‘week’, #2020-09-20#, #2020-09-22#, ‘monday’)= 1DATEDIFF(‘week’, #2020-09-20#, #2020-09-22#, ‘sunday’)= 0//第一个表达式返回 1,因为当 start_of_week 为 ‘monday’ 时,9 月 22(星期日)和 9 月 24(星期二)不属于同一周。
//第二个表达式返回 0,因为当 start_of_week 为 ‘sunday’ 时,9 月 22(星期日)和 9 月 24(星期二)属于同一周。

运用示例:结合参数展示前十天数据

if DATEDIFF('day',[订单日期], [订单日期开始时间参数])<=10
and DATEDIFF('day',[订单日期],[订单日期开始时间参数])>=0
then [订单日期] end

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yJbb96Ay-1675267671337)(D:\gongzuo\超市示例\tableau总结图片\25.png)]

4、DATENAME(日期转换为字符串格式):

1)语法:DATENAME(date_part, date, [start_of_week])

2)返回:以字符串的形式返回 date 的 date_part。start_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”等

3)举例:

DATENAME(‘year’, #2020-04-15#) = “2020”DATENAME(‘month’, #2020-04-15#) = “April”

5、DATEPARSE(字符串转换为日期格式):

1)语法:DATEPARSE(date_format, [date_string])

2)返回:返回 [date_string] 作为日期。 date_format 参数将描述 [字符串] 字段的排列方式。由于可通过各种方式对字符串字段进行排序,因此 date_format 必

须完全匹配

3)举例:

DATEPARSE(‘yyyy-MM-dd’, #2020-04-15#) = “April 4, 2020”

6、DATEPART(获取单列年或季或月或日):

1)语法:DATEPART(date_part, date, [start_of_week])

2)返回:以整数的形式返回 date 的 date_part。

start_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”等

3)举例:

DATEPART(‘year’, #2020-04-15#) = 2020DATEPART(‘month’, #2020-04-15#) = 4

7、DATETRUNC(获取当年或季或月第一天):

1)语法:DATETRUNC(date_part, date, [start_of_week])

2)返回:按 date_part 指定的准确度截断指定日期。此函数返回新日期。例如,以月份级别截断处于月份中间的日期时,此函数返回当月的第一天。

start_of_week 参数(可用于指定哪一天是一周的第一天)是可选的。可能的值为“monday”、“tuesday”获取等

3)举例:

DATETRUNC(‘quarter’, #2020-08-15#) = 2020-07-01 12:00:00 AMDATETRUNC(‘month’, #2020-04-15#) = 2020-04-01 12:00:00 AM

运用示例:结合参数展示从年初到参数日期的累加和

​ 年累计即从年初累计至当前日期,年累计增长率:本期年累计对比同期年累计的增长情况。例如:计算从 2021 年 1 月 1 日累计至 8 月 31 日的销售额,与

2020 年 1 月 1 日累计至 8 月 31 日的销售额增长情况。非常典型的应用就是 YTD( Year to Date )增长率分析。

1、创建datetrunc算本期年累计销售额计算字段
IF [订单日期]>=DATETRUNC('year',[订单日期开始时间参数])
AND [订单日期]<=[订单日期开始时间参数]
THEN [销售额]  END
2、创建datetrunc算年累计增长率计算字段
IF [订单日期]>=DATETRUNC('year',DATEADD('year',-1,[订单日期开始时间参数]))
AND [订单日期]<=DATEADD('year',-1,[订单日期开始时间参数])
THEN [销售额] END
3、创建datetrunc算同期年累计销售额计算字段
SUM([datetrunc算本期年累计销售额]) / SUM([datetrunc算同期年累计销售额])-1
4、显示效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D1HPNcyj-1675267671338)(D:\gongzuo\超市示例\tableau总结图片\26.png)]

8、YEAR(获取给定日期的年):

1)语法:YEAR (date)

2)返回:以整数的形式返回给定日期的年份

3)举例:

YEAR(#2020-04-15#) = 2020

9、QUARTER:

1)语法:QUARTER ( )

2)返回:以整数的形式返回给定日期的季度

3)举例:

QUARTERK (#2004-04-15#) = 2

10、MONTH:

1)语法:MONTH(date)

2)返回:以整数的形式返回给定日期的月份

3)举例:

MONTH(#2020-04-15#) = 4

11、WEEK:

1)语法:WEEK( )

2)返回:以整数的形式返回给定日期的周

3)举例:

WEEK (#2020-04-15#) = 16

12、DAY(获取给定日期的天):

1)语法:DAY(date)

2)返回:以整数的形式返回给定日期的天

3)举例:

DAY(#2020-04-12#) = 12

13、NOW(获取当前本地系统时间和日期):

1)语法:NOW( )

2)返回:返回当前本地系统日期和时间

3)举例:

NOW( ) = 2020-05-15 1:08:21 PM

14、TODAY(获取当前日期):

1)语法:TODAY( )

2)返回:返回当前日期

3)举例:

TODAY( ) = 2020-05-15

15、ISDATE(判断是否是日期格式):

1)语法:ISDATE(string)

2)返回:如果给定字符串为有效日期,则返回 true

3)举例:

ISDATE(“April 15, 2020”) = true

16、MAX(获取两个日期或两个数字的最大值):

1)语法:MAX(expression) or MAX(expr1, expr2)

2)返回:

通常应用于数字,不过也适用于日期。返回 a 和 b 中的较大值(a 和 b 必须为相同类型)。如果任一参数为 Null,则返回 Null

3)举例:

MAX(#2004-01-01# ,#2004-03-01#) = 2004-03-01 12:00:00 AM

4)运用场景举例:

如零售或互联网行业,查找出每个客户的最近一次购买时间,则采用:

{ FIXED [客户 ID] : MAX([订单日期]) }

17、MIN(获取两个日期或两个数字的最小值):

1)语法:MIN(expression) or MIN(expr1, expr2)

2)返回:

通常应用于数字,不过也适用于日期。返回 a 和 b 中的较小值(a 和 b 必须为相同类型)。如果任一参数为 Null,则返回 Null

3)举例:

MIN(#2004-01-01# ,#2004-03-01#) = 2004-01-01 12:00:00 AM

4)运用场景举例:

如零售或互联网行业,查找出每个客户的第一次购买时间,则采用:

{ FIXED [客户 ID] : MIN([订单日期]) }

运用示例:客户回购分析

​ 市场营销中,能否抓住回头客以及回头客的多少,都是产品是否能够经受市场考验的具体表现,对于回头客的分析则会直接影响到公司的决策。

​ 如下图所示:1、图表中的纵坐标是”第一次购买时间”,我们这里按照季度统计(实际应用中也可以换成年、月、日等);2、图表中的横坐标是“第二次购买

时间-第一次购买时间”,如果这个客户没有发生二次购买(即第二次购买时间的值为NULL),横坐标会出现NULL,它就是一个流失状态;3、图表中的数字是“二

次购买的客户数量”,颜色深浅代表回购的客户数量是多少。

创建计算字段

1:fixed算第一次购买时间

{ FIXED [客户 ID] : MIN([订单日期]) }

2:IIF与fixed函数判断是否第一次购买:功能:如果不是第一次购买,则返回订单日期,如果只购买了一次则返回NULL,说明客户流失。

IIF([订单日期]>[fixed算第一次购买时间],[订单日期],NULL)

3、fixed算再次购买时间

{ FIXED [客户 ID]:MIN([IIF与fixed函数判断是否第一次购买])}

4:datediff算时间间隔-月

DATEDIFF('month',[fixed算第一次购买时间],[fixed算再次购买时间])

展示效果图如下:

18、日期函数示例:获取上个月最后一天

DATEADD('day',-1,DATEADD('month',0,DATETRUNC('month',TODAY())))
//获取上个月最后一天

127、购物篮分析之关联购买(啤酒尿布关系LOD函数)

需求

​ 类似于之前的例子“114购物篮同时购买其他产品订单量分析(啤酒尿布关系参数)”。购物篮分析是通过顾客的购物篮信息研究其购买行为。主要目的在于找出什么样的东西应该放在一起。通过分析顾客的购买行为来探知顾客的属性及购买某些商品的可能原因,找出相关的联想规则,企业可利用这些规则更好的挖掘商业利益并建立竞争优势。

​ 数据粉最常用的购物篮分析,当属关联购买分析:通过分析销售数据,来了解同时购买多个产品的人数或者订单数量,从而进行合理的产品投放。最著名的购物篮分析,就属“啤酒与尿布”的故事,它正是一个典型的关联购买分析场景。今天我们利用“LOD函数和筛选器相结合”,实现“关联购买”的分析。

设置方法

一、同时购买的订单数(LOD函数3步)

1、先将之前的例子“114购物篮同时购买其他产品订单量分析(啤酒尿布关系参数)”所创建的计算字段“7.2订单量计数”拖至工作簿“标记卡”的“文本”中,将 ”子类别“维度字段拖入“筛选器”,并右键“显示筛选器”,然后,在工作表视图右侧的筛选器中,单击“子类别”右侧小三角,勾选“多值(下拉列表)”。

2、创建一个计算字段“3.1判断是否同时购买”,我们利用“FIXED函数”来创建。

{ FIXED [订单 Id] : COUNTD([子类别])} = { COUNTD([子类别]) }

3、右击“筛选器”上的“子类别”胶囊,在下拉菜单中选择“添加到上下文”(注意:这里设置成上下文(注意:上下文筛选器胶囊是“黑灰色”),是要让“3.1判断是否同时购买”计算字段依照子类别筛选后的结果进行选择计算,如果不添加上下文直接拖拽“3.1判断是否同时购买”到“筛选器”中,则会显示”伪“)。然后,把刚刚创建的计算字段“3.1判断是否同时购买”拖放至“筛选器”。右击筛选器上的“3.1判断是否同时购买”胶囊,在下拉菜单中选择“编辑筛选器”,在弹出的对话框中勾选“真”。这样,我们就得出同时购买多个子类别的订单数了。

二、同时购买的客户数占比(LOD函数2步)

1、创建计算字段“8.6同时购买多个子类别的客户数”。

COUNTD(IF { FIXED [客户名称] : COUNTD([子类别])} = {COUNTD([子类别])} THEN [客户名称] END)

2、将维度 ”子类别“拖入“筛选器”,右击筛选器上的“子类别”胶囊,在下拉菜单中选择“添加到上下文”(注意:上下文筛选器胶囊是“黑灰色”)。然后将“例子119购物篮回购分析之连续订单人数”中所创建的计算字段“8.5客户数计数”字段和刚刚创建的“8.6同时购买多个子类别的客户数”计算字段拖至工作簿“标记卡”的“文本”中,按照需求调整文本中的显示格式。如此,根据需要,在工作表视图右侧的筛选器中勾选不同子类别,来分别查看同时购买它们的客户数占比了。

3、图表中的数字是“二

次购买的客户数量”,颜色深浅代表回购的客户数量是多少。

创建计算字段

1:fixed算第一次购买时间

{ FIXED [客户 ID] : MIN([订单日期]) }

2:IIF与fixed函数判断是否第一次购买:功能:如果不是第一次购买,则返回订单日期,如果只购买了一次则返回NULL,说明客户流失。

IIF([订单日期]>[fixed算第一次购买时间],[订单日期],NULL)

3、fixed算再次购买时间

{ FIXED [客户 ID]:MIN([IIF与fixed函数判断是否第一次购买])}

4:datediff算时间间隔-月

DATEDIFF('month',[fixed算第一次购买时间],[fixed算再次购买时间])

展示效果图如下:

18、日期函数示例:获取上个月最后一天

DATEADD('day',-1,DATEADD('month',0,DATETRUNC('month',TODAY())))
//获取上个月最后一天

127、购物篮分析之关联购买(啤酒尿布关系LOD函数)

需求

​ 类似于之前的例子“114购物篮同时购买其他产品订单量分析(啤酒尿布关系参数)”。购物篮分析是通过顾客的购物篮信息研究其购买行为。主要目的在于找出什么样的东西应该放在一起。通过分析顾客的购买行为来探知顾客的属性及购买某些商品的可能原因,找出相关的联想规则,企业可利用这些规则更好的挖掘商业利益并建立竞争优势。

​ 数据粉最常用的购物篮分析,当属关联购买分析:通过分析销售数据,来了解同时购买多个产品的人数或者订单数量,从而进行合理的产品投放。最著名的购物篮分析,就属“啤酒与尿布”的故事,它正是一个典型的关联购买分析场景。今天我们利用“LOD函数和筛选器相结合”,实现“关联购买”的分析。

设置方法

一、同时购买的订单数(LOD函数3步)

1、先将之前的例子“114购物篮同时购买其他产品订单量分析(啤酒尿布关系参数)”所创建的计算字段“7.2订单量计数”拖至工作簿“标记卡”的“文本”中,将 ”子类别“维度字段拖入“筛选器”,并右键“显示筛选器”,然后,在工作表视图右侧的筛选器中,单击“子类别”右侧小三角,勾选“多值(下拉列表)”。

2、创建一个计算字段“3.1判断是否同时购买”,我们利用“FIXED函数”来创建。

{ FIXED [订单 Id] : COUNTD([子类别])} = { COUNTD([子类别]) }

3、右击“筛选器”上的“子类别”胶囊,在下拉菜单中选择“添加到上下文”(注意:这里设置成上下文(注意:上下文筛选器胶囊是“黑灰色”),是要让“3.1判断是否同时购买”计算字段依照子类别筛选后的结果进行选择计算,如果不添加上下文直接拖拽“3.1判断是否同时购买”到“筛选器”中,则会显示”伪“)。然后,把刚刚创建的计算字段“3.1判断是否同时购买”拖放至“筛选器”。右击筛选器上的“3.1判断是否同时购买”胶囊,在下拉菜单中选择“编辑筛选器”,在弹出的对话框中勾选“真”。这样,我们就得出同时购买多个子类别的订单数了。

二、同时购买的客户数占比(LOD函数2步)

1、创建计算字段“8.6同时购买多个子类别的客户数”。

COUNTD(IF { FIXED [客户名称] : COUNTD([子类别])} = {COUNTD([子类别])} THEN [客户名称] END)

2、将维度 ”子类别“拖入“筛选器”,右击筛选器上的“子类别”胶囊,在下拉菜单中选择“添加到上下文”(注意:上下文筛选器胶囊是“黑灰色”)。然后将“例子119购物篮回购分析之连续订单人数”中所创建的计算字段“8.5客户数计数”字段和刚刚创建的“8.6同时购买多个子类别的客户数”计算字段拖至工作簿“标记卡”的“文本”中,按照需求调整文本中的显示格式。如此,根据需要,在工作表视图右侧的筛选器中勾选不同子类别,来分别查看同时购买它们的客户数占比了。

tableau各种精典示例经验总结02相关推荐

  1. tableau各种精典示例经验总结03

    tableau各种精典示例经验总结 ​ 注意:所有示例中,如果没有特殊注明数据源,则该示例的数据源都是Tableau Desktop软件自带的<示例-超市订单数据源>. 128.在目标与实 ...

  2. tableau各种精典示例经验总结01

    tableau各种精典示例经验总结 ​ 注意:所有示例中,如果没有特殊注明数据源,则该示例的数据源都是Tableau Desktop软件自带的<示例-超市订单数据源>. 1.用容器实现下钻 ...

  3. 微信小程序开发 项目经验总结02

    微信小程序开发 项目经验总结02 总结 button设置登录授权 小程序:授权.登录.session_key.unionId 做网络请求: wx.request({url: '***',success ...

  4. 【Tableau Desktop 企业日常技巧6.0】Tableau如何将示例工作簿替换为自定义工作簿?(windows版本)

    文章目录 前言 通过注册表 前言 一般我们安装好Tableau Desktop的时候会默认三个自带的示例工作簿,最新版本的2021.3开始可以用自定义的五个工作簿.如下: 自定义示例工作簿必须满足以下 ...

  5. Azure 和Bing Maps API 示例经验分享

    [编者按]本文由微软一站式示例代码库团队撰写.微软一站式代码示例库(Microsoft All-In-OneCode Framework)是由微软提供的一站式的免费代码示例库.从这里可以免费获得所需的 ...

  6. tableau复合图形示例:三张图形描述一张成绩单

    之前介绍过基本统计图形,虽然简单但反映信息有限.有时为了展示更丰富的信息,需要采用带交互功能的复合图形. 在作图的过程中有两点值得注意:一,掌握基本统计图,这是复杂图形的根基:二,不要炫技式作图,目的 ...

  7. TiDB经验分享02

    前言 紧接着上一篇文章TiDB经验分享01 的内容接着往下更新,在上一篇文章中主要论述了TiDB的基础架构和其包含的两种存储引擎 TiKV TiFlash,这一篇我们主要论述TiDB在生产使用的特点 ...

  8. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  9. Tableau desktop 复制交叉表作为数据源

    平常分析过程中,经常需要多个步骤去清洗处理到想要的结果,用这个方法可以更方便的在只使用Tableau的情况下完成. 版本:Tableau desktop 2021.1.2 数据源集:Tableau 2 ...

最新文章

  1. Android 多线程及线程通信
  2. HTTPD(三)--HTTP2.4.9编译安装
  3. volatile 使用说明
  4. Commit request failed Commit failed. Ref must be HEAD and is HEAD
  5. [Java基础]Random
  6. Java经典23结构模型的设计模式(三)------附加代理模式、适配器型号、Facade模式的差异...
  7. 利用stack结构,将中缀表达式转换为后缀表达式并求值的算法实现
  8. 华为WLAN产品命名规范
  9. 怎样获取计算机硬盘号,电脑硬盘序列号读取工具
  10. c 教程网 linux,Linux基本命令C教程网cppcoursecom.ppt
  11. 我爱淘二次冲刺阶段3
  12. No input file specified. Nginx PHP
  13. 【对比Java学Kotlin】协程-创建和取消
  14. 天津医科大学计算机研究生吧,天津医科大学
  15. html实现圆形计时器特效,如何用css3实现圆形倒计时
  16. 速卖通重点国家市场俄罗斯市场分析平台热销产品推荐
  17. WebBrowser中打开新页面
  18. 百度AI 汽车识别
  19. win10 1903 笔记本开热点出现蓝屏问题
  20. TrueChain初链:带你解读区块链3.0时代

热门文章

  1. 网络安全就业前景怎么样?好找工作吗?
  2. 本周c++学习小结和心得
  3. 无线电波的波段、频率和应用
  4. 【高级UI】【026】手动为RecyclerView添加橡皮筋拉伸回弹效果
  5. Word插入的表格怎么合并单元格
  6. 黑帽实战 | 给大家讲讲一个二类电商的大佬的故事!
  7. 用统信uos安装docker并运行项目
  8. 关于加强网络舆情监测的几点建议,TOOM强化舆情监控有方法
  9. redis击穿,穿透,雪崩以及解决方案
  10. 超详细的Android so库的逆向调试