推广 热搜: excel  空白    动态  2016  顺序  面积  增加  问题  关闭 

数据透视表系列教程九

   2020-11-20 251
核心提示:本文是数据透视表系列教程九,介绍将二维报表整理为数据清单的方法。
内容提要:本文是数据透视表系列教程九,介绍将二维报表整理为数据清单的方法。

下面1图所示的二维报表数据,是我们实际工作中常见到的。这种报表看起来整齐清楚,就算是数据透视表,然而它并不是真正的数据透视表,无法像数据透视表一样随意进行行列转换并分析数据。因为下面这种表格中含有合并单元格,它也不是最原始的数据清单。为了能够进行各种各样的透视分析,我们需要将其转换为真正的数据清单,如2图所示。

这个问题有多种方法可以解决,无论采用哪种方法,首先必须将合并单元格取消,并填充为上一个单元格(行)或前一个单元格(列)的数据,具体转换方法可以参考前面的数据透视表系列教程。取消合并单元格并填充相应数据后,就可以进行数据表格转换了。

一个最简单的方法就是分别复制粘贴各列的数据到新的数据区域中,需要特别注意准确确定该数据对应的地区、城市、成色和产品。

如果数据量很大,可以使用公式或者VBA来解决。

下面是利用VBA解决上述问题的程序代码。假定取消合并单元格并填充相应数据后表格数据保存在工作表“取消合并单元格”中。下面是相关的代码:
PublicSubDataList()
   DimmyArrayAsVariant
   DimnAsLong,mAsInteger,iAsLong,kAsLong
   Dimws0AsWorksheet
   DimwsNewAsWorksheet
   myArray=Array("地区","城市","成色","产品","销售数量")
   Setws0=Worksheets("取消合并单元格")
   n=ws0.Range("A65536").End(xlUp).Row-2
   m=ws0.Range("IV3").End(xlToLeft).Column-2
   ReDimDistrict(1Ton)AsString,Province(1Ton)AsString
   Fori=1Ton
       District(i)=ws0.Range("A"&i+2)
       Province(i)=ws0.Range("B"&i+2)
   Nexti
   alt=数据透视表系列教程九src="https://static.petroren.com/skin/chinaoc/image/lazy.gif" class="lazy" original="https://att.petroren.com/files/upload/202011/20/164903518000001.gif"border=0>

单击下载数据透视表系列教程源文件

 
反对 0举报 0 收藏 0 打赏 0
 
更多>同类办公
推荐图文
推荐办公
点击排行