一、基本认识
1.功能界面
1.1开始界面
连接(文件、数据库、服务器等数据源),打开(可视化工作簿)
1.2数据源界面
1)左侧窗格
显示连接的文件/数据库/服务器及数据表
2)画布
连接一个或者多个数据集
3)网格
预览数据源的字段,可对数据源修改,如重命名,排序,隐藏字段,创建字段等
1.3工作簿界面
2.连接数据源
2.1链接一个表
Microsoft Excel>选择要读取的Excel文件>打开
2.2多表关联
将需要关联的工作表拖到画布区域>点击关联关系进行修改:内部(内连接)、左侧(左连接)、右侧(有链接)、完全外部(全连接)>修改连接字段
2.3新建并集
1)合并Excel多个工作表
Microsoft Excel>选择要读取的Excel文件>打开>将需要合并的工作表全部选中>一次性拖到画布区域
2)合并文件夹多个Excel
Microsoft Excel>打开要合并文件的文件夹>选择任意一个Excel文件>打开>将画布区域的表全部删除>新建并集>通配符自动>工作簿的名称用通配符 * 代替文件后缀不需要修改>确定
3.维度和度量
3.1什么是维度
分类变量/离散值,衡量事物的特征属性,一般是字符串(文本)、日期、日期时间等离散值
维度:定性,分类,离散值,如字符串、日期、时间等
3.2什么是度量
连续变量/连续值,衡量事物的特征大小,一般是数值
度量:定量,数值,连续值,如小数、正数、百分比等
4.数据类型
1)数字(#)
(1)小数
(2)整数
2)日期/日期时间(日历图标)
3)字符串(Abc)
4)布尔值(T|F)
5)地理值(地球图标)
5.运算符
5.1算术运算符
1)+(加):用于数字为相加,用于字符串为串联,用于日期可将天数和日期相加;
2)(减):用于数字为相减,用于表达式为求反,用于日期可将天数和日期相减;
3)*(乘):用于数字为乘法,例如 54=20
4)/(除):用于数字为除法,例如 20/4=5
5)%(取余):计算两值相除后的余数,例如 5%4=1
6)^(乘方):计算数字的指定次幂,例如 6^3=216
5.2逻辑运算符
1)AND:与 2)OR:或 3)NOT:非
5.3比较运算符
1)==|=:等于
2)>:大于 3)<:小于 4)>=:大于或等于 5)<=:小于或等于 6)!=:不等于
5.4运算优先级
1)-(求反)
2)^(乘方)
3)*、/、%
4)+(加)、-(减)
5)==、>、>=、<、<=、!=
6) NOT
7)AND
8)OR
6.常用函数
创建计算字段:表字段>右键一个字段>创建>计算字段>给字段命名>填写计算公式>确定
6.1数字函数
1)ABS(number):绝对值,ABS(-3)=3
2)CEILING(number):向上取整,CELLING(3.1)=4
3)FLOOR(number):向下取整,FLOOR(3.24)=3
4)ROUND(number):四舍五入,ROUND(3.1415, 2)=3.14
5)POWER(number, number):乘方,POWER(5, 2)=25
6)DIV(number, number):两数相除后的整数,DIV(11, 2)=5
7)SIGN(number):符号函数,当数字为负时返回-1,当数字为零时返回0,数字为正时返回1
6.2字符串函数
1)CONTAINS(string, substring):如果string字符串包含substring字符串,则返回True
2)FIND(string, substring, [start]):返回substring字符串在string字符串的索引位置,如果没有就 返回0,如果设置start起始位置,就会跳过start位置前面的字符;
3)FINDTH(string, substring, occurance):string字符串可能包含多个substring字符串,返回指定 的第occurance个字符串的位置;
4)REPLACE(string, substring, replacement):在string字符串中,将substring替换为 repalcement,如果没有则保持不变;
5)SPLIT(string, delimiter, tokennumber):在string字符串中,以delimiter分隔符来拆分,并返 回拆分后的第tokennumber个字符串,SPLIT("a-b-c-d", "-", 2)="b";
6)LEN("tableau")=7;
7)STARTWITH("Chinese", "nese") = false;
8)ENDWITH("Chinese", "nese") = true;
9)UPPER("tableau")="TABLEAU";
10)LOWER("TAbleau")="tableau";
11)LTRIM(" tableau")="tableau";
12)RTRIM("tableau ")="tableau";
13)TRIM(" tableau ")="tableau";
6.3日期函数
1)DATEADD(datepart, increment, date):返回increment和date按date_part格式相加/减的值;
DATE_PART:"year", "quarter", "month", "week", "day", "hour"; DATEADD("month", 3, #2004-04-15#) = 2004-07-15;
2)DATEDIFF(datepart, date1, date2):返回date1和date2按date_part格式的时间差值;
DATEDIFF("day", #2013-09-22#, #2013-09-24#, "monday") = 2;
3)DATENAME("month", #2016-06-09#) = June;
4)DATEPART("day", #2016-07-09#, "monday") = 9;
5)MAKEDATETIME(#2016-02-03#, #07:34:20#) = 2016-02-03 07:34:20;
6)YEAR(date)
7)MONTH(date)
8)TODAY()
9)NOW()
DATE_PART | 值 |
---|---|
'year' | 四位数年份 |
'quarter' | 1月4日 |
'month' | 1-12 或 "January"、"February" 等 |
'dayofyear' | 一年中的第几天;1 月 1 日为 1、2 月 1 日为 32,依此类推 |
'day' | 1月31日 |
'weekday' | 1-7 或 "Sunday"、"Monday" 等 |
'week' | 1-52 |
'hour' | 0-23 |
'minute' | 0-59 |
'second' | 0-60 |
'iso-year' | 4 位数 ISO 8601 年份 |
'iso-quarter' | 1月4日 |
'iso-week' | 1-52,每周始终从星期一开始 |
'iso-weekday' | 1-7,每周始终从星期一开始 |
6.4类型转换函数
1)STR将数字转换为字符串的函数:"1" + STR(1) = 11;
2)INT将字符串转换为数字的函数:INT("1") + 1 = 2;
3)FLOAT("3") = 3.000;
4)DATE("2014-09-10 14:30") = 2014-09-10;
5)DATEPARSE("dd.MMMM.yyyy", "15.April.2004")= 2004-04-15 12:00:00 AM 换成指定格式;
日期部分 | 符号 | 示例字符串 | 示例格式 |
---|---|---|---|
年 | y | 97、2017 | yy、y 或 yyyy |
“年中的周”的年份 | Y | 1997 | Y |
时区 | Z、z | -0800、PST-08:00、PST | Z、ZZZZ、zzz |
月 | M | 9、09、Sep、September | M、MM、MMM、MMMM |
年中的周 (1-52) | w | 8、27 | w、ww |
年中的季度 | Q | Q2、第二季度 | QQQ、QQQQ |
周中的天 | E | 周一、星期一 | EEE、EEEE |
月中的天 | d | 1、15 | d、dd |
年中的天 (1-365) | D | 23、143 | D、DD、DDD |
期间(am/pm 标记) | a | AM、am、PM | aa、aaaa |
小时 (1-12),小时 (0-23) | h、H | 1、10、16 | h、hh、HH |
分钟 | m | 8、59 | m、mm |
一分钟中的秒 | s | 5、05 | s、ss |
小数秒 | S | 2、23、235、2350 | S、SS、SSS、SSSS |
天中的毫秒 | A | 34532 | AAAAA |
6.5逻辑函数
1)ISDATE("string"):判断是否为日期格式;
2)ISNULL(expression):如果为null,则返回true, 否则返回false;
3)IIF([利润]>0, "盈利", "亏损"):如条件成立,则返回"盈利",如不成立,则返回"亏损";
4)IF test THEN value END:如果test成立,那么新增字段的内容显示value;
创建一个计算字段(新增字段): IF [数量] > 10 THEN "good" ELSEIF [数量] > 5 THEN "common" ELSE "low" END; 如果数量大于10,新增的字段则显示good,如果数量大于5,新增的字段则显示common,其余均 显示low;
5)CASE 语句:CASE 字段 WHEN "a" THEN 1 WHEN "b" THEN 2 ELSE 3 END
CASE [邮寄方式] WHEN "最高级" THEN "顺丰快递" WHEN "二级" THEN "圆通申通" WHEN "标准级" THEN "百世快递" END
6.6聚合函数
1)COUNT:计数
2)COUNTD:非重复值计数
3)SUM:求和
4)AVG:平均值
5)MAX:最大值
6)MIN:最小值
7)MEDIAN:中位数
7.创建工作表
工具栏>新建工作表
8.导出工作表(Tableau Public不支持)
工作表>导出>图像、数据、交叉表到Excel
二、进阶操作
1.创建分层结构
类似于Power BI中的层次结构
1)创建分层结构:点击字段的下拉选项>分层结构>创建分层结构>给分层结构命名>确定
2)将字段添加到分层结构:点击字段的下拉选项>分层结构>添加到分层结构>选择要添加到的分层结构
2.创建组
类似于Excel透视表的创建组合
将字段中的某几项创建组合
点击字段的下拉选项>创建>组>选中想要创建在一起的字段>分组>分组命名>确定
3.创建集
将字段的各项分为内、外两种,内:所选的项,外:未选择的项
类似于创建组合,但只能分成两类
点击字段的下拉选项>创建>集>勾选需要的字段(选中的为内组,未选中的为外组)>确定
4.创建级或数据桶
创建级或创建数据桶是一个意思,只是两个界面的显示名称不一样
也是创建组合,但是针对数字字段,文本无法创建级或数据桶,创建的为等距分组(又叫数值离散化)
点击字段的下拉选项>创建>数据桶>命名、数据桶大小(分组间距)>确定
5.创建字段
新增字段
右键任何一个字段>创建>计算字段>字段命名、计算逻辑公式(用到的字段可以直接拖入)>确定
6.创建度量
左边窗格的度量>右键>创建>计算字段>度量命名、计算逻辑公式(用到的字段可以直接拖入)>确定
注:一般会使用聚合函数,根据现有字段创建新的度量,能够灵活的动态聚合计算
7.创建参数
跟Power BI的创建参数、Excel创建名称类似,即创建一个变量
点击要根据的字段的下拉列表>创建>参数>参数命名、当前值、值范围:最小值,最大值>确定
8.表计算
右键>添加表计算
8.1依赖字段
1)分区字段
将整表拆分成多个子表,并对每个子表单独进行计算(如行/列存在多级标签,则父标签就是分区字段)
2)寻址字段
用于确定具体的计算方向
8.2计算类型
类似于Excel数据透视表的值显示方式(透视后的二次计算)
1)差异
两个值进行相减的差异值,比较值 - 基准值
2)百分比差异
通常用于变化率或者增长率,(比较值 - 基准值)/ 基准值
3)百分比
两个值相除,比较值 / 基准值
4)合计百分比/总额百分比
以总数作为基数的百分比
5)排序
用于计算排名
(1)唯一(mysql窗口函数:row_number)
(2)密集(mysql窗口函数:dense_rank)
(3)竞争排序(mysql窗口函数:rank)
6)百分位
计算百分位数
7)汇总
计算累计值
8)移动计算
通过窗口函数进行计算
8.3计算依据
决定计算方向
1)表(横穿)
每行进行运算,即从左往右
表(横穿)、区(横穿)两者原理一致,结果一致,Tableau只保留表(横穿)
2)表(向下)
每列进行运算,即从上到下
3)表(横穿,然后向下)
按Z字形计算
4)表(向下,然后横穿)
按N字形计算
5)区(向下)
6)区(横穿,然后向下)
7)区(向下,然后横穿)
8)单元格
9)特定维度
(1)行列变换的时候,计算结果可能发生变化; (2)“特定维度”主要就是解决这类问题(固定按某字段的方向执行计算); (3)行列变换的时候,保持计算方向不变;
8.4LOD公式
1)Levels Of Detail 详细级别表达式
(1)EXCLUDE,维度削弱
{EXCLUDE [维度1], [维度2]...... : 聚合表达式}
如果指定的维度出现在视图中,则在计算聚合时会排除这些维度
例:求各地区各产品类别的销售额占销售总额的占比,类似Excel数据透视表的总计百分比
销售总额 = {EXCLUDE [地区], [类别] : SUM([销售额])}
销售额占比 = SUM([销售额]) / SUM([销售总额])
(2)FIXED,指定维度
{FIXED [维度1]...... : 聚合表达式}
仅使用指定的维度计算聚合
求各地区的三大类产品的销售额占比,类似Excel数据透视表的行/列汇总百分比
销售总额(区分区域) = {FIXED [地区] : SUM([销售额])}
销售额占比(区域) = SUM([销售额]) / SUM([销售总额(区分区域)])
(3)INCLUDE,维度增强
{INCLUDE [维度1]...... : 聚合表达式}
使用指定的维度和视图维度计算聚合
先求各订单ID的销售额,得到一个汇总表后,再求各地区的平均销售额,Excel数据透视表如何实现?
单均金额 = AVG( {INCLUDE [订单ID] : SUM([销售额])} )
2)Power BI 中叫 DAX数据分析表达式
三、Tableau连接数据库
MySQL>服务器(本地:localhost,服务器:IP地址)、用户名、密码>登录>选择数据库
四、可视化操作
1.可视化操作
1.1行
字段中每个不重复的项作为每一行
1.2列
字段中每个不重复的项作为每一列
1.3页面
翻页器, 播放, 向前播放, 向后播放
1.4筛选器
数据筛选功能
1.5标记
1)颜色
根据数值的大小, 来决定颜色深浅
2)大小
根据数值的大小, 来决定图形大小
3)标签
设置图形显示数据标签
4)详细信息
(1)绘图的最小单位(颗粒度或分组依据) (2)比如散点图/箱线图, 将订单ID字段拖放至详细信息,那么每个订单生成一个坐标点 (3)比如地图字段拖放至详细信息,那么每个省份生成一个地图版块
5)工具提示
鼠标悬停在图形上的提示信息
6)路径
线条样式(折线图)
7)角度
角度大小(饼图)
2.可视化图表
2.1基本操作
标记>图类型选择需要的图表>根据需求将需要的字段分别拖到:颜色、大小、标签、详细信息、工具提示、角度
2.2特殊说明
1)地图:一定要将区域字段改为 省/自治区 并将其拖至详细信息
2)直方图
(1)峰度系数(KURT)
a.大于零, 尖顶峰 b.等于零或接近零, 正态峰 c.小于零, 平顶峰
(2)偏度系数(SKEW)
a.大于零, 正偏/右偏 b.等于零或接近零, 对称分布 c.小于零, 负偏/左偏
3)盒须图
(1)上须/上限值
Q3+1.5*IQR, 最大不超过最大值
(2)上枢纽/上四分位数/Q3/75%百分位数
(3)中位数/中值/Q2/50%百分位数
(4)下枢纽/下四分位数/Q1/25%百分位数
(5)下须/下限值
Q1-1.5*IQR, 最小不低于最小值
(6)IQR/四分位距
(7)极差/全距
最大值-最小值
4)瀑布图
图表类型要选择甘特条形图,通过将字段设置为负值解决不从0开始的问题,可以通过修改工具提示中的信息实现修改数据提示信息
5)组合图实现在同一个图中显示
右键一个行/列轴字段>双轴
6)旋风图反转轴
右键要反转的X轴>编辑轴>勾选倒序>确定
7)圆环图
在 行 处双击>在输入框中输入0>在 行 处双击>在输入框中输入0>两个图表类型都选择饼图>将需要的信息字段给外圆设置>内圆只设置标签>内圆设置为透明颜色、大小调节一下>右键行中的任一字段>双轴
3.创建仪表板&故事
3.1创建仪表板
1)操作步骤:点击下方的新建仪表板(图表像一个田字)>将需要的图表拖至需要放置的地方
2)一个筛选器操作仪表板中的多个图表:将多余的筛选器删除掉只保留一个>筛选器的更多选项>应用于工作表>使用此数据源的所有项、选定工作表、仅此工作表、使用相关数据源的所有项
3.2创建故事
点击下方的新建故事(图表像一本书)>新建故事点类似于PPT中的新建幻灯片>将需要的图表或者文字添加到相应的页面
4.导出仪表板&故事(Tableau Public不支持)
1)菜单栏 > 仪表板 > 导出图像
2)菜单栏 > 故事 > 导出图像