Tableau基础
文件要保存为twbx后缀
- tableau要合并数据表,类似于pq的合并查询
- 操作步骤--双击表进入底层,右侧小三角打开要合并的表,可以选择内部,左侧,右侧,类似于mysql里的内连接,左连接,右连接。
- 数据混合
- 先各自导入表,在主表中点击要混合的表,在两张表中自动生成共同拥有的字段后面会出现索环logo,如果在视图中没有用到的维度,锁环会有一个斜线。
有了数据混合,还要有数据连接
因为数据混合——不稳定,因为数据混合的连接是在虚拟表上的,底层物理表上没有任何的关系,因此如果该文件给到他人或者虚拟表发生变化,则数据混合可能会失效。数据混合是在多张原表先进行字段的聚合,形成多张聚合表,这多张聚合表通过join连接(左,右,内连接)。所以数据混合的本质是--两个聚合表的连接join。
数据连接
- 导入数据
- 追加数据(增加行数,有不同字段自动添加),方式:点击小三角,转换为并集
然后要追加的表拖进来。
3. 然后双击或点击小三角进入表底层,设置左右内连接,不能直接设置左反或右反(左右连接去年中间共同部分),可以进行数据筛选。点击右侧的筛选器添加。
4. 数据建模
根据需求建模。
需求:查看一下各个年度各个类别的销售额和目标。
维度:类别、订单日期
订单日期=订单日期不符合业务逻辑,基本上以月为单位。
对于日期维度,最好进入底层,在连接的时候进入编辑计算提取年和月,都要。
修改表内数据方法:使用函数
case [表]
when 'a' then 'b'
else [表]
end
将表内的a替换成b
数据类型:"#":数字,"Abc":文本
添加的数据表可以自定义拆分列:点击字段右侧小三角,会先重复列再根据间隔符拆分。
数据表的工具提示中的内容,最好整体完成后再修改,如果又加入其他指标,则工具提示无法自动更新。
年度同比增长:在度量值中-快速表计算-年度同比增长
显示筛选器:在数据页面里的字段--直接显示筛选器,可以选择单值或多值下拉列表
快速改为交叉表:表名右键-拷贝为交叉表
可以赋予字段地理角色:州/省/市/自治区和城市等
tableau中的分层、创建集和分组之间的区别是什么
分层 (Hierarchies)
- 定义:分层是一种组织维度的方式,它允许用户以一种自上而下的结构查看和分析数据。例如,你可以创建一个日期层次,从年到季度到月再到日,或者创建一个地理位置层次,从国家到省份到城市。这种结构便于用户进行数据的钻取操作,即从汇总级别逐步深入到详细级别。
- 用途:分层特别适合于需要在不同粒度级别上分析数据的场景,提供了数据探索的灵活性和效率。
创建集 (Sets)
- 定义:集是一个根据特定条件定义的数据子集,它可以基于任何维度或度量字段创建。集可以是静态的(手动选择成员)或动态的(基于表达式或筛选条件自动更新成员)。
- 用途:集用于定义特定的数据群体,以便进行比较、分析或过滤。例如,你可以创建一个集来包含销售额前10%的产品,然后与剩余产品的表现进行对比。
分组 (Groups)
- 定义:分组是将多个维度字段的值组合成一个新的分类或组别。这通常用于简化复杂维度或对相关项目进行聚合。例如,你可以将多个产品类别组合成一个大类,或者将多个部门合并成一个部门群组。
- 用途:分组有助于数据的聚合和简化,使得报告更加清晰易读。它适用于需要将多个相似维度视为单一实体的情况,比如在报告中展示汇总数据。
总结
- 分层关注于提供数据的不同粒度层次,便于用户交互式地探索数据。
- 集强调基于特定条件的数据子集,用于特定分析和对比。
- 分组则是关于简化维度结构,通过合并相似项来优化数据展示。
- 分层结构:将子类拖动到父结构上,重命名结构。
- 创建集:按ctrl多选数据条,右键创建集。
- 分组:按shift多选数据条前面的子标题,右键分组。右键组别可重命名组名和选择取消分组。
对度量值不聚合可在分析栏目的聚合度量取消
数据挖掘部分
- R平方值:数据和模型的拟合程度,R方越大越好,如果R方大于0.8,拟合效果好,R方在0.5~0.8之间,拟合效果一般。
- P值是显示显著性概念的数字,P值在0~1之间,与0.05比较,越小代表效果越显著。
tableau计算
创建计算字段的方式
-
数据区域右键--创建计算字段
-
分析菜单--创建计算字段
-
选择数据区域任意维度或度量--创建计算字段
-
avg():求平均值
-
countd():非重复计数
-
datediff(单位,开始时间,结束时间,周开始日):返回两个日期之差,用单位表示 datediff('month',#2004-07-15#,#2004-04-03#,'sunday')=-3
-
if 条件 then elseif then ...end和iif(条件,条件成功运行,条件错误运行):含义相同,格式不同。
-
iif(条件,条件正确时的执行语句,条件错误时的执行语句)
行级别计算和聚合级别计算
比如计算利润率:
- 聚合级别:sum([利润])/sum([销售额]):结果是一个度量值,先将利润和销售额聚合,再相除
- 行级别:[利润]/[销售额]:结果是一个列,直接利用每行的利润与销售额相除 使用场景不同。 当某个字段有多条行时,可以对那个字段进行数据小计,方法:【分析】-【合计】-【添加所有小计】。聚合级别是对手,行级别会把数据相加,就错误了。如果要对数据进行合计,那么聚合级别更合适。
对各品类盈亏结构进行分析
维度:品类
指标:利润
新建临时维度:在标记面析或行和列字段双击出现空白胶囊,进行临时计算,不会保存在左侧的数据中。
新建临时维度:聚合利润率>=0,用颜色区分
新建临时维度:[利润率(行)]>=0,用颜色区分,聚合级别的判断是先聚合再判断,先找到各维度(类别和子类别)的指标(利润和销售额),利润和销售额分别先后聚合,再相除得到聚合的利润率,再判断。
行级别利润率判断,先计算利润率,得到正负,再聚合到条形图上。
想要了解正利润订单和负利润订单占比
想让订单id参与计算,但是又不想让订单id影响可视化对象,使用【详细信息】,因为订单是文本,改成度量-非重复计数,求占比,所以--快速表计算--合计百分比
要计算的是每个子类别的正负利润占比(每个子类别正负利润占比相加是100%),要修改计算依据表(横穿)或者[利润率(行)]>=0。正负利润利润率占比相加会超过100%,是因为按订单数量计算然后求合计百分比,一个订单有多个子类别商品,有正有负,但维度是按子类别分类,所以这个订单会同时出现在多个维度下。还有一种情况是同一订单下再现同一子类别的不同产品a,b但有正有负,所以会同时出现在正负两边。
利润率左右占比是根据[利润率(行级)]>=0这个维度进行区分,所以计算依据是这个字段。也可以使用表(横穿)
表计算
- 快速表计算
- 累计汇总
- 差异:与上一行数值差异
- 百分比差异:环比
- 合计百分比:当前数值占总计的百分比
- 排序
- 百分位:最高的100%,最低的0%,中间的平均分配
- 移动平均:计算当前数与前3个(默认3个)的总计的平均
2. 创建字段进行表计算
n行的移动平均,使用字段表计算函数
window_avg(sum[销售额],-3,0):
- 第一个参数:表达式,必须计算得到
- 负号:向上数n行
- 0:代表当前行
如果要任意行的移动平均。 右键创建参数。
然后替换掉公式里的值。
最后显示参数。
客户利润分析
80%的利润来自20%的客户
维度:客户id
指标:利润
80%的利润:利润的累计占比=利润的累计汇总/总利润
先求利润的累计汇总:使用快速表计算--累计汇总。
利润的累计汇总/总利润:继续进行从从属计算。
利润进行编辑表计算。行程特定维度,添加从属计算。从属计算类型为合计百分比。选择特定维度
将客户id也用累计占比的形式,在计算利润的从属计算使用了客户id字段,在列字段直接修改客户id为非重复计数,会影响行字段,所以先在标记面板添加一个详细信息的客户Id,之后根据利润降序,可以代替行字段的客户id,行字段的客户id就可以修改成非重复数,
因为是文本,使用非重复计数。行列上的客户id进行了降序,所以放到详细信息上的客户id也一定要进行降序排序
之后客户Id也进行累计占比
最后利润使用颜色美化。
添加辅助线-编辑轴
改为条形图
颜色添加利润。
LOD计算
详细级别表达式,简称为LOD表达式,可用于轻松计算未处于视图详细级别的聚合。五大聚合函数:sum\max\min\count\avg。LOD计算的结果是一组值。
语法:{关键词 维度:聚合表达式},例如:{fixed [维度1]: min[维度2]},计算每个维度1的维度2的最小值。 花括号可以翻译为:每个。
{fixed [城市]: min([订单日期])}:每个城市的最小订单日期。
定义关键字:
- fixed:最常用95%,固定详细级别,可作为维度或者度量使用,尤其是可以将度量转换为维度,实现分布上的分析,(表达式会忽视当前可视化级别的所有维度,只关注表达式中明确指定的维度)。它不受视图级别和筛选器的影响,只接受自己表达式中的级别。
- exclude:结果是表达式中的级别的上一级别的值,但是它会受到筛选器的影响,如果视图中有筛选器,则exclude原来的属性结果失效,变成正常的收到视图和筛选器切片的值。
- include:即受表达式中的级别的影响,也受视图级别的影响,如果有筛选器,则正常根据筛选器出来的维度进行筛选即可。
客户购买频次分析
需求:在不同购买次数的客户数量的分布情况,通过不同购买频次的客户人数,可以知道客户粘性
维度
指标:购买次数--订单id的非重复计数,客户数量--客户id的非重复计数
先计算出每个客户购买几次
分布分析借助柱形图,x轴(维度,购买次数),y轴(指标,购买某个次数的人数)。购买次数是指标,需要将指标(订单Id的非重复计数)转换成维度。lod的fixed可以将度量转换成维度。每个客户的购买次数指标先由fixed计算
通过fixed函数计算出来的度量转换成维度:度量改成维度,连续改成离散。
新客户增长分析
全球超市数据
需求:每个市场、每天的、累计的、 新的 客户数量
简化需求-1:每个市场、每天的客户数量
维度:市场、每天(要年/月/日,选择精确日期,连续改离散)
指标:客户id 非重复计数
简化需求-2:每个市场、每天的 新 客户数量
转换需求:每个市场、每天的 购买桌子的 客户数量,桌子是子类别,利用筛选器添加子类别,因为新客户也可以对客户的筛选实现
新客户:客户的最小购买日期是哪一天,这一天就是这个客户成为新客户的日期
新建辅助表:求每个客户的所有订购日期和最小订购日期,做判断那一天是否是新客户。
通过判断订购日期和最小订购日期是否相等可以得到这一天是否是成为新客户。创建计算字段,是否是首次订购日期,[订购日期]=[客户最小订购日期]
这个维度放到筛选器,只留真。
每个市场、每天的、累计的、 新的 客户数量
拆线图
是否是新客户这个维度放到筛选器,累计汇总:客户id快速表计算,累计汇总
结构化分析
数据源:示例-超市
客户订购频次分布分析
多维度分析产品结构
基本分析:分析超市不同子类别的销售情况分析
维度:子类别,指标:销售额、利润
每一个产品每一笔交易的利润分析-行级别利润分析