教程:tableau表计算练习
练习表计算
参考@禹杨的文章https://zhuanlan.zhihu.com/p/66306823
备注:
- 下载数据后,模仿。感觉文章有点啰嗦。自己重写理解的过程,尽量简洁。
- @禹杨的分析数据来源于tableau的一篇文章《10 大 Tableau 表计算》
- 我的分析数据从《10 大 Tableau 表计算》下载。
下面开始练习。
附加:我自己写的理解表计算的文章https://www.cnblogs.com/chentianwei/p/12580275.html
自参考日期开始的百分比变化
数据来源是4支股票的收盘价的历史数据:
- Company Name
- Date: 2007/12/31 ~2009/9/17
- Ticker即股票简称。本数据有4支股票。
- Adj close: 收盘价
作为一名炒股分析师,我希望分析出某个日期的收盘价相对于其他日期收盘价的比较。
即一个日期A,在图表上显示相对这个日期收盘价A_close,其他日期收盘价和它的比例: ( A_close - ohter_close ) / A_close, 见结果:
分为几个步骤:
- 做出正常的收盘价格图
- 创建一个参数:作为参考日期。
- 创建计算字段:“参考日期的收盘价”。
- 相当于在原数据表格上添加一列字段,即这列只有2个值,参考日期的收盘价和null值。方式是使用窗口函数window_max。
- 创建计算字段:“Difference”。把👆的公式代入,然后把"Difference"放到行上,替换掉之前的"总和(AdjClose)"
- 4.5 使用默认的表计算。可以自己再打开“表计算”窗口,确认一下。
- 在图上加一条参考线。
第一步,做出正常的收盘价图:
- 把维度date放到列,并改为“连续”和"天:2015年5月8号"
- 行:adj_close收盘价
- 标记:“颜色”Ticker, 让图上显示4支股票的各自收盘价走势图。
第二步,设置参考日期。
创建一个参数作为参考日期。
用途:图表的变化都是基于这个参考日期。
方法:
1. 在左侧“数据”栏,右键单击->下拉菜单选择“创建参数..”。
2. 在参数上右键单击->下拉菜单选择"显示参数控件"。
第三步,创建一个“计算字段”:“参考日期的收盘价”
“参考日期的收盘价”即👆提到的( A_close - ohter_close ) / A_close公式中的A_close。
WINDOW_MAX(
IF (MAX([Date]) = [Enter Reference Date:]) THEN SUM([Adj Close]) ELSE NULL END,
FIRST(),
LAST())
解释:
window_max(exp, first, last)是一个窗口函数,熟悉SQL语法的都会了解窗口函数。聚合函数() over(分区, 排序,分区内再划分一个范围)
tableau把它归类到表计算函数中了。
很恰当,因为窗口函数就是真对每一行记录(数据)的聚合函数计算,并把计算结果附加到这行记录后(相当于增加了一个字段)。
- exp是一个表达式。
- first和last相当于分区内的再划分一个范围。
- window_max,其中max代表聚合方式,是取最大值。
第四步,创建计算字段“同参考日期收盘价比较区别”
1+ ((sum([Adj Close]) - [参考日期的收盘价]) / [参考日期的收盘价])
其实就是公式( A_close - ohter_close ) / A_close的变种。
1. 加1的目的:
通过➕1,把横坐标从0太高的1,即100%。方便比较!!
2. 使用sum()的原因:
tableau的语法规则,聚合参数只能和聚合函数配对使用。所以套上一个sum(),不会产生额外效果。
第4.5步, 对“同参考日期收盘价比较区别”进行表计算。🌿
tableau使用了默认的表计算:而这个默认结果其实就是我们想要的结果,因此不用编辑表计算。
第五步,添加一条参考线
点击“分析”栏->"参考线"。
完成!