Excel数据清洗之三 横表转竖表(逆透视)
前面我们介绍了对格式错误进行数据清洗的步骤,得到了结果——一个横表:
横表的问题我们可以通过下面的数据透视来为大家展示一下:
在这个透视表中,最大的问题是所有的数据被分为多个列存在表中,这样,透视表中就出现了很多数值字段:
无论想如何调整我们看的数值,都必须在众多的字段中进行调整,没有办法通过透视表的筛选或者切片器进行简单的交互。这就意味着我们可能需要做好几个数据透视表才能完成整个数据的展示。
而如果我们将数据转成竖表,
我们的透视表就可以做成这样,
我们就可以通过透视表上方的筛选器与透视表进行交互,从而随心所欲的展示分析源数据而不用改变透视表的布局。这种情况在制作Dashboard时尤其重要。
将“横表”转为“竖表”,不仅仅在透视表的时候更加方便,即使使用公式也会更简洁。例如,我们希望根据产品,和指标得到相应的数据汇总,
我们就需要添加一个辅助列,将BC列合并起来,然后再D1中输入公式:
=SUMIFS(INDEX(合并单元格!$C$2:$N$29,,MATCH(Sheet3!E1,合并单元格!$C$1:$N
$1,0)),合并单元格!$B$2:$B$29,Sheet3!A1)
而如果转换为竖表后,公式就可以写成:
=SUMIFS(Sheet6!$E$2:$E$337,Sheet6!$B$2:$B$337,Sheet3!A1,Sheet6!$C$2:$C$337,Sheet3!B1,Sheet6!$D$2:$D$337,Sheet3!C1)
后一个公式要简单的多。
实际上,如果在实际工作中,你需要写一些比较复杂的公式的话,往往是表格的格式不正确导致的。
如何将横表转成竖表
将横表转为竖表的方法,我们称为逆透视,我们可以按照下面的步骤进行逆透视。
第一步,添加一个辅助列
在第二列后面,插入一个空白列,命名为“MarketProduct”(随便命名即可,注意不要跟其他列重名),输入公式:
=A2 & "|" & B2
然后双击填充这一列
第二步,创建透视表
在Excel中,按Alt+D,P键(操作方式是按住Alt键,然后按D键,松开D键,然后按P键,注意全程按住Alt键不要松开),打开数据透视表向导,
选择“多重合并计算数据区域”,并点击下一步,
继续点击下一步,
在选定区域处,选择数据区域:$C$1:$O$29,点击添加,将该区域添加到下方所有区域框中,
点击下一步,
点击完成,得到透视表
竖表点击在透视表的右下角单元格(汇总单元格)处,
竖表双击该单元格,得到一个新的工作表,
第三步,分列
对第一列进行分类,得到Market和Product两列
对现在的第三列进行分列,得到KPI和日期列
第四步,整理完成
去掉最后一列,修改列名,得到结果
总结
逆透视是一个非常重要的数据清洗方法,在很多场景下都非常有用。将源数据转为竖表后,后续的分析和处理工作会变得 非常简单。