室内设计培训
平面设计培训
部落窝教育
网站首页 >> Excel教程 >> 文章内容

数据透视表系列教程三

[日期:2010-12-20]   来源:IT部落窝  作者:IT部落窝   阅读:6176[字体: ]
内容提要:本文讲解一次性的删除数据区域内的所有空列的两种方法。

  在数据透视表系列教程二,讲解了一次性的删除数据区域内的所有空行的几种方法。制作数据透视表之前必须把工作表中的空行空列都需要删除,才能避免错误。

  本文就讲解一次性的删除数据区域内的所有空列的两种方法。

  第一种一次性删除数据区域内的所有空列的方法是借助辅助列和公式来删除空列。

  这种方法是设计一个辅助列,并利用COUNTA函数统计各列不为空的单元格个数(如果为空列,那么不为空单元格的个数就是0),然后用一个常量除以统计的单元格个数。当某列为空列时,就会出现错误值“#DIV/0!”,这样,就可以利用定位工具定位到所有出现错误值的单元格,删除出现错误值单元格所在的整列。

  实例如下图所示:

数据透视表系列教程三

  具体操作步骤如下:
  
第一步,在数据区域下的任意一行,比如A8单元格输入公式:=1/COUNTA(A1:A6),然后向右填充复制到H8,得到计算结果,可以看到D、F两行空列都是错误公式。
  第二步,单击任意数据区域的单元格,按下F5键,弹出“定位”对话框,单击“定位条件”,选择“公式”选项组下面的“错误”复选框,确定。就可以将所有错误公式的列选中。
  第三步,单击“编辑”——“删除”——“整列”。
  第四步,删除辅助行。

  第二种一次性的删除数据区域内的所有空列的方法是使用VBA代码。
  下面是编写的一段程序,只要运行这段程序,就可以迅速将所有空列删除。代码如下:
Sub DeleteEmptyColumns()
    Dim LastCol As Long, r As Long
    LastCol = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
    Application.ScreenUpdating = False
    For r = LastCol To 1 Step -1
        If Application.WorksheetFunction.CountA(Columns(r)) = 0 Then Columns(r).Delete
    Next r
    Application.ScreenUpdating = True
End Sub

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

IT部落窝PS,CDR,213班 分享到: QQ空间 新浪微博 腾讯微博 人人网
photoshop教程
Photoshop教程
平面设计教程
Photoshop教程