![ee80597e3d7f8ec98bc29d85fb9d959b.png](https://img-blog.csdnimg.cn/img_convert/ee80597e3d7f8ec98bc29d85fb9d959b.png)
在上一篇文章,即实战#3中,有提到过重要的一点,即tableau数据源需要作为一维数据为数据源,而非二维。那么有同学就提问到了一维与二维数据的差别,此文就来补回前面的基础知识。
tableau于实战的应用,不论是表格输出、还是数据建模,都须建立于对数据源处理好之后,且对数据源的结构和颗粒度足够详细的了解,否则将是空中楼阁,今天就来将关于“数据源”的处理的基础知识补齐给大家~
一、数据维度的概念-使用一维数据进行数据建模
其实这个概念没有很专业的定义(所以此处没有贴出专业的定义),但是在数据处理中会经常应用到,这里举个例子大家就可以很方便的理解:
![bd7616393185cb737dea26545a2a15c2.png](https://img-blog.csdnimg.cn/img_convert/bd7616393185cb737dea26545a2a15c2.png)
上图所示即为一个二维表,是因为在C/D/E列,其实每列表现了两个信息,即月份与时间,如C列表现了A会计科目在一月份的金额。在数据源中,如果存在这样的“列”,则意味着这个数据源表格是一个二维的表格,而我们需要把他们转换为一维的表格,如这样:
![971f47b1d42a797dd03032b311ead77c.png](https://img-blog.csdnimg.cn/img_convert/971f47b1d42a797dd03032b311ead77c.png)
现在每一列,都只是展示了一个信息,如A列则是会计科目,B列是摘要,C列是月份,D列是金额。
所以大家可以简单的理解为:“列”仅包含了一层信息,则为一维表,否则不是。
那么在tableau的使用中,为了方便后续所有的工作,数据都需是一维的,但是在实际工作中,我们常常遇到二维的表,如图一,列名为时间,而往下的一个个单元格的内容则是金额。为了完成这样的维度转换,今天就来与大家分享一共两个方法:
二、数据转换-power query&tableau
1)power query一键转换
在实战中,我们的数据源大部分仍然是以excel形式储存的(特别是我们其实不是使用直联数据库的情况),那么如同在我们的case中,我们可以使用excel中自带的power query完成这样的类似于“行列转置”的工作:
![cb48c08ca6524e9c244bbe8986efed7e.png](https://img-blog.csdnimg.cn/img_convert/cb48c08ca6524e9c244bbe8986efed7e.png)
如上图所示,选择我们需要的表格区域后(注意!这里一定要仅仅是我们需要的表格数据,二不能偷懒的使用,全选excel表格内容的功能),点击excel上方的“数据”窗格,点击图示的“从表格”,这一步操作意味着将excel的数据内容导入到power query中。
![4103616e08e76b493c80b3f03acf9526.png](https://img-blog.csdnimg.cn/img_convert/4103616e08e76b493c80b3f03acf9526.png)
出现上图的弹窗,点击“确定”。
![c1d14f0b6b0d5cc75e22abf7c93ea94d.png](https://img-blog.csdnimg.cn/img_convert/c1d14f0b6b0d5cc75e22abf7c93ea94d.png)
进入到上图图示,数据已经导入到power query中,此时选择图示红框的列(也就是我们需要转变成“一维”的列),点击最上方的“转换”选项。
![2baaf49fe9000561e17f05948556dcbe.png](https://img-blog.csdnimg.cn/img_convert/2baaf49fe9000561e17f05948556dcbe.png)
此时选择上图中蓝色框的“逆透视列”后,则可以完成我们需要的转置的结果。
如果需要转置的列数较多,不需要的转置的列数很少,也可以将不需要转置的列选中,在转换时选择“逆透视其他列”仅可。
![bf0cde9849878d71f34540220a94363d.png](https://img-blog.csdnimg.cn/img_convert/bf0cde9849878d71f34540220a94363d.png)
以上,则完成了我们的逆透视,成功将二维表转换成了一维表。
2)tableau中数据源转置
将数据导入tableau中后,可以看到如下界面:
![9df7f0c1999adec1719ab904e81b51e1.png](https://img-blog.csdnimg.cn/img_convert/9df7f0c1999adec1719ab904e81b51e1.png)
此时选中需要“转置”的列,点击鼠标右键,选择“转置”选项。即可出现转变成一维表的模式。
![f801fc4f54c5bf4c267b90e6879d84b1.png](https://img-blog.csdnimg.cn/img_convert/f801fc4f54c5bf4c267b90e6879d84b1.png)
完成了数据的转置,如果大家想将“一月金额”变为“一月”这可以选中此列后,选择“自定义拆分”选项:
![02e2350a41502c2a81abf00e655d3ac7.png](https://img-blog.csdnimg.cn/img_convert/02e2350a41502c2a81abf00e655d3ac7.png)
以“金”为分割符,则是“金”字以前的拆分出来,最终我们可以得到月份为单独一列。金额单独一列。
![9d0dc783776eb565e32ed2db30fcbb86.png](https://img-blog.csdnimg.cn/img_convert/9d0dc783776eb565e32ed2db30fcbb86.png)
三、两个方法的比较
虽然tableau“看似方便”地完成了行列的转置,但是其实如果后续需要数据处理,还是会带给我们一些不便(当然这仅是个人观点),毕竟数据源仍然是二维。
个人认为,每个软件都有其自己的突出之处,使用其最好的功能则佳。
例如excel在基本的数据处理和存储数据上,我们可以使用它。但是当遇到我们需要多维度的数据透视、或者说压力测试、或者说一键输出表格等更多关于“数据处理”的工作,交给tableau则为佳。
好了,我们今天的case基本上就讲解完了~如果大家觉得文章有用,请不吝点赞哦~文中如有错误也请指出~让我们早日实现星巴克自由吧~